siege
負荷テスト

Siegeを使ってカジュアルWeb負荷テスト

More than 3 years have passed since last update.

インストール

sudo yum -y update
sudo yum install gcc make openssl-devel
wget http://download.joedog.org/siege/siege-latest.tar.gz
tar zxvf ./siege-latest.tar.gz
rm -f siege-latest.tar.gz
cd siege-3.1.2/
./configure && make
sudo make install
cp doc/siegerc ~/.siegerc

実行

urls.txtからランダムにURLを抽出して、10秒間300同時接続でアクセスをする

siege -c 300 -t 10S -b -i --log=/tmp/siege.log -f /usr/local/etc/urls.txt

example.com に対して、同時ユーザー数は30でリクエスト数5で10秒間の連続負荷を掛けたい

siege -c 30 -r 5 --time=10S --log=/tmp/siege.log http://sample.jp

fileから読み込み

urls.txt
https://sample.jp
https://sample.jp/search/tag
https://sample.jp/id/test

実行オプション

オプション 意味
-V, –version バージョン表示
-h, –help ヘルプ表示
-C, –config コンフィグファイルを指定
-v, –verbose アクセスの状態を標準出力に表示
-q, –quiet verboseをオフにしてテスト出力を抑制
-g, –get HTTP リクエストの GET メソッドを利用して、HTTP ヘッダを取得してトランザクションを表示する
-c, –concurrent=NUM 同時接続ユーザーを指定でデフォルトは10
-i, –internet INTERNET ユーザーモードで URL のリストからランダムにアクセスする
-b, –benchmark ベンチマークモードでリクエスト間隔を置かない(デフォルトは 1 秒間のリクエスト間隔を置く)
-t, –time=NUMm テストの時間を指定(S = 秒、M = 分、H = 時間)
-r, –reps=NUM テストにおける毎秒のリクエスト数
-f, –file=FILE URL のリストファイルを指定
-R, –rc=FILE siegerc ファイルを指定(デフォルトは ~/.siegerc)
-l, –log[=FILE] ログファイルのパスを指定する(指定が無い場合には PREFIX/var/siege.log)
-m, –mark=”text” ログファイル内にマーキング(区切り)文字を入れることが出来る
-d, –delay=NUM リクエスト間の間隔を指定(デフォルトは 1 秒)
-H, –header=”text” リクエストヘッダを付与することが出来る
-A, –user-agent=”text” User-Agent の指定
-T, –content-type=”text” Content-Type の指定も可能

実行結果の見方

項目 意味 出力例
Transactions リクエスト数 506 hits
Availability 成功率 100.00 %
Elapsed time 処理時間 9.51 secs
Data transferred 転送量 0.13 MB
Response time 平均のレスポンス時間 0.01 secs
Transaction rate 毎秒のリクエスト数 53.21 trans/sec
Throughput スループット 0.01 MB/sec
Concurrency 平均の同時接続数 0.48
Successful transactions 成功したリクエスト数 506
Failed transactions 失敗したリクエスト数 0
Longest transaction 1リクエスト当たりの最長秒数 0.02
Shortest transactio 1リクエスト当たりの最短秒数 0.00

参考リンク