どうも、日系三世のフカ・テスト・カッパ・ジュニア (@inokara) です。父がスロベキア人、母が日本人です。

はじめに

前回、Siege というツールを使って負荷テストをやろうってお話をさせて頂きましたが、この負荷テストを 24 時間ぶっ続けで、しかも 1 時間毎に集計結果を…ってことをしたい場合(そんなことが頻繁にあるかは知りませんが)に思いついたことを書きます。

ポイントは…

  • 24 時間連続
  • 1 時間に一回の集計結果出力

Siege は自分が知っている限りは連続でテストしたい場合には –time オプションでなんとかなりますが、結果はあくまでも実行結果毎に出力されてしまいます…これがイケてないところで、これをどう解決したかというと…

  • Supervisor

そう、Supervisor 先生にお出まし頂きます。

やり方

要約すると…

  • Siege で --time オプションで 1H(1 時間)を指定して実行
  • Supervisor でこのプロセスを監視して終了したらまた立ち上げ直す

こんだけ。

Supervisor 用の設定

前回、デーモン閣下した際に用意した環境をそのまま利用するので、 /etc/supervisord/conf/siege.conf を以下のように作成するだけ。

[program:siege]
command = /usr/local/bin/siege -c 10 -r 1 --time=1H --log=/tmp/siege_log --benchmark http://inokara.example.com/
process_name = siege
autostart   = true
autorestart = true

これを設定して supervisorctl reload しましょう。

これで一時間に一回結果を出力しつつ、24 時間ぶっ続けで負荷試験出来そうです。

ただし…

一時間に一度プロセスが停止して、アクセスが途絶えてしまうので厳密な連続試験では無いので注意しませう。

元記事はこちらです。
Siege でお手軽 Web 負荷テスト(2)〜連続負荷試験をやりたいんですけど〜