磁盘性能评价指标—IOPS和吞吐量
https://www.cnblogs.com/zfox2017/p/7655034.html

IOPS (Input/Output Per Second)即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(Online Transaction Processing),IOPS是关键衡量指标。另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。

传统磁盘本质上一种机械装置,如FC,SAS,SATA磁盘,转速通常为5400/7200/10K/15K rpm不等。影响磁盘的关键因素是磁盘服务时间,即磁盘完成一个I/O请求所花费的时间,它由寻道时间、旋转延迟和数据传输时间三部分构成。

寻道时间Tseek是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。

旋转延迟Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。比如,7200 rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000 rpm的磁盘其平均旋转延迟约为2ms。

数据传输时间Ttransfer是指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。目前IDE/ATA能达到133MB/s,SATA II可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分时间。

因此,理论上可以计算出磁盘的最大IOPS,即IOPS = 1000 ms/ (Tseek + Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为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。

IOPS的测试benchmark工具主要有Iometer, IoZone, FIO等,可以综合用于测试磁盘在不同情形下的IOPS。对于应用系统,需要首先确定数据的负载特征,然后选择合理的IOPS指标进行测量和对比分析,据此选择合适的存储介质和软件系统。下面的磁盘IOPS数据来自http://en.wikipedia.org/wiki/IOPS,给大家一个基本参考。

计算IOPS跟如下几个参数有关
1.服务器的硬盘个数: 这个就不用说了;
2.使用的RAID的方式:

 Raid 0:他是条带操作,所以只需要写入一次就行了,Write Penalty(写惩罚)为1
 Raid 1/10:因为是镜像操作,所以写的操作的时候要写入2次, Write Penalty 2
 Raid 5:他们需要进行异或运算,所以读一个操作,再进行运算,写入一个操作,再读取一个校验位,之后再写入,所以整个完成是需要4个动作才能完成Write Penalty 4
 Raid 6 :跟Raid相比多一个校验位和一个写操作,Write Penalty 为6

3.服务器的读写比例 服务器主要用来做什么?平时的读写操作的百分比是多少,File Server 大概的是1/2到1/3左右,WebServer 大概为1/4左右,具体的情况具体分析
4.硬盘类型 不同类型的硬盘IOPS值如下:

硬盘类型的IOPS值

不同磁盘类型的IOPS:
硬盘类型

硬盘类型 IOPS
FC 15K RPM 180
FC 10K RPM 140
SAS 15K RPM 180
SAS 10K RPM 150
SATA 10K RPM 290
SATA 7.2K RPM 80
SATA 5.4K RPM 40
Flash drive 2500

IOPS的计算公式:
服务器的总的IOPS??=物理磁盘的IOPS * 硬盘的数量
可用的IOPS=?[ 服务器的总的IOPS? * (写入百分比) * Raid Write Penalty]+(服务器的总的IOPS? * 读百分比)
案例1:
现有一台HP P2000的存储服务器,12颗SAS 15K RPM的硬盘 ,用来制作Raid5,其中有一颗硬盘用来做冗余(备份),读写的比例大概为1/3,他的IOPS为多少;
根据上述公式可以得出下面IOPS
总IOPS=180 11 =1980
可用的IOPS=?1980
(1/3)4+19802/3=

二、案例

1) 业务需求: 10TB 的FC 15K RPM存储空间,满足6000 IOPS,计算RAID5,RAID10分别需要多少块硬盘?

首先需要知道I/O中读操作与写操作所占的百分比。 假定6000 IOPS中读/写比是2:1

不同的RAID类型Drive 硬盘实际IOPS负载分别如下:

RAID10:(2/3)6000+2(1/3)*6000= 8000 IOPS

RAID5:(2/3)6000+4(1/3)*6000=12000 IOPS

参照不同硬盘类型的IOPS值,换算出需要多少块盘:

RAID10:8000 /180 = 45块

RAID5:12000/180 =67块

2) 一个RAID5,是由5块500G 10K RPM的FC盘组成,换算出该RAID支持的最大IOPS以及能够给前端应用提供的IOPS?

首先10K RPM的FC盘,单块盘的IOPS为140,5块盘最大IOPS值为700。

假设读写比为2:1,能够提供给前端应用的IOPS为:

(2/3)X+4(1/3)*X = 700

     2*X = 700 

     X=350

     能够提供给前端应用的IOPS为350。
文档更新时间: 2020-02-14 09:39   作者:月影鹏鹏