Edited at

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


インストール

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


sample.jp に対して、同時ユーザー数は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


参考リンク