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

Published: 2018年3月25日 by tomsato

概要

一般的に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をブラウザで確認すると以下のようなグラフが見れる

Share

最近の投稿

NetlifyのSplit TestingとFunctionsについて使い方をまとめる Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

NetlifyとはHTMLなどの静的コンテンツのみで構成されたWebサイトを閲覧できる形で配信するWebサービス GitHubやBitbucket、GitLabなどと連携して使うことができて、リポジトリにプッシュすることで自動でCI/CDを行うことができる、無料枠が豊富で独自ドメインを設定可能

WordPressからJekyll(GitHub Pages)に移行した手順をまとめる。 お金的な事情や使いやすさなどの理由で無料のJekyll+GitHub Pagesに移行した。JekyllとはMarkdown等から静的ページを生成する静的サイトジェネレータ

Scala開発のためにScalaらしさをまとめる 言語設計者の設計思想を元にScalaらしさについてまとめる オブジェクト指向と関数型の融合について

StorybookとはUI開発環境を提供するツール React、React Native、Angular、Vueなどをサポートしている ユーザーは独立した開発環境でコンポーネントを個別に作成して挙動の確認をテストできたり、コンポーネントを一覧にしてカタログ化できるので他の人に紹介する時に使えたりする

カテゴリ一覧

タグ一覧