ずっとabを使ってベンチマークをとってましたが、マルチURLに対して実行したいことがあったので使ってみました。
インストール
http://download.joedog.org/siege/ で過去のバージョンも見れます。
cd /usr/local/src wget http://download.joedog.org/siege/siege-latest.tar.gz tar zxf siege-latest.tar.gz cd siege-3.0.9/ ./configure make make install
/usr/local/bin
にsiege
がインストールされます。
/usr/local/etc
にsiegerc
とurls.txt
が配置されています。
siegercは、siege実行時の設定ファイルのひな形でホーム配下にコピーして使います。
urls.txtは、列挙するURLのサンプルが書いてあります。
コピーしなくてもよいですが、サンプル見ながら記述したいので、実行する場所にコピーします。
cp /usr/local/etc/siegerc ~/.siegerc cp /usr/local/etc/urls.txt ~/
~/urls.txt
にリクエストを送りたいURLを記述します。
-t と -r は一緒には使えない
-t と -r を一緒に指定すると下記のようなエラーがでました。
-t は実行時間ベースのテストで、-r は繰り返し回数ベースのテストになるためのようです。
-t は指定した時間だけテストを行い、-rは指定した回数だけリクエストを送るもののようです。
[error] CONFIG conflict: selected time and repetition based testing defaulting to time-based testing: 5 seconds ** SIEGE 3.0.9 ** Preparing 3 concurrent users for battle. The server is now under siege...
ヘルプを抜粋すると下記のような感じです。
-r NUM, --reps=NUM, --reps=once REPS, allows you to run the siege for NUM repetitions. If --reps=once, then siege will run through the urls.txt file and hit each URL in the file exactly once. The list will be divided among each simulated user. So if you run --reps=once -c10 on a file which contains 30 URLs, then each user will run three times. NOTE: -t/--time takes precedent over -r/--reps. If you want to use this option, make sure time = x is commented out in your $HOME/.siegerc file. -t NUMm, --time=NUMm TIME, allows you to run the test for a selected period of time. The format is "NUMm", where NUM is a time unit and the "m" modifier is either S, M, or H for seconds, minutes and hours. To run siege for an hour, you could select any one of the following combinations: -t3600S, -t60M, -t1H. The modifier is not case sensitive, but it does require no space between the number and itself.
urls.txtでは変数が使える
1行目で変数の設定をし、2,3行目で使用しています。 変数は複数定義できますが、1行に1つの変数しか定義できないようです。
HOST = homer.whoohoo.com http://${HOST}/index.html http://${HOST}/howto.jsp
参考
http://www.joedog.org/siege-home/ http://nori3tsu.hatenablog.com/entry/2013/11/02/125000 http://blog.cloudpack.jp/2014/08/25/easy-web-load-test-with-using-siege/ http://wp.heptagon.co.jp/blog/archives/234