硬盘IO性能估算(IOPS,吞吐量,延时)

硬盘IO性能估算(IOPS,吞吐量,延时)

说明

磁盘种类

硬盘有固态硬盘(SSD 盘,新式硬盘)、机械硬盘(HDD 传统硬盘)、混合硬盘(HHD 一块基于传统机械硬盘诞生出来的新硬盘)。SSD采用闪存颗粒来储存,HDD采用磁性碟片来储存,混合硬盘(HHD: Hybrid Hard Disk)是把磁性硬盘和闪存集成到一起的一种硬盘。

容量

硬盘的容量以兆字节(MB/MiB)、千兆字节(GB/GiB)或百万兆字节(TB/TiB)为单位,而常见的换算式为:1TB=1024GB,1GB=1024MB而1MB=1024KB。但硬盘厂商通常运用的是GB,也就是1G=1000MB,而Win系统,就依旧以“GB”字样来表示“GiB”单位(1024换算的),因此我们在BIOS中或在格式化硬盘时看到的容量会比厂家的标称值要小。

转速(Rotational Speed 或Spindle speed)

RPM是Revolutions Per minute的缩写,是转/每分钟。RPM值越大,内部传输率就越快,访问时间就越短,硬盘的整体性能也就越好。

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

旋转延迟 Trotation是指盘片旋转将请求数据所在扇区移至读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常使用磁盘旋转一周所需时间的1/2表示。

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

IOPS

每秒处理的IO次数

RPM

转速

性能估算

寻道时间估算

磁头移动到对应磁道上的耗时。

SATA 7200RPM,平均寻道时间是9ms。

SAS 10000RPM,平均寻道时间是6ms。

SAS 15000RPM,平均寻道时间是4ms。

具体查看磁盘供应商提供数据。

旋转延时估算

平均为磁盘旋转一周所需时间的一半
旋 转 延 时 = 60 ∗ 1000 / R P M / 2 旋转延时=60*1000/RPM/2 =601000/RPM/2
传输时间

平均数据大小除以接口传输率,耗时很小粗略计算可以忽略。 SATA,300~600MB/s。 SAS,3Gbit/s。 FC,2~4Gbit/s。 NVME,32Gbit/s。

吞吐量估算
I / O 吞 吐 量 ( 一 秒 内 ) = I O P S ∗ 平 均 I / O S I Z E I/O 吞吐量(一秒内)= IOPS* 平均 I/O SIZE I/O()IOPSI/OSIZE
IOPS估算
I O P S = 1000 m s / ( 寻 道 时 间 + 旋 转 延 迟 ) 物 理 磁 盘 总 的 I O P S = 物 理 磁 盘 的 I O P S × 磁 盘 数 目 可 用 的 I O P S = ( 物 理 磁 盘 总 的 I O P S × 写 百 分 比 ÷ R A I D 写 惩 罚 ) + ( 物 理 磁 盘 总 的 I O P S × 读 百 分 比 ) IOPS = 1000 ms/ (寻道时间 + 旋转延迟)\\ 物理磁盘总的IOPS = 物理磁盘的IOPS × 磁盘数目\\ 可用的IOPS = (物理磁盘总的IOPS × 写百分比 ÷ RAID写惩罚) + (物理磁盘总的IOPS × 读百分比) IOPS=1000ms/(+)IOPS=IOPS×IOPS=IOPS×÷RAID+IOPS×
其中

**RAID-0:**直接的条带,数据每次写入对应物理磁盘上的一次写入,写惩罚值是1。

RAID-1和10:RAID-1 和RAID-10的写惩罚很简单理解,因为数据的镜像存在的,所以一次写入会有两次,写惩罚值是2。

**RAID-5:**RAID-5由于要计算校验位的机制存在,需要读数据、读校验位、写数据、写校验位四个步骤,所以RAID-5的写惩罚值是4。

**RAID-6:**RAID-6由于有两个校验位的存在,与RAID-5相比,需要读取两次校验位和写入两次校验位,所以RAID-6的写惩罚值是6。

iops估算raid盘数

  1. 如果单盘不能满足性能需求,需要通过Raid实现,计算所需硬盘数公式如下。 Raid1、10,Drive IOPS = Read IOPS + 2Write IOPS Raid3、5,Drive IOPS = Read IOPS + 4Write IOPS Raid6,Drive IOPS = Read IOPS + 6*Write IOPS;

  2. 设需要IOPS 5000,读写比例2:1,则RAID10后IOPS需求为。 RAID10,(2/3) * 5000 + 2 * (1/3) * 5000 = 6666 IOPS;

  3. 已知SAS 15000RPM机械硬盘IOPS165。 5000IOPS所需硬盘个数, 6666 / 165 = 40。

SSD硬盘IO估算

固态硬盘没有寻道时间和旋转时间。IO耗时是通过地址查找数据耗时,根据芯片颗粒SLC、MLC,中控芯片、队列深度32~64、接口SATA、PCIE的不同,一般负载非太高时是相对固定值(控制在60%利用率)。 IOPS = 1000 / IO耗时。因为SSD比较固定,比如Intel 320 SSD对8K avgrq-sz耗时0.1ms,1000/0.1ms=10000 IOPS。具体参考后续文章。

常见存储设备参考性能

5400 RPM SATA,60 IOPS

7200 RPM SATA,70 IOPS

10000 RPM SAS,110 IOPS

15000 RPM SAS,150 IOPS,Sequential RW 180MB/s、Radom RW 15MB/s。

10000 RPM FC,125 IOPS

15000 RPM FC,150 IOPS

SSD SATA,3000~40000 IOPS,R 400MB/s、W 250MB/s。

SSD PCIE,20000~40000 IOPS,R 500MB/s、W 300MB/s。

内存,1000000+ IOPS,30~60 GB/s。

性能调优

对于随机负载,当遇到余下情况时,我们那通常认为存在 I/O 性能问题:

  1. 平均读时间大于 15ms

  2. 在具有写 cache 的条件下,平均写时间大于 2.5ms

对于顺序负载,当遇到余下情况时,我们那通常认为存在 I/O 性能问题:

  1. 在一个磁盘上有两个连续的 I/O 流

  2. 吞吐量不足(即远远小于磁盘 I/O 带宽)

对于一块磁盘来讲,随着 IOPS 数量的增加,I/O service 也会增加,并且会有一个饱和点,即 IOPS 达到某个点以后,IOPS 再增加将会引起 I/O service time 的显著增加。

命令

判断是ssd还是hdd

  1. cat /sys/block/*/queue/rotational
    
  2. lsblk -d -o name,rota
    

0为ssd,1为hdd

查看磁盘转速

  1. sginfo -g /dev/*
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值