概要
boomはGo言語で書かれた負荷かけツールです
ApacheBench(ab)と同じ感覚で使えます
abだとHTTP Methodを指定して実行できなかったのでboomを使ってPOST Methodのテストを実施してみました
環境
- CentOS 6.6 64bit
- go 1.4.2
- boom (revison:372ea3b0e6cb084657d1db7eacccdfae929af5b9)
Goのインストール
以下はすべてrootで作業しています
cd /var/tmp
wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
tar zvxf go1.4.2.linux-amd64.tar.gz
mv go /usr/local/
mkdir /root/gocode
echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc
echo "export GOPATH=/root/gocode" >> ~/.bashrc
source ~/.bashrc
boomのインストール
go get github.com/rakyll/boom
で完了、簡単
テストしてみる
./gocode/bin/boom -n 10000 -c 100 -m POST 'http://localhost/'
「-n」送信する全リクエストの数
「-c」はその全リクエストをはいくつの同時並列で実行されるか
(なので-cを増やしても全リクエスト数は変わりません)
「-m」でHTTP Methodを指定できます
結果は以下のような感じ
10000 / 10000 Boooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00 %
Summary:
Total: 1.6549 secs.
Slowest: 0.0373 secs.
Fastest: 0.0053 secs.
Average: 0.0164 secs.
Requests/sec: 6042.6406
Total Data Received: 2730000 bytes.
Response Size per Request: 273 bytes.
Status code distribution:
[404] 10000 responses
Response time histogram:
0.005 [1] |
0.008 [32] |
0.012 [10] |
0.015 [5098] |????????????????????????????????????????
0.018 [1387] |??????????
0.021 [2715] |?????????????????????
0.024 [702] |?????
0.028 [31] |
0.031 [7] |
0.034 [0] |
0.037 [17] |
Latency distribution:
10% in 0.0131 secs.
25% in 0.0138 secs.
50% in 0.0148 secs.
75% in 0.0197 secs.
90% in 0.0210 secs.
95% in 0.0217 secs.
99% in 0.0230 secs.
ヒストグラムでレスポンスタイムの分布を出してくれるのが見やすくてGood
最後に
abの2.4.10以降だとboom同様に「-m」オプションでMethod指定ができるみたいなんですが
Apacheの2.4.12をソースインストールしてみたらabのバージョンだけ2.4.9だったのでboomを使った次第です
結果的にはabより良いツールだということがわかったので今後はboomを使ってみたいと思います
0 件のコメント:
コメントを投稿