Content #
Partial Stroking 或者 Short Stroking。
既然访问一次数据的时间,是“平均延时 + 寻道时间”,那么只要能缩短这两个之一,不就可以提升 IOPS 了吗?
一般情况下,硬盘的寻道时间都比平均延时要长。那么自然就可以想一下,有什么办法可以缩短平均的寻道时间。最极端的办法就是不需要寻道,也就是说,把所有数据都放在一个磁道上。比如,始终把磁头放在最外道的磁道上。这样,寻道时间就基本为 0,访问时间就只有平均延时了。那样, IOPS,就变成了
1s / 4ms = 250 IOPS
实践中,可以只用 1/2 或者 1/4 的磁道,也就是最外面 1/4 或者 1/2 的磁道。这样,硬盘可以使用的容量可能变成了 1/2 或者 1/4。但是,寻道时间,也变成了 1/4 或者 1/2,因为悬臂需要移动的“行程”也变成了原来的 1/2 或者 1/4, IOPS 就能够大幅度提升了。
比如说,一块 7200 转的硬盘,正常情况下,平均延时是 4.17ms,而寻道时间是 9ms。那么,它原本的 IOPS 就是
1s / (4.17ms + 9ms) = 75.9 IOPS
如果只用其中 1/4 的磁道,那么,它的 IOPS 就变成了
1s / (4.17ms + 9ms/4) = 155.8 IOPS
你看这个结果,IOPS 提升了一倍,和一块 15000 转的硬盘的性能差不多了。当然,硬盘能用的空间也只有原来的 1/4 了。不过,同样容量的 15000 转的硬盘的价格可不止是 7200 转硬盘的 4 倍啊。所以,这样通过软件去格式化硬盘,只保留部分磁道让系统可用的情况,可以大大提升硬件的性价比。