ホーム DoRuby サーバ単体に負荷テストを行う「stress」

サーバ単体に負荷テストを行う「stress」

この記事はアピリッツの技術ブログ「DoRuby」から移行した記事です。情報が古い可能性がありますのでご注意ください。

Web開発では負荷テストというとjmeter や ab を思い浮かべますが、今回はマシン単体に直接負荷をかけるツール「stress」を使用します。

 このツールの便利なところ3点

  1. インストール手順が簡単。
  2. ネットワークには余計な負荷をかけない。
  3. 使い方が簡単でリソースの使用量を直接指定できる。

 入手からインストールまでの流れは次のとおりです。

入手方法:下記ページにてダウンロードしました。

http://weather.ou.edu/~apw/projects/stress/

 今回調査したかったマシンのOSは CentOS6 でしたのでリンク先の下記 rpmファイルをインストールすることにしました。

http://apt.sw.be/redhat/el6/en/i386/rpmforge/RPMS/stress-1.0.2-1.el6.rf.i686.rpm

インストール:

# rpm -ivh stress-1.0.2-1.el6.rf.i686.rpm 
警告: stress-1.0.2-1.el6.rf.i686.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
準備中...                ########################################### [100%]
   1:stress                 ########################################### [100%]

 ちなみに Debian系といった apt が使用できるOSでは apt-get install stress でインストールできるそうです。

使い方について:

 引数を渡さずに実行すると使用方法が表示されます。

# stress 
`stress' imposes certain types of compute stress on your system

Usage: stress [OPTION [ARG]] ...
 -?, --help         show this help statement
     --version      show version statement
 -v, --verbose      be verbose ← 詳細なメッセージを出力
 -q, --quiet        be quiet
 -n, --dry-run      show what would have been done
 -t, --timeout N    timeout after N seconds ← 負荷をかける時間を指定
     --backoff N    wait factor of N microseconds before work starts
 -c, --cpu N        spawn N workers spinning on sqrt() ← CPU負荷をかけるワーカーの数を指定
 -i, --io N         spawn N workers spinning on sync() ← IO負荷のワーカー数


 -m, --vm N         spawn N workers spinning on malloc()/free() ← メモリ負荷のワーカー数


     --vm-bytes B   malloc B bytes per vm worker (default is 256MB)← 使用するメモリ量を指定


     --vm-stride B  touch a byte every B bytes (default is 4096)
     --vm-hang N    sleep N secs before free (default is none, 0 is inf)
     --vm-keep      redirty memory instead of freeing and reallocating
 -d, --hdd N        spawn N workers spinning on write()/unlink()
     --hdd-bytes B  write B bytes per hdd worker (default is 1GB)
     --hdd-noclean  do not unlink files created by hdd workers

Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size)

好みの引数を渡して実行してください。別のプロンプトで接続し top や vmstat などを表示していると負荷状態の変化が見れて面白いです。

例:メモリ負荷をどんどん上げていく。

stress –cpu 2 –io 2 –vm 2 –vm-bytes 512M –timeout 60s

stress –cpu 2 –io 2 –vm 2 –vm-bytes 1024M –timeout 600s

stress –cpu 2 –io 2 –vm 2 –vm-bytes 2048M –timeout 1200s

stress –cpu 2 –io 2 –vm 2 –vm-bytes 4096M –timeout 1200s

stress –cpu 2 –io 2 –vm 2 –vm-bytes 3072M –timeout 1200s

 負荷の上げ過ぎで stress が起動しなくなったのでさげた。

タイムアウト設定した時間より前に停止させるには Ctrl + C を押します。

必要なライブラリ:

# ldd /usr/bin/stress 
        linux-gate.so.1 =>  (0x00d0c000)
        libm.so.6 => /lib/libm.so.6 (0x0048c000)
        libc.so.6 => /lib/libc.so.6 (0x00e3a000)
        /lib/ld-linux.so.2 (0x008d9000)

 インストールがうまくいかない場合などご参照ください。

記事を共有

最近人気な記事