如何在两个不同速度的磁盘之间拆分数据请求?

时间:2014-03-24 06:52:57

标签: performance

我最近在接受采访时被问到这个问题 -

假设我有两个磁盘,其中一个磁盘的速度是其他磁盘的速度的三倍。那么我应该如何在两个磁盘上划分数据,以便最佳地划分我对数据的请求。他想知道我应该在快速磁盘上保留多少数据以及在慢速磁盘上保留多少数据以便我的数据请求被统一划分。

当时我没有正确的答案和解释,但我设法说我会保持缓慢的1/3和快速的2/3。

谁能告诉我这个问题的答案应该是什么?

2 个答案:

答案 0 :(得分:0)

如果一个磁盘的查询次数应该是另一个磁盘的三倍,那么请求应按1:3的比例划分,所以1/4分为慢速,3/4为快速。

然而,硬盘的性能取决于读取速度,写入速度和访问时间。这些是不同的特征,所以在不了解这些磁盘的情况下,很难说一个磁盘的速度是另一个磁盘的三倍。

最好的办法是拥有一个任务队列和两个线程,每个线程一旦被释放就会为其分配的磁盘挑选任务。但是,只有在设计允许将请求定向到任一磁盘时才能实现这一点。

答案 1 :(得分:0)

好吧......你的答案让我觉得几乎是合理的。如果磁盘1的速度是x并且磁盘2的速度是(1/3)x,你可以做一点代数并且x +(1/3)x = 1 - > x(1 + 1/3)= 1 - > x(4/3)= 1 - > x = 3/4。因此,磁盘1上的3/4,磁盘2上的1/4。