一文读懂:IOPS、延迟和吞吐量等存储性能指标

news2025/1/15 6:24:40

各位ICT的小伙伴们大家好呀,

在我们谈存储性能的时候,总会听到IOPS、延迟(Latency)、带宽(Bandwidth)、吞吐量(Throughput)以及响应时间(Response Time)等技术指标。

那么,企业在购买存储的时候,到底需要怎么考虑这些指标呢?它们之间有何区别?又有什么联系呢?

Image

今天我们就用一些简单的例子来讲明它们之间的区别。

▉ 何为I/O?何为IOPS?

聊这些存储技术指标之前,我们需要先了解下什么是I/O,什么是IOPS。

I/O,即input/output,输入指的是对存储系统写入数据,输出指的是从存储系统读出数据,I/O简单的可以理解为磁盘的读写。目前常见的硬盘类型主要有HDD和SDD,HDD主要的接口类型有SATA硬盘和SAS硬盘两种类型,SSD则会有SATA、M.2、PCIe及U.2等不同接口类型,每一种磁盘的性能是不一样的。

IOPS是很多企业最关注的存储性能指标,指的是单位时间内系统能处理的I/O请求数量,通常,计算IOPS的基本公式是:(总的读+写的操作量)/ 时间(秒)。

Image

我们举个简单的栗子,就像我们上班坐地铁一样,地铁上一个和下一个人可以看作存储系统的I/O,IOPS就相当于(地铁上的人+地铁下的人)/停留时间(秒)。

Image

▉ 只强调IOPS就是“耍流氓”?

IOPS是存储性能的一个关键指标,很多存储厂商也抓住用户心理在推广的时候炫耀他们的存储系统IOPS性能有多高,性能有多快。

但是,仅通过IOPS来衡量存储系统性能好坏的存储厂商就是"耍流氓",只有在使用该存储系统的工作负载对IOPS有要求的情况下才有价值。

Image

IOPS数值会受到很多因素的影响,包括I/O负载特征(读写比例,顺序和随机,工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等等。

例如,在企业业务的IO传输过程中,数据包会被分割成多块(block),交由存储阵列缓存或者磁盘处理,对于磁盘来说这样每个block在存储系统内部也被视为一个I/O,存储系统内部由缓存到磁盘的的数据处理也会以IOPS来作为计量的指标之一,如果是小数据块顺序读写,就很可能因为缓存影响导致IOPS结果数值过高。

很多厂商的存储产品就会拿到最大的IOPS测试结果来宣传,结果导致很多厂商购买后由于业务场景不同,根本达不到宣传的IOPS性能。

因此在实际测试的时候,除了常见的4K随机读IOPS、4K随机写IOPS、64K顺序读IOPS、64K顺序写IOPS指标测试,还会需要测试读写混合(例如50%读50%写、70%读30%写)以及根据企业的业务场景类型来进行测试。

▉ IOPS、延迟和带宽的关系

由于IOPS顺序写和随机写测试结果差别较大,所以在选择存储的时候还有两个指标也经常被拿来一起看,就是延迟和带宽。下面我们来看下二者的定义。

延迟(Latency)

延时又称时延、延时,处理单个 I/O 请求的速度。这一点非常重要,因为能够处理1000 IOPS且平均延迟为10ms的存储子系统可能比能够处理5000 IOPS且平均延迟为50ms的子系统获得更好的应用程序性能。特别是如果应用程序对延迟很敏感,比如数据库服务。

Image

这是一件非常重要的事情:IOPS和延迟之间是相互关联的。譬如你在一个大超市中,收银员(存储系统)以平均10ms的速度为顾客(IOPS)提供服务,我们知道1 秒=1000 毫秒(ms),如果按照平均时间,每个收银员可以在一秒钟处理100个顾客。

Image

但需要注意的是,收银员是连续工作的,他不能同时处理他们,所以当客户提前到达收银员处,在10ms处理时间内,那么第二个客户就需要等待,虽然处理这个客户的时间还是需要10ms,但是加上等待的时间就可能达到15ms,甚至最坏的情况(多个客户同时到达)那就远超到20ms。

所以,存储系统除了延迟外,还需要看另外一个指标,就是带宽(Bandwidth)。

带宽(Bandwidth)

带宽是指平均每秒读写的数据量。在同样的延时指标下,增加并发可以提高吞吐量。

Image

譬如超市收银台前大排长龙,作为经理你可能会第一时间要求多开收银通道,加大处理带宽。通道数量多了之后,队伍长度减少了。但是,具体到收银员服务每一位顾客所需的时间并没有改变。

企业用户在选购存储的时候,延迟和带宽也是两个非常重要的指标,并不能单独的根据每个指标的大小来评判存储性能的好坏,需要IOPS、延迟、带宽三者结合来看。

Image

我们生活中也会碰到这种需要综合考核的时候。如在排队的时候你可能会寻找年轻人居多的队伍去排队,他们往往习惯手机移动支付,扫码支付速度更快。这样你就选择了一个延迟较低的通道,减少了自己的等待时间。

▉ 这俩指标也不能忽视

除了上面我们聊到的三个技术参数,在选择存储的时候还会经常聊到吞吐量和响应时间。

带宽和吞吐量是经常容易被混淆的概念,很多时候,人们就将带宽认为是吞吐量。其实二者还是有一些区别的,如下图:

Image

带宽显示了管道(通讯通道)的容量。带宽表示经过管道的水的最大值。吞吐量是从管道中实际流出的水能够表示为吞吐量。

在性能测试术语中,在给定的时间段内从一个位置成功移动到另外一个位置的数据量,一般以每秒比特数(bps)来度量,或每秒兆比特数(Mbps)、每秒千比特数(Gbps)。例如:在第4秒传输了20 bit数据,所以在t=4时的吞吐量为20bps。

响应时间(Response Time)则是指从用户发送请求到应用程序加上请求已经完成并返回给用户的时间。响应时间通常以毫秒(ms)为单位表示,更短的响应时间通常被认为是更好的性能。

响应时间是用户感知性能的重要参数。更短的响应时间通常被认为是更好的用户体验。因此,在考虑存储性能时,需要考虑IOPS、延迟、带宽和吞吐量,从而确保快速响应用户请求。

▉ 最后,重点提一下:

  • 多颗硬盘组建RAID0,可以将读写负担均衡分到各块硬盘之上,实现总体带宽的提升,但对于单一读写请求(如4K单线程随机读写)来说,RAID0和单块硬盘相比没有任何区别;

  • 由于物理限制限制了HDD盘片旋转的速度,因此HDD没有SSD的高速吞吐量,全闪存阵列是企业关键业务首选;

  • 解决带宽(Bandwidth)比解决延时(Latency)更容易;

  • 若是吞吐量(Throughput)几乎等于带宽(Bandwidth),这意味着网络使用率很高;

  • 经过在平坦吞吐量图中增长响应时间(Response Time)可显示网络带宽(Bandwidth)问题。能够经过添加额外信道(即经过增长网络带宽)来解决该瓶颈;

  • 理想状况下,吞吐量(Throughput)和网络带宽(Bandwidth)的预期容量是一致的;

  • 响应时间(Response Time)与吞吐量(Throughput)成正比。若是吞吐量(Throughput)随响应时间(Response Time)的增长而减小,则表示应用程序/系统不稳定;

  • 线程的数量与吞吐(Throughput)量成正比;

  • 若是延时(Latency)较低,可是带宽(Bandwidth)较小,那么从A点到B点的数据传输时间要比延时(Latency)低且带宽(Bandwidth)高的时间长;

  • 延时(Latency)受链接类型、距离和网络拥塞的影响;

Image

因此,企业在评估新的存储系统时,准确的选择存储设备的最佳方法是在测试的时候尝试运行您在生产中运行的真实工作负载。在实际测试过程中尽量选择多个IO大小模态来进行测试,从而在未来业务上线后能够满足实际应用程序的要求,特别是在日益整合的环境中,好的存储系统是企业业务稳定运行的关键。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1259414.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Lighthouse(灯塔)—— Chrome浏览器强大的性能测试工具

本文浏览器版本参考如下: 一、认识Lighthouse Lighthouse 是 Google 开发的一款工具,用于分析网络应用和网页,收集现代性能指标并提供对开发人员最佳实践的意见。 为 Lighthouse 提供一个需要审查的网址,它将针对此页面运行一连…

Typora+PicGo+Minio搭建博客图床

文章目录 TyporaPicGoMinio搭建博客图床前言什么是图床?为什么需要图床?准备工作一、Typora二、Picgo1. 下载Picgo2. 下载node.js3. 下载minio插件 三、服务器端配置1. 添加端口到安全组2. 使用Docker安装minio3. 配置minio image-20231127175530696四、minio插件配置五、Typ…

Python入门04字符串

目录 1 字符串的定义2 转义字符3 字符串的常见方法4 分割字符串5 字符串反转6 字符串的链式调用7 格式化字符串8 多行字符串总结 1 字符串的定义 在Python中,字符串表示一个字符的序列,比如 str "hello,world"这里我们定义了一个字符串&…

SpringBoot 入门学习

开发环境配置 JDK 1.8、Maven 3.8.8、 IDEA CE 2023.2 框架介绍 Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化 Spring 应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置…

STM32F103C8T6——4路PWM

//main()函数前面的extern TIM_HandleTypeDef htim2;extern TIM_HandleTypeDef htim3;//main()函数内部额外添加的HAL_TIM_Base_Start_IT(&htim2);HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_1);HAL_TIM_PWM_Start(&htim2,TIM_CHANNEL_2);HAL_TIM_PWM_Start(&htim2…

深度学习中小知识点系列(三) 解读Mosaic 数据增强

前言 Mosaic数据增强,这种数据增强方式简单来说就是把4张图片,通过随机缩放、随机裁减、随机排布的方式进行拼接。Mosaic有如下优点: (1)丰富数据集:随机使用4张图片,随机缩放,再随…

[ CSS ] 内容超出容器后 以...省略

内容超出容器后 以…省略 当前效果 代码 <template><div class"box">有志者&#xff0c;事竟成&#xff0c;破釜沉舟&#xff0c;百二秦关终属楚; 有心人&#xff0c;天不负&#xff0c;卧薪尝胆&#xff0c;三千越甲可吞吴</div> </templa…

【Proteus仿真】【Arduino单片机】蔬菜大棚温湿度控制系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使用PCF8574、LCD1602液晶、DHT11温湿度传感器、按键、继电器、蜂鸣器、加热、水泵电机等。 主要功能&#xff1a; 系统运行后&#xff0c;LCD160…

TikTok新媒体战略:数字时代的社交营销

引言 随着数字时代的来临&#xff0c;社交媒体已成为企业推广和品牌建设的关键平台之一。而在众多社交媒体中&#xff0c;TikTok以其独特的短视频形式和庞大的用户基数吸引了无数企业和个人创作者。本文将深入探讨TikTok新媒体战略&#xff0c;探讨在数字时代如何利用这一平台进…

距离向量路由协议——RIP

目录 动态路由动态路由简介为什么需要动态路由动态路由基本原理路由协议的分类 距离向量路由协议RIPv1 VS RIPv2RIP简介RIPv1的主要特征RIPv1的基本配置 VS RIPv2的基本配置RIP配置案例被动接口单播更新使用子网地址 动态路由 动态路由简介 为什么需要动态路由 如果采用静态…

3.3VPWM转24VPWM电路

一、MOS管导通原理。 MOS管的两个重要参数 VGS(th)&#xff1a;开启电压 VGS(off)&#xff1a;预夹断电压 VDS(max)漏源破坏电压 1、MOS管&#xff1a; 当0<VGS<VGS(th),MOS管关断。 当VGS>VGS(th)&#xff0c;VDS>0&#xff0c;NMOS管导通。 VGDVGS-VDS&#xff…

Python实现WOA智能鲸鱼优化算法优化LightGBM回归模型(LGBMRegressor算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…

超全超实用行业解决方案合集,覆盖十大行业数据应用需求

现代企业面对复杂的业务需求&#xff0c;对数据分析的需求日益增加。 从实时销售到市场趋势&#xff0c;从客户行为到产品优化&#xff0c;每个环节都依赖于数据支持。然而&#xff0c;传统的数据分析平台常分散在不同系统和团队中&#xff0c;形成数据孤岛&#xff0c;降低了…

Python实现AI助手

目录 1.介绍 2.准备工作 (1)登录百度智能云 (2)创建应用 (3) 获取Key 3.代码实现 4.效果展示 1.介绍 本文将介绍使用python调用百度云千帆大语言模型的API实现一个简单的AI助手,并且将在本文的第三部分贴出完整源码,供学习交流! 如果你觉得本篇文章对你有用,希望你动动宝…

单片机毕设实物买的成品,论文是自己查资料和照着实物写的

单片机毕设实物买的成品&#xff0c;论文是自己查资料和照着实物写的&#xff0c;算学术不端吗&#xff1f; 很多人的想法可能是这样的&#xff1a; 一般来说&#xff0c;毕业论文是独立完成的学术研究&#xff0c;需要表明作者自己的思考和研究成果&#xff0c;应该包括自己的…

2020年09月 Scratch(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共15题,每题2分,共30分) 第1题 执行下面程序,输入4和7后,角色说出的内容是? A:4,7 B:7,7 C:7,4 D:4,4 答案:B 第2题 执行下面程序,输出是? A:大学 中庸 孟子 论语 B:论语 大学 孟子 中庸 C:大…

steam游戏搬砖新手最容易掉的五大坑

steam搬砖&#xff0c;月入5-8K 进入任何行业&#xff0c;起初都可能看起来很简单&#xff0c;但要稳定获得利润&#xff0c;需要一些努力和理解行业内的思维逻辑。steam搬砖项目有两条路可以选择&#xff1a;一是通过不断踩坑和试错来积累经验&#xff1b;二是进行知识付费&am…

python+feon有限元分析|feon安装

目录 1、查找 2、下载 3、解压 4、安装 Feon是湖北工业大学土木建筑与环境学院教师裴尧尧基于Python开发的一个开源免费的有限元计算框架。这是一个致力于有限元编程教学和有限元理论研究的框架&#xff0c;上手快&#xff0c;可扩展性强&#xff0c;代码开源。 1、查找 …

1998-2021年全国各地级市PM2.5平均浓度数据

1998-2021年全国各地级市PM2.5平均浓度数据 1、时间&#xff1a;1998-2021年 2、指标&#xff1a;省、省代码、市、市代码、年份、均值、总和、最小值、最大值、标准差 3、来源&#xff1a;Washington university Atmospheric Composition Analysis Group 4、范围&#xff…

【JMeter】运行方式

第一种&#xff1a; 使用GUI 操作&#xff1a; 在JMeter界面菜单导航上点击运行按钮 一般用作创建TestPlan和调试脚本增加java堆空间来满足测试环境 第二种&#xff1a;使用CLI(Command Line) 性能测试一般请求量比较大&#xff0c;为了节省资源 CLI参数用法&#xff1a; 字段…