1)以7200转/min的磁盘为例,8.33ms内选择一周
2) 磁道间跳转需要1ms的启动时间,每移动4000个磁道增加1ms
3)磁盘以65536个磁道计算
首先算寻道时间,寻道距离按照此前的证明为1/3个磁道数,
则寻到时间 = 1 + (65536/2)/4000 = 6.46ms
再算旋转延迟,这个时间是由于到了磁道上,但需要找到准确的扇区,最好情况下,寻道后直接找到,最坏的情况下,寻道后转一圈找到,因此选择延迟大约为 8,33/2 = 4.17ms
假定这次随机读的量很小,传输时间忽略不计。
那么磁盘1次随机读的时间 = 6.46 + 4.17 = 10.63ms
磁盘随机读的代价是非常巨大的,10ms的时间可以执行数百万条指令,通常一个指令的耗时按ns计算(L1 cache的一次访问),1秒能执行百万次指令。
怎么克服磁盘随机读的问题呢?除了在业务上想办法,还有哪些技术上的办法,待续。
最新评论