磁盘IOPS的计算

计算磁盘IOPS的三个因素:
1、RAID类型的读写比

不同RAID类型的IOPS计算公式:

RAID类型

公式

RAID5、RAID3 Drive IOPS=Read IOPS + 4*Write IOPS
RAID6 Drive IOPS=Read IOPS +  6*Write IOPS
RAID1、RAID10 Drive IOPS=Read IOPS + 2*Write IOPS
2、硬盘类型的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
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。

三. IOPS 说明

3.1 IOPS (Input/OutputPer Second)

IOPS 即每秒的输入输出量(或读写次数),是衡量磁盘性能的主要指标之一。IOPS是指单位时间内系统能处理的I/O请求数量,一般以每秒处理的I/O请求数量为单位,I/O请求通常为读或写数据操作请求。随机读写频繁的应用,如OLTP(OnlineTransaction Processing),IOPS是关键衡量指标。

另一个重要指标是数据吞吐量(Throughput),指单位时间内可以成功传输的数据数量。对于大量顺序读写的应用,如VOD(Video On Demand),则更关注吞吐量指标。

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

(1)寻道时间

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

(2)旋转延迟

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

(3)数据传输时间

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

IOPS(每秒IO次数) = 1s/(寻道时间+旋转延迟+数据传输时间)

因此,理论上可以计算出磁盘的最大IOPS,即IOPS = 1000ms/ (Tseek + Troatation),忽略数据传输时间。假设磁盘平均物理寻道时间为3ms, 磁盘转速为7200,10K,15Krpm,则磁盘IOPS理论最大值分别为:

IOPS = 1000 / (3 + 60000/7200/2)  = 140
IOPS = 1000 / (3 + 60000/10000/2) = 167
IOPS = 1000 / (3 + 60000/15000/2) = 200

3.2 固态硬盘的IOPS

固态硬盘SSD是一种电子装置, 避免了传统磁盘在寻道和旋转上的时间花费,存储单元寻址开销大大降低,因此IOPS可以非常高,能够达到数万甚至数十万。实际测量中,IOPS数值会受到很多因素的影响,包括I/O负载特征(读写比例,顺序和随机,工作线程数,队列深度,数据记录大小)、系统配置、操作系统、磁盘驱动等等。因此对比测量磁盘IOPS时,必须在同样的测试基准下进行,即便如何也会产生一定的随机不确定性。

通常情况下,IOPS可细分为如下几个指标:

Toatal IOPS:混合读写和顺序随机I/O负载情况下的磁盘IOPS,这个与实际I/O情况最为相符,大多数应用关注此指标。

Random Read IOPS:100%随机读负载情况下的IOPS。

Random WriteIOPS:100%随机写负载情况下的IOPS。

Sequential ReadIOPS:100%顺序负载读情况下的IOPS。

Sequential WriteIOPS:100%顺序写负载情况下的IOPS。

文章来源: https://www.cnblogs.com/renyb/p/3698664.html
CentOS/Redhat IO view:
yum install iotop -y
sudo iotop
此条目发表在storage分类目录。将固定链接加入收藏夹。