- 现代卫生信息技术与应用
- 陈敏 周彬 肖兴政主编
- 1072字
- 2021-04-16 15:43:28
二、IOPS测试
IOPS是指单位时间内系统处理的I/O请求数量一般以每秒处理的I/O请求数量为单位,I/O请求一般为读写数据操作请求。
(一)IOPS计算
FC、SAS、SATA磁盘等传统磁盘本质上是一种机械装置,转速通常为5400/7200/10k/15k rpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求花费的时间,由寻道时间、旋转延迟和数据传输时间等3部分构成。
寻道时间(seek time,Tseek)是指将读写磁头移动至正确磁道上所需的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3~15ms。
旋转延迟(rotational time,Trotation)是指盘片旋转将请求数据所在扇区移至读写磁头下方所需的时间。旋转延迟取决于磁盘转速,一般用磁盘旋转一周所需时间的1/2表示。如7200rpm的磁盘平均旋转延迟约为60×1000/7200/2 = 4. 17ms,转速为15000rpm的磁盘其平均旋转延迟约为2ms。
数据传输时间(data transfer time,Ttransfer)是指完成传输请求数据所需的时间,它取决于数据传输率,值等于数据大小除以数据传输率。目前IDE/ ATA可达到133MB/s,SATAⅡ可达到300MB/s的接口数据传输率,数据传输时间一般小于前两部分时间。
理论上可计算出磁盘的最大IOPS,即IOPS = 1000ms/(Tseek+Trotation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms,磁盘转速为7200、10k、15krpm,则磁盘IOPS理论最大值分别为:IOPS =1000/(3+60 000/7200/2)= 140;IOPS= 1000/(3+ 60 000/10 000/2)= 167;IOPS = 1000/(3+60 000/ 15 000/2)= 200。
SSD是一种电子装置,避免了传统磁盘在寻道和旋转的时间花费,存储单元寻址开销大幅降低,因此IOPS可达到数万甚至数十万。IOPS数值在实际测量中将受到I/O负载特征(读写比例,顺序和随机,工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等因素的影响。因此比较测量磁盘IOPS时,测试基准必须同样,但仍将产生一定的随机不确定性。
(二)IOPS与吞吐量的关系
每秒I/O吞吐量= IOPS×平均I/OSIZE。I/O SIZE越大,IOPS越高,每秒I/O的吞吐量就越高。因此误认为IOPS和吞吐量的数值越高越好。实际对于一个磁盘,这两个参数均有其最大值,且存在着一定的关系。
IOPS可分为Total IOPS、Random Read IOPS、Random Write IOPS、Sequential Read IOPS、Sequential Write IOPS 5个指标。
1. Total IOPS
混合读写和顺序随机I/O负载情况下的磁盘IOPS,与实际I/O情况最为相符,大多数应用关注此指标。
2. Random Read IOPS
完全随机读负载情况下的IOPS。
3. Random Write IOPS
完全随机写负载情况下的IOPS。
4. Sequential Read IOPS
完全顺序读负载情况下的IOPS。
5. Sequential Write IOPS
完全顺序写负载情况下的IOPS。
供应商公布的常是IOPS很高的完全顺序读IOPS指标,但多数用户实际使用的环境既有顺序读写、也有随机读写操作,所以产品在用户实际使用环境中性能自然就比标注的指标差。
IOPS的测试Benchmark工具主要有Iometer、IoZone、FIO等,可综合测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,选择合理的IOPS指标测量和对比分析,据此选择合适的存储介质和软件系统。