3つの異なるI / Oスケジューラ、「noop」、「cfq」、および「deadline」を比較し、ランダムな読み書きについて比較しましょう。これまで私が見つけた唯一の意味のあるケースは次のとおりです。
- 読み取り:キャッシュと同期の使用
- 読み取り:キャッシュなしと同期あり
- 読み取り:キャッシュなしと同期なし
- 読み取り:キャッシュと非同期。
(上記のすべての内容は順番にまたは非順番に)
そして
- 書き込み:キャッシュの使用
- 書き込み:キャッシュなし
(ここでも順次的なものと非順次的なものが関係していると思います)
シングルスレッドおよびマルチスレッド書き込みテストを実行する予定です。
質問1:
テストする他の意味のあるケースを見逃しましたか?
質問2:
書くときにランダムなデータを繰り返し書き込むことと、特定の文字だけを書くこととの間に意味のある違いがあると予想するべきですか?
Q3:
調査する価値がある興味深いチャンクサイズは何ですか?いくつのブロックを書いたり読んだりする必要がありますか?ベンチマーク中に読み書きするブロック数をさまざまに変更する必要がありますか、それとも各ケースに一貫したサイズを使用する方が良いですか?つまり、ベンチマークの使用
- ブロックサイズ = 512
- ブロックサイズ= 1024 ...
それとも、最初の読み取りが特定の数字のものであり、次の読み取りが別の数字のブロックのものである場合に何が起こるのかを見るのがより興味深いでしょうか? 2に分割されないブロックサイズを試す必要がありますか?
もちろん、Q1に加えて、これらの多くの質問に対する答えは、単により多くのテストを実行することによって確認することができます。ただ、不要なベンチマークは指摘し、関連データにもっと質的に集中できることを望むだけです。実行できるテストの組み合わせが多すぎます。