複数URLが指定できる負荷テストツール「siege」を使ってみる

         

単純に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に)

 

 

 

# ./bin/siege -f ./URL -c 1 -i -t 5S -b --log=test.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.

あとは接続数などで負荷の強さを変えて試験できそうです。

なかなか簡単。


コメントを残す