为啥平均磁盘寻道时间是完整寻道时间的三分之一?

Posted

技术标签:

【中文标题】为啥平均磁盘寻道时间是完整寻道时间的三分之一?【英文标题】:Why is average disk seek time one-third of the full seek time?为什么平均磁盘寻道时间是完整寻道时间的三分之一? 【发布时间】:2012-04-07 09:29:21 【问题描述】:

我读过很多书籍和论文,考虑到磁盘性能,平均寻道时间大约是完整寻道时间的三分之一,但没有人对此提供任何解释。这是哪里来的?

【问题讨论】:

【参考方案1】:

平均值是使用微积分进行数学计算的。 我们使用非常基本的公式来计算平均值。

平均寻道时间 =(所有可能的寻道时间之和)/(可能的寻道时间总数)

假设磁盘有 N 个磁道,因此这些磁道的编号从 1...N 头部在任何时间点的位置可以是从 0 到 N(含)的任何值。 假设磁头的初始位置在磁道“x”,磁头的最终位置在磁道“y”,因此 x 可以从 0 变化到 N,并且 y 可以从 0 变化到N.

在我们定义平均寻道时间的类似行上,我们可以说,

平均搜索距离 =(所有可能搜索距离的总和)/(可能搜索距离的总数)

根据 x 和 y 的定义, 总数可能的搜索距离 = N*N 和 所有可能的寻道距离之和 = SIGMA(x=0,N) SIGMA(y=0,N) |x-y| = 积分(x=0,N)积分(y=0,N) |x-y| dy dx

要解决这个问题,请使用 y = 0 到 x 和 y = x 到 N 的表达式的分裂模技术。然后求解 x = 0 到 N。

结果是 (N^3)/3。

平均寻道距离 = (N^3)/3*N*N = N/3

平均寻道时间 = 平均寻道距离 / 寻道率

如果从位置 0 到轨道 N 的寻道时间需要 't' 秒,则寻道速率 = N/t

因此,平均寻道时间 = (N/3)/(N/t) = t/3

参考:

http://pages.cs.wisc.edu/~remzi/OSFEP/file-disks.pdf 第 9 页对此给出了很好的回答。

【讨论】:

只包含链接的答案是considered bad practice。请在此处总结内容(请勿复制/粘贴),以便答案可以独立存在。如果您不这样做,您的答案将面临被删除的风险,尤其是在链接失效的情况下。 实际上,此分析假设每个轨道上的源/目标相同的概率 ⟺ 所有轨道上的数据量相同,然而因为区域位记录en.wikipedia.org/wiki/Disk_sector 可能会有所不同,因此实际值可能会略低(据我所知)。

以上是关于为啥平均磁盘寻道时间是完整寻道时间的三分之一?的主要内容,如果未能解决你的问题,请参考以下文章

磁盘寻道时间测量方法

操作系统磁盘寻道算法

目前常用的磁盘调度算法有哪几种?每种算法优先考虑的问题是啥?

磁盘调度算法FCFSSSTFSCANCSCAN详解

硬盘io性能

Linux 磁盘IO