Posted at

siegeでお手軽にストレステスト

More than 3 years have passed since last update.

siegeはabより高機能で、JMeterほど面倒くさくないWEBのパフォーマンス測定ツールです。

siegeとは、包囲攻撃という意味の単語で、「シィージ」と発音するみたいです。

アクセス先を複数のURLからランダムで抽出する

インターネットモードがなかなか便利です。

以下CentOSやAmazonLinuxへsiegeの最新版をインストールする手順です。


インストール

yum install gcc

wget http://download.joedog.org/siege/siege-latest.tar.gz
tar xvf siege-latest.tar.gz
cd siege-3.1.0/
./configure
make
make install

siege -V
----------------
SIEGE 3.1.0

Copyright (C) 2015 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.
----------------


負荷をかけるURLを設定

vi /usr/local/etc/urls.txt

----------
http://hoge.huge/index.html
http://hoge.huge/1.html
http://hoge.huge/2.html
http://hoge.huge/3.html
----------

http://hoge.huge/script POST key1=value1&key2=value2
などと書くとPOSTも可能です。


実行

siege -c 300 -t 10S -b -i -f /usr/local/etc/urls.txt

=>urls.txtからランダムにURLを抽出して、10秒間300同時接続でアクセスをする


実行結果

Transactions: 1442 hits

Availability: 100.00 %
Elapsed time: 1.08 secs
Data transferred: 0.01 MB
Response time: 0.08 secs
Transaction rate: 1335.19 trans/sec
Throughput: 0.01 MB/sec
Concurrency: 103.77
Successful transactions: 1442
Failed transactions: 0
Longest transaction: 0.52
Shortest transaction: 0.00

各項目は以下のような意味です。

Transactions: 合計リクエスト数

Availability: リクエストの成功数

Elapsed time: 負荷をかけた合計時間

Data transferred: データの合計転送量

Response time: 1リクエストあたりの平均処理時間

Transaction rate: 1秒あたりの平均リクエスト数

Throughput: 1秒あたりの平均スループット

Concurrency: 平均同時接続数

Successful transactions: 成功したリクエスト数

Failed transactions: 失敗したリクエスト数

Longest transaction: 1リクエストの最大秒数

Shortest transaction:1リクエストの 最小秒数


ドキュメント

細かいパラメータなどはこちらへ

https://www.joedog.org/siege-manual/