物理ディスクがサポートできる最大 I/O を見つけるにはどうすればよいでしょうか?
私のアプリケーションはI/Oを実行しており、実際のLinux コマンドを使用してスループット (Blk_wrtn/s) を測定します。ただし、到達可能な最大限度はどうすればわかりますか? さらに負荷をかけることができるかどうかを知りたいです。
答え1
明らかに、Unix ツールを使用するのが最も簡単な方法です。テスト ケースを作成し、適切なツールを使用してパフォーマンスを測定することで、最大操作を測定できます。優れたリソースは、次の場所にあります。LINUX - ストレージの読み取りおよび書き込み速度をテストする
sudo hdparm -tT /dev/sdX
たとえば読み取りテストなど。
測定するには次のように記述します:
dd if=/dev/random of=<some file on the hd> bs=8k count=10000; sync;
# Hit CONTROL-C after 5 seconds to get results
# 65994752 bytes (66 MB) copied, 21.8919 s, 3.0 MB/s
flag
注記
コメントで指摘されているように、このdd
コマンドはファイル システムのパフォーマンスも測定します/dev/random
。ただし、環境の書き込みパフォーマンスは測定しますが、これはハード ディスクのパフォーマンスに大きく依存します。
答え2
Blk_wrtn/s はワークロードの種類によって異なります。リニア書き込みははるかに高速ですが、ランダム書き込みは非常に遅くなる可能性があります。したがって、1 つの数値を言うことはできませんが、iozone、dbench など、さまざまなワークロードをシミュレートしてベンチマークするツールは多数あります。
現在、現在のワークロードを監視するには、通常 iostat を使用します。例:
iostat -x 10
最後の列は %util です。これが 100 未満であれば、そこに IO 負荷をかけることができます。もちろん、常にいくらかの余裕を持たせたいので、ワークロードの安定性と必要な応答性に基づくと、60 ~ 90% が現実的な目標となります。
答え3
次のようなベンチマークツールを使うことができます。ボニー++
マニュアルページより
Bonnie++ は、ハード ドライブとファイル システムのパフォーマンスまたはその欠如をテストするプログラムです。ファイル システム操作にはさまざまな種類があり、アプリケーションによって使用される度合いは異なります。Bonnie++ はそれらのいくつかをテストし、各テストで 1 秒あたりの作業量とこれにかかった CPU 時間の割合の結果を表示します。パフォーマンスの結果は数値が高いほど良く、CPU 使用率は低いほど良いです (注: パフォーマンス結果が 2000 で CPU 結果が 90% の構成は、パフォーマンスが 1000 で CPU 使用率が 60% の構成よりも CPU 使用率の点で優れています)。