最近在一个客户项目中,遇到客户提到的一项系统磁盘的要求,具体参数如下:
“系统盘IOPS不低于2120,......”
那么,什么是IOPS?IOPS这个指标又是用来衡量什么的?
事实上,IOPS是用来存储系统给量测的关键衡量指标。我们一起来了解下IOPS。
IOPS ,是Input/Output Opertions Per Second 的缩写,即 每秒输入输出次数。它是用于计算机存储设备,比如机械硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN)性能测试的量测方式。也就是系统在单位时间内能处理的最大的I/O频度;通常,OLTP(Online Transaction Processing)应用涉及更多的频繁读写,就需要更多的考虑IOPS;
传统磁盘本质上是一种机械装置,转速通常为5/7200/10K/15K rpm不等。
磁盘完成一个I/O请求所花费的时间,由寻道时间、旋转延迟和数据传输时间三部分构成。寻道时间Tseek是指将磁头移动至正确的磁道上所需要的时间,其平均值一般在3~15ms。旋转延迟Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间,取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示,如,7200 rpm磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms。数据传输时间Ttransfer是指传输所请求数据所需要的时间,它取决于数据传输率,目前IDE/ATA能达到133MB/s,SATA II可达到300MB/s的数据传输率。相对于寻道时间Tseek和旋转延迟Trotation,数据传输时间Ttransfer所占的比例往往是非常小的(取决于每次传输的数据量的大小,数据量大,则比例高,数据量小,则比例低)。
IOPS与读写负载特征息息相关。如果为顺序读写,则两次顺序读写之间的寻道时间和旋转时间可以忽略,因此顺序读写iops往往远大于随机读写iops。除此之外,iops也与存储的缓存、阵列的结构等有关。理论上可以计算出磁盘的最大随机IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),其值一般在100~200之间。
在磁盘阵列系统中,磁盘数量越多,IOPS值越大(几乎呈线性增长)。而且,在同样的配置下,IOPS值随磁盘中数据量的增加而下降。下图为常用磁盘的IOPS列表,参考自维基百科:
IOPS的数值会随系统配置而有很大的不同,依测试者在测试时的控制变因而异,控制变因包括读取及写入的比例、其中循序访问及随机存取的比例及配置方式、线程数量及访问队列深度,以及数据区块的大小。其他因素也会影响IOPS的结果,例如系统设置、存储设备的驱动程序,操作系统后台运作的作业等。若在测试固态硬盘时,是不是先进性预调(preconditioning)机制也会IOPS的结果。
引申下,衡量存储性能的指标 SAN和NAS存储一般都具备两个评价指标:IOPS和带宽(throughput),两个指标呼吸那个独立又相互关联。I
(1)IOPS与带宽有什么区别?
每次IO就是一次操作,比如读从哪开始的多少扇区的数据,这就是一次IO。每次IO请求的数据量乘以IOPS,就等于带宽。
(2)存储阵列以哪个参数为性能指标看客户端对存储的需求了,有些要求高带宽比如视频编辑,有些则要求高IOPS吞吐能力比如一些小块离散的IO。前者虽然达到高带宽但IOPS可能较低,因为每个IO请求的数据量很大,后者IOPS高但是可能带宽较低。因为每次IO请求的数据量小。
以上就是关于服务器存储系统性能指标IOPS的相关介绍,更多服务器存储知识和云专线资料,欢迎访问网站了解。