Getting the hang of IOPS

一篇牛文的总结:
 
 网站也提供了机器翻译,不过太差了,自己总结了一点要点~
盘面
硬盘有盘面(disk platter),盘面上有上千个磁道(disk tracks),盘面会旋转,转速是硬盘本身属性,正常是7200转,最高可到每秒250K转。由于盘面本身数据密度有限,往往会通过多个盘叠加来提高硬盘容量。
磁头
硬盘通过磁头读写数据。一般每个盘面有两个磁头。
旋臂( The Actuator Arm)
磁头位于旋臂上,旋臂使磁头定位到指定的磁道上。然后盘面的旋转帮助磁头定位到某个具体位置开始读写数据。
 
盘面旋转速度RPM(Rotations Per Minute )决定了硬盘的连续读写速度,RPM越高,磁头在单位时间内就可以读写更多的扇区。
而旋臂的旋转速度决定了硬盘随机读写速度。定位
 
Average Latency平均延迟 即RPM的一半,因为定位到磁道后,再定位到具体某个点的距离的数学期望是磁道周长的一半
Average Seek Time 平均寻道时间 磁道是盘面上的同心圆,故定位到具体一个磁道的距离是盘面半径的一半
 
上述两个指标共同决定了硬盘随机IO的性能。对于任一随机读,磁头需先寻道,再定位,所以整个动作的延迟是两者之和。
Response Time  = ( Average Latency)  + ( Average Seek Time)
 
文中还提到了 Z one  B it  R ecording的概念,就是由于磁道分布离圆心的半径不同,磁道的周长也就不同,那么在相同的数据存储密度下,外圈应该可以存储更多的数据。早期的硬盘为了避免麻烦,规定了所有磁道的扇区数量是一致的(记得计算机组成原理也是这么介绍的)。后来伴随技术的进步,支持每个磁道拥有不同的扇区数。然而这么做又给管理带来麻烦。所以引入了ZBR的概念,每个zone中所有磁道的扇区数量一致,不同的zone具有不同的扇区数量。
 

看上去Response time与硬盘的传输速度无关。因为对于顺序读写来说,硬盘的RPM和最大磁道的扇区数决定了硬盘数据的最大传输速度。然而实际应用中,顺序读写很少,大多数是随机读写,且每次读写较少的数据,此时response time决定了硬盘单位时间内可以完成的IO次数(Input/Output oPerations per Second (IOPS) )

IOPS可以近似认为是1/Response Time (假设读取0字节)
于是文中介绍了partial stroking技术来提升IOPS。做法如下:将一块大硬盘进行分区,只用其中一部分容量,其余弃置。这样,对于硬盘来说,只有一部分磁道会被用到,磁头的移动范围也会相对缩小,从而可以显著减小Average Seek Time。这样,便可以通过牺牲部分容量作为代价,换取性能的提升。文中举例一个500G的硬盘,如果只用100G,可以把IOPS从66提升到94.
(这个技术是第一次听说,不过想了下还是比较容易理解的,算是ds逆袭高富帅的利器。)
文中剩下部分总结了RAID与IOPS的关系。着重从write penalty的角度,如为了维护RAID5,需要4次IO去完成一个块的写(因为需要更新冗余验证信息)。然后给了一个公式,即为了达到指定的IOPS值,在使用一个指定RAID阵列下,需要多少个硬盘。对于部署机器是一个参考。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值