Webの負荷テストツール『siege』コマンド

Webの負荷テストに使えるツールとして有名な『siege』コマンドだが、あまりちゃんと使ったことがなかったので少し触ってみることした。

1.インストール

『siege』コマンドは、以下のコマンドでインストールできる。

CentOSなどRHEL系

yum --enablerepo=epel install siege

Debian/Ubuntu系

sudo apt-get install siege

Mac OS X

brew install siege

2.負荷テストの実施

さて、それでは実際に負荷テストを行ってみよう。
使い方は簡単。『siege』コマンドでの負荷テストは、以下のように行う。

siege http://アドレス

以下のようなオプションを組み合わせて実行させることもできる。

  • -v … リクエストの詳細を出力する。
  • -q … リクエストの詳細を出力しない。
  • -c NUM … 並行で処理する数。デフォルトでは10。
  • -r NUM … コマンド実行時に実施されるリクエスト数。デフォルトでは制限なし(Ctrl + Cで停止するまでずっとリクエストを投げ続ける)。
  • -l PATH … ログの出力先を指定。
  • -d NUM … リクエストのインターバル(遅延秒数)。
  • -f PATH … URLの記述されたファイルを指定してリクエストを投げる。
[root@BS-PUB-CENT7-01 ~]# siege --help
SIEGE 4.0.2
Usage: siege [options]
       siege [options] URL
       siege -g URL
Options:
  -V, --version             VERSION, prints the version number.
  -h, --help                HELP, prints this section.
  -C, --config              CONFIGURATION, show the current config.
  -v, --verbose             VERBOSE, prints notification to screen.
  -q, --quiet               QUIET turns verbose off and suppresses output.
  -g, --get                 GET, pull down HTTP headers and display the
                            transaction. Great for application debugging.
  -c, --concurrent=NUM      CONCURRENT users, default is 10
  -r, --reps=NUM            REPS, number of times to run the test.
  -t, --time=NUMm           TIMED testing where "m" is modifier S, M, or H
                            ex: --time=1H, one hour test.
  -d, --delay=NUM           Time DELAY, random delay before each requst
  -b, --benchmark           BENCHMARK: no delays between requests.
  -i, --internet            INTERNET user simulation, hits URLs randomly.
  -f, --file=FILE           FILE, select a specific URLS FILE.
  -R, --rc=FILE             RC, specify an siegerc file
  -l, --log[=FILE]          LOG to FILE. If FILE is not specified, the
                            default is used: PREFIX/var/siege.log
  -m, --mark="text"         MARK, mark the log file with a string.
                            between .001 and NUM. (NOT COUNTED IN STATS)
  -H, --header="text"       Add a header to request (can be many)
  -A, --user-agent="text"   Sets User-Agent in request
  -T, --content-type="text" Sets Content-Type in request

Copyright (C) 2016 by Jeffrey Fulmer, et al.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE.