siege コマンド

Web負荷テストのコマンド。

HTTPサーバに負荷をかけてパフォーマンスを調べられる。同じように負荷テストをするツールとしてabコマンドなどがある。

Apacheさえ入っていれば大抵abコマンドも入っているので、 abコマンドのほうを覚えたほうがいいかも。

“siege” は敵を包囲して攻撃するという意味の英語。

インストール

Ubuntu ではsiegeというパッケージに入っている。(Ubuntu 13.10, 14.04, 15.10 で確認)

$ sudo apt-get install siege

残念な話

その1

残念ながら、IPアドレスのURLには対応していないみたい。 http://192.168.56.10/foo のようなURLにアクセスさせようとしてもなぜかlocalhostにアクセスしてしまう。さらになぜか http://192.168.56.10/ のようなトップページにだけはちゃんとアクセスできる。さらにさらになぜか /etc/hosts も無視されるようなので、 /etc/hosts に記載しても意味がない。なので、ローカルホストでApacheのリバースプロキシを動かすとかする。

(Ubuntu 13.10 で apt-get でインストールした siege 2.7.0 で確認)

その2

GETパラメータがとても長いとsiegeが buffer overflow のエラーを吐いてしまう。

(Ubuntu 13.10 で apt-get でインストールした siege 2.7.0 で確認)

オプション

-b
ベンチマークを取るためにインターバルをおかずに連続してリクエストを投げることを指示する。
-r <回数>
指定の回数だけリクエストを繰り返すことを指示する。 -c も指定すれば、実際に送信されるリクエストは -c の数との乗算になる。 -r を指定しないと、Ctrl-C を押すまでリクエストが繰り返される。 -rの値と-cの値の積がabコマンドでの -n オプションに相当する、たぶん。
-c <数>
並行処理の数を指定する。 -c を省略すると手元の環境では15がデフォルトだった。 たぶんabコマンドでの -c オプションに相当。
-i
URLを指定されたファイルの中からリクエストごとにランダムに選ぶことを指示する。
-f ファイル名
URLのリストが書かれたファイルを指定する。
-R ファイル名, --rc ファイル名
設定ファイルを指定する。
-v
詳細表示
--log=<ファイル名>
ログの書き出し

ファイルに書かれたURLはURLエンコード済みであって勝手にさらにエンコードさせないようにするには

設定ファイル siegerc に以下の内容を書き、

url-escaping = false

以下のように -R または --rc で設定ファイルを指定する。

$ siege --rc=./siegerc
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。
スポンサーリンク