我们都知道硬盘顺序读写很快,像HDD硬盘都能达到20万每秒的iops,而随机读写按照7200转的HDD的iops在100左右,为什么那?
要搞清楚这个问题需要我们先来对磁盘有一个基本的认识;
一、磁盘的基本了解
基本的基本组成部分,磁盘主要有盘面、磁头、悬臂组成如下图
磁道:盘面上一个个的同心圆就是磁道,盘面是有多个磁道组成;扇面:是由悬臂和盘面所形成的扇形,扇面又组成了磁道;
柱面:有上下大小相等的盘面的扇面组成;
二、磁盘的平均延迟时间、平均寻道时间;
iops = 磁盘平均延迟时间+平均寻道时间;
平均延迟时间:
盘面旋转,对准悬臂的时间;这个时间等于,1秒内半盘面访问的时间,如7200转的HDD,一秒能转240 = 7200/60 * 2(平均只需要转半盘面);
1S/240 = 4.17ms;
平均寻道时间:
是指悬臂找到对应的磁道,再找到扇面所花费的时间,一般在4-10ms;
所以 IOPS = 1S/8ms = 125 iops 或者 IOPS = 1S/14ms = 71 iops
所以我们一般都说HDD随机读iops在一百左右;
三、怎么提高随机读的iops
缩短寻道的时间,只用磁盘的1/4,或者1/2,由于大量的减少了寻道路径,所以寻道的时间降低,从而降低了iops,在2010前期很多互联网公司都是采用这种方式来提高iops,也能节约成本,因为磁盘的1/4的存储也比提高磁盘的转速便宜得多;