磁盘IO计算

看了篇文章,突然想写点磁盘IO的东西,也算是对磁盘的一点点总结。

以下以理论为主,辅助结合实际情况。不明白这句话的出去。

今年是2018年,目前市场上早已经没有国产的硬盘,以前的长城、易拓早早的被拍死在沙滩上,话说硬盘的制造难度仅次于CPU。现在好多厂商也被不断的兼并收购也是因为垂直磁记录这道题太难了,不会做。

下面上图看看磁盘技术

现在市面上的磁盘安装转速来说有5400、7200、10000、15000转/分,这里只讨论3.5英寸的硬盘。

IOPS和带宽是硬盘的主要参数之一,那这些硬盘的IOPS和带宽都是多少呢?我们不考虑实际情况的计算一下:

IOPS(IO per second)是硬盘最重要的参数之一,存储系统一直在优化的一个参数。那么不同的硬盘IOPS是多少?怎么计算呢?

先写结果

5400 RPM的硬盘IOPS=
7200 RPM的硬盘IOPS=80
10000 RPM的硬盘IOPS=147
15000 RPM的硬盘IOPS=199
*以上数据为理论计算值,理论很丰满,现实很骨感。

如何计算的呢?我们以10000 RPM的硬盘为例进行说明

磁盘在接收到一个IO请求的时候需要3步来完成:

1.将磁头转到相应的磁道=寻址时间

  我们没有计算寻址时间的方法,只有原厂商提供的数据,HGST的HUC101890CS420x提供了Seek time约为3.8ms

2.等待相应的扇区转到磁头下方开始读取=潜伏时间latency time。

  最好的情况是磁头转到相应的磁道,扇区正好在转到磁头下方,此时旋转延时最小为0ms

  最差的情况是磁头转到相应的磁道,扇区刚转过磁头下方,此时旋转延时最大,为60000ms/10000转=6ms

  两者取平均值为3ms

3.数据传送时间

  1个4k的文件所需的数据传输时间=4K / 数据传输率

  我们参考原厂商的HUC101890CS420x硬盘的数据传输率Sustained transfer rate (MB/s, typical)为146 to 247,在这里我们取200MB/s

  则得出4k文件的传输时间=4k / 200MB/s=0.02ms

经过3步之后,数据就真正的写在了硬盘上,那所花费的时间=3.8ms+3ms+0.02ms=6.82ms

硬盘操作一个IO需要6.82ms,那么1s的时间能够操作的IO=1s/6.82ms=146.7次,所以我们10000RPM的硬盘IOPS即为147

同理可得以下计算过程: 

7200转硬盘我选取HUS726TxTAL42yz,此硬盘寻址时间seek time为8.3ms
数据传输率为up to 233,按照200MB/s算吧
IOPS=1s / [ 8.3ms+(60000/7200/2)ms+0.02ms ]=1s / 12.49ms = 80


15000转的硬盘我选取HUC156060CS420x,此硬盘的寻址时间seek time为3ms
数据传输率为189-271,按照200MB/s算吧
IOPS=1s / [ 3ms+(60000/15000/2)ms+0.02ms ]=1s / 5.02ms = 199

  

 *本文中硬盘HUC101890CS420x的参考数据来源:http://www.hgst.com/sites/default/files/resources/USC10K1800_ds.pdf

原文地址:https://www.cnblogs.com/tcicy/p/8495627.html