さまざまなレベルのディスクI/Oがアプリケーションに与える影響について調べる必要があります。そのために、アプリケーションをベンチマークモードで実行しているときに、さまざまな量のディスク負荷を生成する方法を探しています。
現在、パフォーマンスの低下についてユーザーから苦情が寄せられていますが、取得する情報が非常に少ないため、問題がどこにあるのかを正確に特定することはまだできません。 I/Oが主な容疑者ですが、確実に知りたいと思います。
手始めに、構成可能な連続読み取りまたは書き込みロードを作成するための何かで問題ありません。 g。 /dev/zero
からtmpファイルなどへ。 dd
を使用できることはわかっていますが、これによりディスクがすぐに限界に達しますが、バックグラウンドトラフィックの量を増やしながら、ある種のスロットルでさまざまなテストを実行したいと思います。
物事をもう少し難しくするには、これをRedHat9ボックスで実行する必要があります。つまり、カーネル2.4です。したがって、理想的には、これはとにかく存在するデフォルトのツールを利用するある種のスクリプトになります。
大きなファイル(1GBなど)を作成してから、rsync
を使用してファイルをコピーできます。 rsync
には、帯域幅を制限するオプションが組み込まれています。したがって、ファイルを10KiB /秒、50KiB /秒、2MiB /秒などでコピーできます。
私が覚えている限り、ボニーはある程度の負荷をかけることができます: http://www.coker.com.au/bonnie++/ 期待どおりに機能しない場合は、小さなbashスクリプトを作成してくださいそれは、dd、rm、ls(または前述のrsync)などのさまざまなユーティリティを使用します。
スクリプト可能なツールを使用して、適切なパターンでディスクにストレスをかけることができます。例えば :
どちらも、読み取りと書き込みのバランスをとる方法、IOサイズなど)を正確に選択できます。
rugg は、あなたのためにトリックを行うかもしれないディスクテストユーティリティです。テストの実行に使用するスレッドの数を制御して、ディスクとシステムの負荷を制御できます。また、テストを並行して実行するか順次実行するかを制御して、別のレベルの制御を追加することもできます。
ベンチマークモードがある場合、その複数のインスタンスを起動できますか?その場合は、本番環境の負荷に近づくまでコピーを実行し続けることができます。