Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

インストール

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

参考リンク

takachan
Software/Infrastructure Engineer
http://takachan.hatenablog.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away