私は現在、ハードドライブのベンチマークを行っています。測定にはHW32を使用しています。
結果には2つの部分があります。
random seek time: 20 ms
random read throughput: 30 Mbytes/s
HW32がベンチマークに対して行っていた方法がわかりません。
しかし、ランダムなシーク時間の結果は非常に奇妙だと思います。
私の理解では、ランダムシーク時間はthe time that is spent on where a specific data is
を意味します。ですから、random read
にはrandom seek
が何度も含まれているはずですよね?
たとえば、ディスクから100MBのデータを読み取ろうとしています。また、ディスクのフラグメントが原因で、ディスク上に1000個のランダムなブロックがあり、各場所に100KBのデータがあります。だから私がそれを読んだとき、すべてのデータブロックを見つけるためにディスクヘッドは1000回移動する必要がありますよね?
つまり、random seek time is 20ms
の場合、ランダムシークに1000 * 20 = 20,000ms = 20秒を費やす必要があるということですか?そうじゃないでしょう?
誰かが私に説明できますか? HW32のようなベンチマークでrandom seek time = 20 ms
と表示された場合、それはどういう意味ですか?それはtotal random seek time for a random read
またはaverage seek time
を意味しますか?
ありがとう
ランダムシーク時間は、ディスクがデータが配置されている位置に到達し、単一のブロック(または単一のセクター)を読み取るために必要な平均時間です。実際の値は、それよりもはるかに高くても低くてもかまいません。
ランダム読み取りレートの場合、通常、平均を計算するために同じ位置で複数のブロックが読み取られるため、このレートは、シーク時間とドライブの線形読み取りスループットの両方に依存します。
最近のディスクには、 ネイティブコマンドキューイング と呼ばれる手法を使用して転送速度を上げる方法もあります。これにより、頭の動きを最小限に抑えるために要求を再利用できます。
システムがランダムなブロックをランダムな順序でシークすると想定しています。それは決してそれをしません。
ランダムに選んだ店で何かを購入する必要がある場合、その店まで車で行き、何かを手に取ってから車で戻るのに平均2時間かかることがあります。しかし、ランダムに選択された1,000の店舗に車で行く必要がある場合、最適な順序を選択するため、店舗ごとに2時間はかかりません。いくつかの店は隣同士になります。等々。
あなたの数は少し奇妙です。 20msの平均レイテンシは1秒あたり50IOを意味し、これらの50IOを合計して30MBにするには、異常に大きなセクターサイズを使用する必要があります。彼らが平均ではなくピーク値を報告している可能性はありますか?