読者です 読者をやめる 読者になる 読者になる

サクッとベンチマークテストするためにGo製のboomを使う

ベンチ職人の皆様こんばんは

サクッとHTTPのベンチマーク取るための定番といえばApache Bench(通称ab)ですが、最近はGoで書かれたboomってやつをよく使ってます。

github.com

インストール

もちろんGoがインストールされてることが前提。go getすれば終わりです。

$ go get github.com/rakyll/boom

使い方

abに馴染みがある人ならすぐ使えると思います。オプションも似てるので。

100回リクエストを同時10リクエストでやるには以下のようにします。

$ boom -n 100 -c 10 http://localhost:8000/test
100 / 100 Boooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo! 100.00 %

Summary:
  Total:    1.4619 secs.
  Slowest:  0.4581 secs.
  Fastest:  0.0610 secs.
  Average:  0.1423 secs.
  Requests/sec: 68.4065
  Total Data Received:  214100 bytes.
  Response Size per Request:    2141 bytes.

Status code distribution:
  [200] 100 responses

Response time histogram:
  0.061 [1] |∎
  0.101 [30]    |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.140 [34]    |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.180 [13]    |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
  0.220 [9] |∎∎∎∎∎∎∎∎∎∎
  0.260 [4] |∎∎∎∎
  0.299 [6] |∎∎∎∎∎∎∎
  0.339 [1] |∎
  0.379 [0] |
  0.418 [0] |
  0.458 [2] |∎∎

Latency distribution:
  10% in 0.0838 secs.
  25% in 0.0963 secs.
  50% in 0.1177 secs.
  75% in 0.1551 secs.
  90% in 0.2563 secs.
  95% in 0.2818 secs.
  99% in 0.4581 secs.

棒グラフとか出してくれるのもなかなか良いですな。

HTTP Methodを設定するのであれば、-mオプションを指定。

$ boom -n 100 -c 10 -m POST  http://localhost:8000/test

-qオプションではQPS指定ができます。

$ boom -q 100 http://localhost:8000/test

ヘルプ見ればオプションの説明が見れるので色々試してみてくださいな。