負荷テストツールVegeta学習3:Vegetaのパラメータ
はじめに
こんにちは、DevOps推進2グループの李です。前回はVegetaの書き方と実行方法について紹介しました。これでVegetaの使い方に少し慣れてきましたでしょうか?Powershellを使って1行で負荷テストを実行できるので非常に使いやすいです。続けて、今回はVegetaのパラメータを紹介しようと思います。
下記が今回使用するソフトウェアです。
Go 1.21.6: https://go.dev/dl/
Vegeta 12.11.1 https://github.com/tsenart/vegeta
今回は連載のラストとして使えるパラメータについて紹介したいと思います。
連載目次
負荷テストツールVegeta学習3:Vegetaのパラメータ(今回)
Vegetaのコマンド構成 Vegetaのコマンドは、基本的には以下の4つの要素で構成されます。
vegeta [共通パラメータ] <コマンド > [コマンドパラメータ]
この記法を用いることで、Vegetaのあらゆる操作を実行することができます。Vegetaが使えるパラメータの一覧を取得するには、Powershellで「vegeta -help」を入力すると、利用可能なパラメータの詳細が表示されます。それでは、以下でVegetaの具体的なコマンドを詳しく見ていきましょう。
共通パラメータ
-cpus int:使用するCPUコア数(デフォルトは 全コア)
-profile string:プロファイリングを有効にする
-version:バージョンを表示する
コマンド
Vegetaのコマンドは、総じて以下の4つに分類されます。それぞれのコマンドが担う主な機能は以下の通りです。
attack: 負荷テストを実施するコマンド
report: レポートを出力するコマンド
plot: グラフを出力するコマンド
encode: 結果のエンコード方式を指定するコマンド
これからは、各コマンドのパラメータについて詳しく紹介していきます。
attackコマンドのパラメータ
-body [path]:リクエストボディのファイルパス
-cert [path]:TLSクライアントPEMエンコード証明書のファイルパス
-chunked:チャンクで送信する
-connections [int]:最大オープンアイドル接続数(デフォルトは10000)
-dns-ttl [value]:DNS検索のためのキャッシュ保持期間 [-1 = 無効, 0 = 無期限](デフォルトは0s)
-duration duration:テストの実行時間 [0は無期限]
-format [string]:対象タイトのリクエスト形式 [http, json](デフォルトはhttp)
-h2c:TLS暗号化なしでHTTP/2リクエストを送信
-header [value]:リクエストヘッダ
-http2:サーバーがサポートしている場合はHTTP/2リクエストを送信(デフォルトはtrue)
-insecure:無効なサーバーTLS証明書を無視
-keepalive:keepaliveを使用(デフォルトはtrue)
-key [path]:TLSクライアントのPEM秘密鍵のファイルパス
-laddr [IP]:ローカルIPアドレスを指定する(デフォルトは0.0.0.0)
-lazy:対象を遅延読み込み
-max-body [byte数]:レスポンスボディからキャプチャするバイト数の上限。[-1 = 制限なし](デフォルトは -1)
-max-connections [int]:対象ホストごとの最大接続数
-max-workers [uint]:最大ユーザ数
-name [string]:リクエストを命名する
-output [string]:出力ファイル名
-proxy-header [value]:プロキシの接続ヘッダ
-rate [value]:単位時間あたりのリクエスト数 [0 = 無限](デフォルトは 50/1s)
-redirects [int]:フォローするリダイレクトの数。-1はフォローせず成功としてマークする(デフォルトは 10)
-root-certs [path]:TLSルート証明書のファイルパス
-session-tickets:セッションチケットを使用してTLSセッション再開を有効にする
-targets [string]:読み込み対象ファイル
-timeout [duration]:リクエストのタイムアウト(デフォルトは 30s)
-workers [uint]:初期ユーザ数(デフォルトは10)
reportコマンドのパラメータ
-buckets [string]:ヒストグラムの単位、例: "[0,1ms,10ms]"
-every [duration]:定期的にレポート出力のインターバル(デフォルトは最後まで1回のみ出力する)
-output [path]:出力ファイルのパス
-type string:生成するレポートの種類 [text, json, hist[buckets], hdrplot](デフォルトはtext)
plotコマンドのパラメータ
-output [path]:出力ファイルのパス
-threshold [int]:データポイントがこの値を超えると、系列はダウンサンプリングされます。 (デフォルトは 4000)
-title string:HTMLページのタイトル
encodeコマンドのパラメータ
-output string:出力ファイルのパス
-to string:出力エンコーディング [csv, gob, json](デフォルトはjson)
最後に 今回はVegeta(ベジータ)の全パラメータについてご紹介いたしました。このシリーズを通してVegetaの書き方を理解していただければと思います。そして興味があればぜひ試してみてください。
最後までお読みいただき、ありがとうございました!
参考資料:
Vegetaのドキュメント:https://github.com/tsenart/vegeta
お問合せはお気軽に
https://service.shiftinc.jp/contact/
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/
PHOTO:UnsplashのMarkus Spiske