負荷テストツールSiegeのインストールと使い方・オプション・結果の見方
SiegeはWEBサーバに負荷をかけるツールです。同様のツールとしてApache Bench, httperf, Tsung, JMeterなどありますが、私は主にJMeterとSiegeを利用しています。
siegeのインストールと使い方・オプション・結果の見方をまとめました。
それぞれ、重い負荷やシナリオ込みの負荷をかける場合はJMeter、そこそこの負荷やWEB APIへの負荷はSiegeと使い分けています。
インストール
依存ライブラリをインストール $ sudo yum -y install gcc make openssl-devel ダウンロード $ curl -LO http://www.joedog.org/pub/siege/siege-2.74.tar.gz インストール $ tar zxvf siege-2.78.tar.gz $ cd siege-2.78 $ ./configure $ make && sudo make install && echo DONE 設定ファイルをコピー $ cp doc/siegerc ~/.siegerc
設定ファイル
デフォルトで実行ユーザの~/.siegercを参照します。
使い方
siegeコマンドで実行します。
$ siege -c 10 -r 10 http://example.com/done. Transactions: 100 hits Availability: 100.00 % Elapsed time: 4.17 secs Data transferred: 1.86 MB Response time: 0.13 secs Transaction rate: 71.94 trans/sec Throughput: 0.45 MB/sec Concurrency: 9.56 Successful transactions: 100 Failed transactions: 0 Longest transaction: 0.40 Shortest transaction: 0.09
POSTリクエストは以下参照。
実行結果の見方
項目 | 説明 |
---|---|
Transactions | 有効リクエスト数 |
Availability | Successful transactions / (Successful transactions + Failed transactions) |
Elapsed time | 全てのリクエスト送信までに経過した秒数 |
Data transferred | データ転送量 |
Response time | 1リクエスト辺りの平均レスポンスタイム |
Transaction rate | 秒間リクエスト数 |
Throughput | 秒間処理データ量 |
Concurrency | 平均同時接続数 |
Successful transactions | 成功リクエスト数 |
Failed transactions | 失敗リクエスト数 |
Longest transaction | 1リクエスト辺りにかかった最大秒数 |
Shortest transaction | 1リクエスト辺りにかかった最小秒数 |
オプション
ショートオプション | ロングオプション | 説明 |
---|---|---|
-V | --version | バージョン情報を表示。 |
-h | --help | ヘルプを表示。 |
-C | --config | 現在の設定値を表示。 |
-v | --verbose | リクエストの詳細情報を表示。 |
-q | --quiet | リクエストの詳細情報を表示しない。 |
-g | --get | GETをHEADで送信して詳細情報を表示。 |
-c | --concurrent=NUM | 同時接続数。 |
-i | --internet | インターネットモード。 --fileを指定した場合に ファイル中のURLからランダムでリクエストを送信する。 |
-b | --benchmark | ベンチマークモード。 ディレイを無効にする。 |
-t | --time=NUMm | リクエストを送信する総時間。 suffixとしてS(秒), M(分), H(時)が指定可能。 ex) --time 60S |
-r | --reps=NUM | 1接続のリクエスト回数。 |
-f | --file=FILE | リクエストファイルを指定。 |
-R | --rc=FILE | 設定ファイルを指定。 |
-l | --log[=FILE] | ログファイルを指定。 |
-m | --mark="text" | ログファイルにマーキングを付与。 |
-d | --delay=NUM | リクエスト間の遅延秒数。 |
-H | --header="text" | HTTPヘッダ。 複数指定可能。 ex) --header A --header B |
-A | --user-agent="text" | User-Agent。 |
-T | --content-type="text" | Content-Type。 |