Linuxパフォーマンスの最適化(1)-ストレスストレステストツール

1.ストレスの紹介

1.ストレスの紹介

ストレスはLinux用のストレステストツールであり、CPU、メモリ、IO、およびディスクでストレステストを実行できます。

2.ストレスインストール

インストール:
sudo yum install stress

2、ストレスの使用

1.ストレスコマンド

stress [OPTION [ARG]]
-c、-cpu N:N個のプロセスを生成し、各プロセスはsqrt関数を周期的に呼び出してCPU圧力を生成します。
-i、-io N:N個のプロセスを生成します。各プロセスはsyncを周期的に呼び出して、メモリバッファーの内容をディスクに書き込み、IOプレッシャーを生成します。システム呼び出しsyncは、メモリバッファ内のデータをディスクに更新して、同期を確保します。バッファ内のデータが少ない場合、ディスクに書き込まれるデータが少なくなり、IOプレッシャーは生成されません。これは、SSDディスク環境で特に顕著です。iowaitが常に0である可能性がありますが、システム呼び出し同期への呼び出しが多いため、システムCPU使用率sysが増加します。
-m、-vm N:N個のプロセスを生成し、各プロセスはmalloc / free関数を呼び出して、ループ内のメモリを割り当てて解放します。
    --vm-bytes B:割り当てられたメモリのサイズを指定します
    --vm-stride B:COW(Copy On Write)が発生するように、メモリの一部に常に値を割り当てます
    --vm-hang N:メモリを消費する各プロセスが割り当てられていることを示しますメモリに到達した後、N秒間スリープ状態になり、メモリを解放して、このプロセスを繰り返します
    --vm-keep:常にメモリを占有します。これは、継続的な解放と再割り当てとは異なります(デフォルトでは、メモリを継続的に解放して再割り当てします)
-d、 --hdd N:書き込みおよびリンク解除機能(ファイルの作成、コンテンツの書き込み、ファイルの削除)を継続的に実行するN個のプロセスを生成します
    --hdd-bytes B:ファイルサイズを指定します
--hdd-noclean:ランダムなASCIIデータを書き込みませんリンク解除
-t、
-timeout N:N秒後にプログラムを終了します        --backoff N:Nマイクロ秒が実行を開始するのを待ちます
-q、-quiet:プログラムは実行中のプロセス中に情報を出力しません
-n、-ドライラン:関連する操作を実際に実行せずにプログラムが実行することを出力します
--version:バージョン番号を表示します
-v、-verbose:詳細情報を表示します

2.CPUテスト

stress --cpu 2 --timeout 60
2つのCPUプロセスを開始してsqrt計算を実行します。これは、60秒後に終了します。
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール

3.IOテスト

stress --io 2 --timeout 60s
2つのIOプロセスを開始し、同期システム呼び出しを実行し、メモリバッファーをディスクにフラッシュし、
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
ストレス使用する、iowaitの上昇をシミュレートできませんが、sysの上昇をシミュレートできます。ストレス-iパラメーターは、システムがsyncを呼び出してIOの問題をシミュレートするが、syncがメモリーバッファーデータをディスクに更新して同期を確保することを示します。メモリバッファに多くのデータがない場合、ディスクに対して読み書きされるデータは多くなく、IOプレッシャーを生成できません。これは、SSDディスクが使用されている環境で特に明白です。iowaitは常に0ですが、システム呼び出しの数が多いため、システムのCPU使用率sysが増加します。
stress --io 2 --hdd 2 --timeout 60s
2つのIOプロセス、2つのディスクIOプロセスを開きます
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール

4.メモリテスト

stress --vm 2 --vm-bytes 1G --vm-hang 100 --timeout 100s
2つのプロセスを開始してメモリを割り当て、毎回1​​GBのメモリを割り当て、100秒後に解放し、100秒後に終了します。
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール

5.ディスクIOテスト

stress --hdd 2 --hdd-bytes 10G --backoff 2000000
2つのディスクIOプロセスを開始し、毎回10GBのデータをディスクに書き込みます
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール

3、ストレステストシナリオ

1.CPUを集中的に使用するプロセス

stress --cpu 2 --timeout 600
CPUを集中的に使用する2つのプロセスの開始をシミュレートして
uptime
、システムの平均負荷を次のように
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
mpstat -P ALL 5 1
表示します。CPU使用率を次のように
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
pidstat -u 5
表示します。プロセス負荷を次のように表示します。
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
(1)稼働時間を通じてシステムのより高い平均負荷を観察できます。
(2)mpstatにより、CPU0およびCPU2のユーザーモードCPU使用率が非常に高く、iowaitが0であることが確認されました。これは、プロセスがCPUに負荷をかけていることを示しています。プロセスによるCPUの集中的な使用は、より高い平均システム負荷とより高いCPU使用率につながります。
(3)pidstatを使用して、ストレスプロセスによってCPU使用率が高くなることを確認できます。

2.IOを多用するプロセス

stress -i 1 --hdd 1 --timeout 600
syncを呼び出してメモリバッファをフラッシュし、ディスクに書き込むワーカーをシミュレートします。
uptime
システムの平均負荷を次のように
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
mpstat -P ALL 5
確認します。CPU使用率を次のように確認します。
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
(1)稼働時間を通じて、システムの平均負荷が非常に高いことがわかります。
(2)mpstatにより、カーネルモードのCPU使用率は非常に低いが、iowaitは非常に高く、IO処理を待機していることが確認されました。これは、プロセスがIOを集中的に使用していることを示しています。プロセスは頻繁にIO操作を実行するため、平均システム負荷が高くなり、CPU使用率が低くなります。

3.CPUプロセスを待ちます

このマシンには4つの論理CPUがあり、8つのプロセスをシミュレートします。次のように、
stress -c 8 --timeout 600
CPUを集中的に使用する8つのプロセスをシミュレートして
uptime
、システムの平均負荷を表示します
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
。mpstat-P ALL 5
次のよう
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
pidstat -u 5
にCPU使用率を表示します。次のようにプロセスのCPU使用率を表示します。
Linuxパフォーマンスの最適化(1)-ストレスストレステストツール
(1)稼働時間を通じてシステムの平均負荷が高いことを確認します
(2) )mpstatによって、ユーザーモードのCPU使用率が非常に高く、iowaitが0であることが確認されました。これは、プロセスがCPUを集中的に使用するか、プロセス間にCPUの競合があることを示します。
(3)pidstatで観察された高い待機インデックスは、プロセス間でCPUの競合があり、システム内にCPUの使用を待機しているプロセスが多数あることを示しています。

4.ストレス-ngの紹介

1.ストレス-ngの紹介

Stress-ngはストレスと完全に互換性があり、さまざまな複雑なストレスの生成をサポートするために、ストレスに基づいて何百ものオプションのパラメーターが追加されます。

2.ストレス-ngインストール

ストレス-ngソースダウンロード:
https://kernel.ubuntu.com/~cking/tarballs/stress-ng/
コンパイル:
make
インストール:
sudo make install

3.stress-ngコマンド

stress-ng [OPTION [ARG]]
stress-ng --cpu 2 --cpu-method pi
piアルゴリズムを実行するために2つのワーカーを生成します。圧力を
stress-ng --cpu 2 --cpu-method all
生成します。2つのワーカーを生成します。pi、crc16、fftなど
stress-ng --sock 2
含む30を超える異なる圧力アルゴリズムを繰り返し使用します。2つのワーカーを生成してソケット関連関数を呼び出して圧力を
stress-ng --tsc 2
生成します。2つのワーカーがtscを読み取って圧力
stress-ng --sock 4 --taskset 0-1,3
strssを生成します。指定されたCPUに圧力を割り当てます

おすすめ

転載: blog.51cto.com/9291927/2593578
おすすめ