Bencher ベアメタル クイックスタート
Bencherとは?
Bencherは、継続的ベンチマーキングツールのスイートです。 パフォーマンスの後退があなたのユーザーに影響を与えたことはありますか? Bencherなら、それが起こるのを防げた可能性があります。 Bencherは、パフォーマンスの低下が_マージされる_前に検出し、防止することを可能にします。
- 実行: _まったく同じ_ベアメタルランナーとお気に入りのベンチマーキングツールを使用して、ベンチマークをローカルまたはCIで実行します。
bencherCLIはベアメタル上でのベンチマークの実行をオーケストレーションし、その結果を保存します。 - 追跡: ベンチマークの結果を時間と共に追跡します。ソースブランチ、テストベッド、測定基準に基づいてBencherのWebコンソールを使用して結果を監視、クエリ、グラフ化します。
- キャッチ: _まったく同じ_ベアメタルハードウェアを使用して、ローカルまたはCIでパフォーマンスの後退をキャッチします。Bencherは最先端のカスタマイズ可能な分析を使用して、パフォーマンスの後退がマージされる前にそれを検出します。
機能の後退を防ぐためにユニットテストが実行されるのと同じ理由で、Bencherを使用してベンチマークを実行してパフォーマンスの後退を防ぐべきです。パフォーマンスのバグはバグです!
bencher CLI をインストールする
あなたのオペレーティングシステムを選択し、提供されるコマンドを実行して bencher CLI をインストールします。
詳細は、bencher CLI のインストールドキュメントを参照してください。
⠀curl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | shcurl --proto '=https' --tlsv1.2 -sSfL https://bencher.dev/download/install-cli.sh | shcargo install --git https://github.com/bencherdev/bencher --branch main --locked --force bencher_clipowershell -c "irm https://bencher.dev/download/install-cli.ps1 | iex"⠀次に、bencher CLI がインストールされているか確認しましょう。以下を実行します:
bencher --versionbencher --versionbencher --versionbencher --version次のように表示されるはずです:
bencher 0.6.2プロジェクトを作成する
ベンチマークイメージをプッシュする前に、Bencherプロジェクトが必要です。
プロジェクトを作成する最も簡単な方法は、bencher run CLIサブコマンドを
bencher mockサブコマンドと一緒に実行することです。以下を実行します:
bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"bencher run "bencher mock --count 0"これにより、Bencher Cloud上に新しいプロジェクトが作成されます。
出力のView report URLを確認してください。
プロジェクトスラッグは、URL内の/perf/の後のパスセグメントです。
例えば、URLが以下の場合:
https://bencher.dev/perf/my-project-abc1234/reports/709d3476-51a4-4939-9584-75d9a2c04c54プロジェクトスラッグはmy-project-abc1234です。
このプロジェクトスラッグは次のステップで必要になります。
ベンチマークイメージをプッシュする
Bencher Bare Metalは、専用ハードウェア上でOCIコンテナイメージとしてパッケージされたベンチマークを実行します。
このクイックスタートでは、ベンチマークイメージとしてbencher CLI Dockerイメージを使用します。
カスタムイメージは不要です。
まず、GitHub Container Registryからbencher CLIイメージをプルします。
以下を実行します:
docker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latestdocker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latest次に、Bencher OCIレジストリ用にイメージをリタグします。
YOUR_PROJECT_SLUGを前のステップで取得したプロジェクトスラッグに置き換えてください:
docker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latest次に、Bencher OCIレジストリにログインしてイメージをプッシュします:
docker login registry.bencher.devdocker login registry.bencher.devdocker login registry.bencher.devdocker login registry.bencher.devdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latestdocker push registry.bencher.dev/YOUR_PROJECT_SLUG:latest独自のカスタムイメージの作成方法の詳細については、 イメージドキュメントを参照してください。
ベアメタルベンチマークを追跡する
専用ハードウェアでベンチマーク結果を追跡する準備が整いました!
これを行うには、bencher run CLIサブコマンドを使用して、
ベンチマークを実行し結果を収集します。
YOUR_PROJECT_SLUGを前のステップで取得したプロジェクトスラッグに置き換えて、以下を実行します:
bencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonbencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format jsonサンプルデータを生成するためのベンチマークコマンドとしてbencher noiseサブコマンドを使用しています。
これはベンチマーク環境のノイズがどの程度であるかを測定します。
--format jsonオプションを使用すると、結果はBencher Metric Format (BMF)で出力されます。
すべてが期待どおりに動作する場合、出力の最後は次のようになるはずです:
View report: https://bencher.dev/perf/project-abc4567-wxyz123456789/reports/29d61b7c-5d80-4ac2-a118-f80bc5de431b
View results:- bencher::noise::cache_jitter (Cache Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=6bed122a-b0d1-42e6-93c1-8736a910ec9c&measures=fdee350f-f53a-44bc-af7c-2f4c51415ea8&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::composite (Noise Score): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=a5d0aea8-666f-4554-958a-9ad8acf1a20d&measures=995e8a26-58ee-46c4-8ce7-d0162b7d9d86&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::compute_jitter (Compute Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=489b1d60-5dbd-43cd-bb96-ba50bcba648a&measures=8b715d47-ed42-4ac5-a380-4fe4143aa159&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b- bencher::noise::io_jitter (I/O Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=0a3da391-2fe3-40ec-8a10-983e81231af8&measures=b34f6fd4-60ff-4866-a7a4-60396aab976a&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b
Claim this project: https://bencher.dev/auth/signup?claim=d4b0cd5a-8422-40af-9872-8e18d5d062c4ブラウザで各ベンチマークの結果を確認できるようになりました。
View resultsのリンクをクリックするか、コピーして貼り付けてください。
これらの結果を取得するには、Claim this projectリンクをクリックするか、ブラウザにコピーして貼り付けてください。
🐰 おめでとうございます!初めてのベアメタルベンチマーク結果を追跡しました! 🎉