ksaitoの日記

日々試したことの覚え書き

負荷試験

CPU、メモリ、ディスクに負荷がかかった状況を再現するためにstressコマンドが便利です。

インストール

aptパッケージでstressをインストールします。

$ sudo apt-get install stress

使い方

使い方は、stressコマンドのオプションを指定して実行するだけです。
必ず"--timeout"オプションで実行する時間を指定します。
高負荷をかけるとコンソールから操作できなくなる可能性があるので、最初は10秒くらいを指定して様子を見るようにします。
あとは、CPUに負荷をかけたいのであれば"--cpu [forkするプロセス数]"、メモリを消費したいのであれば"--vm [forkするプロセス数]"、ディスクIOに負荷をかけたいのであれば"--io [forkするプロセス数]といったようにオプションを指定します。
詳しいオプションと、どのシステムコールを使うのかは、stressコマンドのマニュアルに記載されています。

CPUに2つのプロセスで負荷をかける場合の例です。

$ stress --cpu 2 --timeout 10s
stress: info: [855] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
stress: info: [855] successful run completed in 10s
$ 

実行時にpsコマンドで確認してみると2つのstressプロセスでCPUに負荷がかかっている様子がわかります。

$ ps aux | grep stress
u1    5510  0.0  0.0   6620   580 pts/1    S+   08:03   0:00 stress --cpu 2 --timeout 10s
u1    5511 44.0  0.0   6620   100 pts/1    R+   08:03   0:02 stress --cpu 2 --timeout 10s
u1    5512 43.8  0.0   6620   100 pts/1    R+   08:03   0:02 stress --cpu 2 --timeout 10s
u1    5526  0.0  0.0  10216   904 pts/2    S+   08:03   0:00 grep --color=auto stress

高負荷でシステムがどういった挙動を示すかを事前にテスト環境で確認しておくのに便利です。