IOPS 介绍
文章目录
依旧是自己不甚清楚的一个概念,希望通过自己的整理来加深印象,也希望这篇介绍能帮助 到其他人。
概念
IOPS,即Input/Output Operations Per Second
,每秒钟执行 IO 请求的次数,一般即指读写
数据操作,是衡量存储性能的主要指标之一。Throughput(吞吐量)表示的是每秒数据的传输总量,是另一个主要指标。
二者关注点不同,对于小 I/O,且传输 I/O 数量比较大的情况下,以 IOPS 衡量为宜,比如
OLTP(On-Line Transcation Processing
)系统、小文件存储、邮件服务器等。而对于经常传输
大量连续数据的系统,以吞吐量衡量为宜,比如视频点播、视频编辑等。
IO 时间
机械磁盘
机械磁盘完成一次 I/O 请求所花费的时间由寻道时间、旋转延迟 和数据传输时间三部分构成:
-
寻道时间
将读写磁头移动至正确的磁道上所需的时间。目前磁盘的平均寻道时间一般在 3-15ms.
-
旋转延迟
盘片旋转将请求数据所在扇区移至读写磁头下方所需时间。旋转延迟取决于磁盘转速, 通常使用磁盘旋转一周所需时间的 1/2 表示。比如 7200 rpm (每分钟 7200 转)的磁盘,其平 均旋转延迟约为
60*1000/7200/2 = 4.17ms
。 -
传输时间
完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数 据传输率。目前 IDE/ATA 能达到 133MB/s,SATA II 可达到 300MB/s 的接口数据传输率,数 据传输时间通常远小于前两部分。
因此,如果忽略数据传输时间,就可以计算出机械磁盘的最大 IOPS.假设磁盘平均物理寻道时间 为 3ms, 磁盘转速为 7200,10K,15K rpm,则磁盘 IOPS 理论最大值分别为:
IOPS = 1000 / (3 + 60000/7200/2) = 140
IOPS = 1000 / (3 + 60000/10000/2) = 167
IOPS = 1000 / (3 + 60000/15000/2) = 200
固态硬盘
固态硬盘 SSD 是一种电子装置, 避免了传统磁盘在寻道和旋转上的时间花费,存储单元寻址 开销大大降低,因此 IOPS 可以非常高,能够达到数万甚至数十万。
指标
实际测量中,IOPS 数值会受到很多因素的影响,包括 I/O 负载特征(读写比例,顺序和随机, 工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等等。因此对比 测量磁盘 IOPS 时,必须在同样的测试基准下进行,即便如何也会产生一定的随机不确定性。 通常情况下,IOPS 可细分为如下几个指标:
-
Toatal IOPS,混合读写和顺序随机 I/O 负载情况下的磁盘 IOPS,这个与实际 I/O 情况最为 相符,大多数应用关注此指标。
-
Random Read IOPS,100%随机读负载情况下的 IOPS.
-
Random Write IOPS,100%随机写负载情况下的 IOPS。
-
Sequential Read IOPS,100%顺序负载读情况下的 IOPS。
-
Sequential Write IOPS,100%顺序写负载情况下的 IOPS。
对于 HDDs 和类似的机械存储设备,random IOPS
的时间主要取决于寻道时间,但是对于 SSD
或类似的固态存储设备,则主要取决于存储设备内部的控制器以及memeory interface speeds
.
在两种设备上,Sequential IOPS
(尤其是使用大的数据块的时候)一般都指示了存储设备
的最大带宽:
IOPS * TransferSizeInBytes = BytesPerSec
参考链接
文章作者 涯余
上次更新 2015-02-04