Repolode
six-ddc

six-ddc/plow

fasthttpを使ったGo製のHTTP(S)負荷テストCLI。リアルタイムのターミナル表示とWebチャートに対応。

スター
4,515
フォーク
154
未解決の Issue
20
最終コミット
5 日前

これは何?

PlowはGoで書かれた、コマンドラインのHTTP(S)ベンチマークツールです。指定した同時接続数でリクエストを送信し、テスト中のレイテンシ統計、ヒストグラム、パーセンタイルを記録して、ターミナルとリアルタイムのWebページに表示します。テストは、指定時間の経過、指定リクエスト数の完了、またはCtrl-Cによる中断まで実行できます。

PlowはGo標準のnet/httpパッケージではなく、fasthttpクライアントライブラリを使用します。ヒストグラムと分位点を求めるストリーミングアルゴリズムにより、ベンチマーク中のメモリとCPUのオーバーヘッドを抑えます。オプションのトレース機能では、リクエスト時間をDNS、接続、TLS、書き込み、待機、読み込みの各フェーズに分けて確認できます。

メソッド、ヘッダー、リクエストボディ(ファイルを指定でき、必要に応じてストリーミング可能)、クライアントTLS証明書を使ってリクエストをカスタマイズできます。レート制限、ランプアップ、SOCKS5およびHTTPプロキシ、Unixドメインソケット、JSON出力にも対応しています。

主な機能

  • 01ターミナルとWeb UIで、レイテンシ統計、ヒストグラム、パーセンタイルをリアルタイムに表示。
  • 02同時接続数、リクエスト数、実行時間を指定するテストモード。
  • 03DNS、接続、TLS、書き込み、TTFB、読み込みの各フェーズのレイテンシをトレース。
  • 04メソッド、ヘッダー、ファイルからのリクエストボディ、クライアントTLS証明書をカスタマイズ。
  • 05レート制限、ランプアップ、SOCKS5およびHTTPプロキシ、JSON出力に対応。

ユースケース

  • リリース前にHTTP APIやWebサービスの負荷テストを行う。
  • エンドポイントやサーバー構成ごとの応答レイテンシを比較する。
  • DNS、接続、TTFBなど、応答の遅延に最も影響しているリクエストフェーズを特定する。

クイックスタート

  1. 1

    Go で plow をインストールする

    go install github.com/six-ddc/plow@latest
  2. 2

    20 接続で URL に負荷テストを実行する

    plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s

使う前に知っておきたいこと

  • HTTP(S) の負荷テストのみをサポートしており、他のプロトコルには対応していません。

収録されている特集

トピック

よくある質問

plow とは?
fasthttpを使ったGo製のHTTP(S)負荷テストCLI。リアルタイムのターミナル表示とWebチャートに対応。 PlowはGoで書かれた、コマンドラインのHTTP(S)ベンチマークツールです。指定した同時接続数でリクエストを送信し、テスト中のレイテンシ統計、ヒストグラム、パーセンタイルを記録して、ターミナルとリアルタイムのWebページに表示します。テストは、指定時間の経過、指定リクエスト数の完了、またはCtrl-Cによる中断まで実行できます。
plow は無料で使えますか?ライセンスは?
plow は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
plow は今もメンテナンスされていますか?
活発にメンテナンス中。plow の最終コミットは 2026年10月17日 です。
plow は何に使えますか?
リリース前にHTTP APIやWebサービスの負荷テストを行う。 エンドポイントやサーバー構成ごとの応答レイテンシを比較する。 DNS、接続、TTFBなど、応答の遅延に最も影響しているリクエストフェーズを特定する。
plow のインストール方法は?
Go で plow をインストールする: go install github.com/six-ddc/plow@latest 20 接続で URL に負荷テストを実行する: plow http://127.0.0.1:8080/ -c 20 -n 10000 -d 10s
plow はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/six-ddc/plow

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト