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

各位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.mzph.cn/news/173278.shtml

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

相关文章

『Linux升级路』基础开发工具——make/Makefile

🔥博客主页:小王又困了 📚系列专栏:Linux 🌟人之为学,不日近则日退 ❤️感谢大家点赞👍收藏⭐评论✍️ 目录 一、认识make/Makefile 📒1.1make/Makefile的优点 📒…

EM32DX-C1【分布式io】

1设备类型: 电压:DC24V 输入16点 输出16点雷赛 EM32DX-C1 模块是一款基于 ASIC 技术的高性能、高可靠性的 CANopen 总线数字 量输入输出扩展模块,具有 16 路通用输入接口和 16 路通用输出接口。输入输出接口均采用光 电隔离和…

【yolov5人行道-斑马线目标检测】

yolov5人行道-斑马线目标检测 数据集yolov5人行道-斑马线目标检测检测模型 数据集 YOLOv5是一种目标检测算法,可以用于检测图像中的人行道-斑马线。在目标检测领域,YOLOv5通过结合多种技术手段,包括使用Mosaic数据增强操作、自适应锚框计算与…

SDN之Ubuntn20.04OpenDaylight控制器的安装

目录 1.OpenDaylight简介2.安装JAVA环境3.安装OpenDaylight4.问题总结 1.OpenDaylight简介 OpenDaylight(ODL)是一个开源的软件定义网络(SDN)控制器平台,提供了非常美观且功能完善的可视化管理界面,方便用…

redis Redis::geoAdd 无效,phpstudy 如何升级redis版本

redis 查看当前版本命令 INFO SERVERwindows 版redis 进入下载 geoadd 功能在3.2之后才有的,但是phpstudy提供的最新的版本也是在3.0,所以需要升级下 所以想出一个 挂狗头,卖羊肉的方法,下载windows 的程序,直接替…

桥梁道路结冰传感器守护出行安全的重要工具

随着冬季的到来,气温逐渐降低,路面和桥梁容易结冰,给人们的出行带来安全隐患。为了解决这一问题, WX-JB2H 桥梁道路结冰传感器应运而生。本文将详细介绍桥梁道路结冰传感器的作用、原理及在冬季出行中的重要性。 一、桥梁道路结冰…

flink源码分析之功能组件(三)-rpc组件

简介 本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metrics,future。 本文解释rpc组件,rpc组件用于个核心组件,包括作业管理器,资源管理器和任务管理器之…

什么是高防IP?如何进行防护?怎样隐藏源站?

高防IP是针对互联网服务器遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,是目前最常用的一种防御DDoS攻击的手段。用户在数据不转移的情况下,就可以通过配置高防IP,将攻击流量引流到高防IP,防护系…

iOS移动应用程序的备案与SHA-1值查看

​ 目录 📝iOS移动应用程序的备案与SHA-1值查看 引言 第一部分:App备案 第二部分:查看SHA-1值 引言 在开发和发布移动应用程序时,进行App备案是非常重要的一步,它是确保您的应用在合规性方面符合相关法规的过程。…

2023-11-27 LeetCode每日一题(子数组的最小值之和)

2023-11-27每日一题 一、题目编号 907. 子数组的最小值之和二、题目链接 点击跳转到题目位置 三、题目描述 给定一个整数数组 arr,找到 min(b) 的总和,其中 b 的范围为 arr 的每个(连续)子数组。 由于答案可能很大&#xff…

记一次处理大数据而导致的内存溢出问题

问题 订单服务通过MQ进行订单同步时,刚启动可以正常消费,但是跑一会就会卡住,每次都是第8个kafka分区不行再进行消费,其他分区消费的很慢。 现象 首先,CPU超高,达到百分之300多;其次&#xf…

2023年双十二超声波清洗机如何选?有哪些值得购买的超声波清洗机?

通过眼科医院对近视眼统计报告说明,截止2023年3月27日,全国近视眼人数为3亿人,其中青少年近视约为2亿人,现在大部分人都离不开眼镜,也有很多人忽视了清洗眼镜的重要性,眼镜长时间的不清洗的话会很容易导致脸…

MyBatis Generator使用总结

MyBatis Generator使用总结 介绍具体使用数据准备插件引入配置条件构建讲解demo地址 介绍 MyBatis Generator (MBG) 是 MyBatis 的代码生成器。它能够根据数据库表,自动生成 java 实体类、dao 层接口(mapper 接口)及m…

【赠书第8期】工程效能十日谈

文章目录 前言 1 工程效能十日谈 1.1 制定清晰的目标和计划 1.2 引入先进的技术和工具 1.3 建立有效的沟通机制 1.4 灵活应对变化 1.5 确保资源充足 1.6 进行有效的风险管理 1.7 进行持续的监控和评估 1.8 优化团队合作 1.9 注重质量管理 1.10 进行项目总结和反思 …

SSM图书捐赠网站系统开发mysql数据库web结构java编程计算机网页源码eclipse项目

一、源码特点 SSM 图书捐赠网站系统是一套完善的信息系统,结合springMVC框架完成本系统,对理解JSP java编程开发语言有帮助系统采用SSM框架(MVC模式开发),系统具有完整的源代码和数据库 ,系统主要采用B/…

openpnp - 自动换刀设置 - 使用克隆功能有风险

文章目录 openpnp - 自动换刀设置 - 使用克隆功能有风险概述笔记需要注意的地方将一个做好的吸嘴作为这排其他吸嘴的模板bug - 这个克隆功能慎用备注END openpnp - 自动换刀设置 - 使用克隆功能有风险 概述 自动换刀设置时, 很危险, 动不动就撞刀. 如履薄冰啊:( 看到openpnp在…

【社会网络分析第6期】Ucient实操

一、导入数据处理二、核心——边缘分析三、聚类分析四、网络密度 一、导入数据处理 将数据导入Ucinet首先需要对数据进行处理。 承接上一期的数据格式:【社会网络分析第5期】gephi使用指南 原先得到的数据格式如下: 接下来打开ucinet: 之后…

王者荣耀小游戏

第一步是创建项目 项目名自拟 第二部创建个包名 来规范class 然后是创建类 GameFrame 运行类 package com.sxt; package com.sxt;import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.…

Echarts+Vue+dataV 首页大屏静态示例Demo

效果图: <template><div class="content bg"><!-- 全屏容器 --><!-- 第一行 --><div class="module-box"><div style="flex: 0 1 30%"><dv-decoration-10 style="height: 5px" />&…

【运营思维】美团面试题:如何把梳子卖给寺庙和尚?

Hello 小米的小伙伴们~ 欢迎来到小米的微信公众号&#xff01;今天小米要和大家分享一道美团运营面试题&#xff0c;题目可真是独特——“如何把梳子卖给寺庙和尚&#xff1f;”想必大家一定兴奋不已吧&#xff01; 首先&#xff0c;让我们理清思路&#xff0c;挑战这个看似不…