siege コマンド 2016/10/25
Web負荷テストのコマンド。
HTTPサーバに負荷をかけてパフォーマンスを調べられる。同じように負荷テストをするツールとしてab
コマンドなどがある。
Apacheさえ入っていれば大抵ab
コマンドも入っているので、
ab
コマンドのほうを覚えたほうがいいかも。
“siege” は敵を包囲して攻撃するという意味の英語。
インストール 2016/10/24
Ubuntu ではsiegeというパッケージに入っている。(Ubuntu 13.10, 14.04, 15.10 で確認)
$ sudo apt-get install siege
残念な話
その1 2013/11/07
残念ながら、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 2013/11/07
GETパラメータがとても長いとsiegeが buffer overflow のエラーを吐いてしまう。
(Ubuntu 13.10 で apt-get でインストールした siege 2.7.0 で確認)
オプション 2016/10/25
-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エンコード済みであって勝手にさらにエンコードさせないようにするには 2016/10/25
設定ファイル siegerc
に以下の内容を書き、
url-escaping = false
以下のように -R
または --rc
で設定ファイルを指定する。
$ siege --rc=./siegerc