単純に1つのURLに対して負荷をかける場合は、Apache Benchことabを使えば楽ですが、たまには複数のURLに連続で負荷をかけたい場合も。
URLを変えてabを繰り返して実行しても良いですが、なんか芸がない。
じゃ、Jmeter使えば良いのですが、そこまで作り込まなくてさくっとできるツールを探したところ、siegeというものがマッチしました。
http://www.joedog.org/siege-home/
ざっくり手順を確認。
# wget http://www.joedog.org/pub/siege/siege-latest.tar.gz
# tar zxvf siege-latest.tar.gz
# cd siege-XXXX
# ./configure –prefix=/opt/siege
# make
# make install
インストールはこれで完了です。
cd /opt/siege
# vi URL
URLを一行ずつ並べたファイルを作成
# ls
URL bin etc man
# ./bin/siege
****************************************************
siege: could not open /opt//etc/siegerc
run ‘siege.config’ to generate a new .siegerc file
****************************************************
# ./bin/siege.config
New configuration template added to /root/.siegerc
Run siege -C to view the current settings in that file
あとはURLを羅列したファイルを作って読み込ませるだけです。
# cd /opt/siege
# ./bin/siege -f ./URL -c 1 -i -t 5S -b -l test.log
-f URLリストファイルを指定
-c 接続数
-i インターネットモード?(ランダムでURLにアクセス)
-t テスト時間(例は5秒)
-b インターバル無しのベンチマークモード
–log ログファイル指定(-l ではなぜか動かなかったので–logに)
** SIEGE 3.0.6
** Preparing 1 concurrent users for battle.
The server is now under siege…
HTTP/1.1 200 0.41 secs: 46590 bytes ==> GET /blog/?p=1395
HTTP/1.1 200 0.61 secs: 44482 bytes ==> GET /blog/?p=1446
HTTP/1.1 200 0.42 secs: 44482 bytes ==> GET /blog/?p=1446
HTTP/1.1 200 0.48 secs: 48799 bytes ==> GET /blog/?p=1424
HTTP/1.1 200 0.70 secs: 44482 bytes ==> GET /blog/?p=1446
HTTP/1.1 200 0.49 secs: 46590 bytes ==> GET /blog/?p=1395
HTTP/1.1 200 0.39 secs: 43132 bytes ==> GET /blog/?p=1417
HTTP/1.1 200 0.44 secs: 48799 bytes ==> GET /blog/?p=1424
HTTP/1.1 200 0.44 secs: 44482 bytes ==> GET /blog/?p=1446
Lifting the server siege… done.
Transactions: 9 hits
Availability: 100.00 %
Elapsed time: 4.65 secs
Data transferred: 0.39 MB
Response time: 0.49 secs
Transaction rate: 1.94 trans/sec
Throughput: 0.08 MB/sec
Concurrency: 0.94
Successful transactions: 9
Failed transactions: 0
Longest transaction: 0.70
Shortest transaction: 0.39
FILE: test.log
You can disable this annoying message by editing
the .siegerc file in your home directory; change
the directive ‘show-logfile’ to false.
あとは接続数などで負荷の強さを変えて試験できそうです。
なかなか簡単。