HTTP負荷テストツールVegetaを使ってベンチマークを取得する


■ 目次

  • 概要
  • 導入方法
  • 使い方

■ 概要

一般的にHTTP負荷テストを行う場合はabかhttp_loadを使うが
Vegetaという個性的なツールがあったのでそれの使用感を紹介する

Apache Bench(ab)を使って初めての負荷検証を行う

■ 導入方法

vegetaコマンドを取得する

$ curl -L "https://github.com/tsenart/vegeta/releases/download/v6.3.0/vegeta-v6.3.0-linux-amd64.tar.gz" -o vegeta.tgz
$ tar xvfa vegeta.tgz

// vegetaコマンドが用意できたことを確認する
$ ls -l vegeta
-rwxr-xr-x 1 tomsato tomsato 7599845 Mar 19  2017 vegeta

■ 使い方

項目 説明
rate 秒間リクエスト数
duration どのくらいの時間実施するか
targets URLやカスタムヘッダーを記述したファイルを指定して攻撃することができる
// 負荷検証を行いたいURLを記述する
$ cat sample.txt
GET http://XXXX/

// 毎秒3リクエストを5秒間行う
$ ./vegeta attack -rate=3 -duration=5s -targets=sample.txt > results.txt

// 実行した結果を出力する
$ ./vegeta report -inputs=results.txt -reporter=text
Requests      [total, rate]            15, 3.21
Duration      [total, attack, wait]    4.893351559s, 4.66666638s, 226.685179ms
Latencies     [mean, 50, 95, 99, max]  235.842229ms, 229.4182ms, 236.257385ms, 236.257385ms, 309.264321ms
Bytes In      [total, mean]            864502, 57633.47
Bytes Out     [total, mean]            0, 0.00
Success       [ratio]                  100.00%
Status Codes  [code:count]             200:15
Error Set:

出力を見ればわかるように、成功率や総リクエスト数、レスポンス時間の平均やStatus Codeがわかったりもできる

またplotの出力ができるので、グラフィカルに結果を見ることができる

$ ./vegeta report -inputs=results.txt -reporter=plot > plot.html

作成されたplot.htmlをブラウザで確認すると以下のようなグラフが見れる


Be First to Comment

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です