web-dev-qa-db-ja.com

単一のHDDのIOPSを計算する-何が間違っているのですか?

したがって、HDDのIOPSを計算する標準化された方法がないことはわかっていますが、私が読んだすべてのことから、最も正確な式の1つは次のように見えます。
IOP/ms = + {回転待ち時間} +({ブロックサイズ}/{データ転送速度})

これはミリ秒あたりのIO、または私が読んでいる本が「ディスクサービス時間」と呼んでいるものです。また、回転待ち時間は、ミリ秒単位の1回転の半分として計算されます。

これはEMCの本「InformationStorageandManagement」から引用したものです-おそらくかなり信頼できる情報源ですよね?

この式を実行に移すには、これを考慮してください Seagateデータシート

4kbのブロックサイズのST3000DM001モデルのIOPSを計算します。

  • シーク平均(書き込み)= 9.5-書き込みのIOPSを測定します
  • スピンドル速度= 7200rpm
  • 平均データレート= 156MB /秒

したがって、私の変数は次のとおりです。

  • シーク時間= 9.5ms
  • 回転待ち時間=(。5 /(7200rpm/60))= 0.004s = 4ms
  • データレート= 156MB/s =(0.156MB/ms/0.004MB)= 39

9.5ms + 4ms + 39 = IO/ms 52.5

1 /(52.5 * 0.001)= 19 IOPS

このドライブの19IOPSは明らかに正しくないので、何が間違っているのでしょうか。

1
red888

あなたの基本的な公式は合理的ですがthis

データレート= 156MB/s =(0.156MB/ms/0.004MB)= 39

正しくはありません。ブロックを読み取るために必要な時間を決定する必要があります。

4 KB / 156 MB/s = 2.5 * 10^-5s ( ~ 0.025 ms)

これは無視できる値であるため、経験則の近似では省略でき、計算は1 / 0.0135のようになり、約74IOPSになります。

3
the-wabbit

なぜデータレートを含めるのですか?

1 /(0.004 + 0.0095)〜74IOPS。

3
Mark Wagner