Bare Metal Overview
ほとんどのベンチマーク追跡ツールでは、単一の環境からのみベンチマークを実行できます。 ローカルで実行するか、CIで実行するかのどちらかです。 ローカルとCIの両方の実行をサポートしていても、 2つの間で結果を比較することはできません。
Bencher Bare Metalを使用すると、両方の良い点を活かすことができます。 ローカルマシンからベンチマークを実行し、専用ハードウェア上で実行させることができ、 CIからベンチマークを実行し、_まったく同じ_専用ハードウェア上で実行させることもできます。 これにより、ベンチマークの実行場所に関係なく、一貫したベンチマーク実行環境を確保できます。
Bencher Bare Metalは、変動を排除し、より正確で信頼性の高いベンチマーク結果を提供するために、ベアメタルハードウェア上で動作します。
Runner
Runnerは、専用のベアメタルハードウェア上で動作するリモートベンチマーク実行エージェントです。 Runnerは、関連付けられたSpecに基づいて、保留中のJobをBencher APIサーバーにポーリングします。 Jobが取得されると、RunnerはそのJobに指定されたImageをプルし、 Imageを展開し、ベンチマークコマンドを実行し、結果をBencher APIサーバーに送り返します。 ベンチマークが他のワークロードの影響を受けないように、一度に1つのJobのみが実行されます。
| Runner | Platform | Scope | Managed By | Sandbox | Network Access | Tier |
|---|---|---|---|---|---|---|
| Shared | Bencher Cloud | Server | Bencher | Required | No | Free, Team, Enterprise |
| Dedicated | Bencher Cloud | Organization | Bencher | Optional | No | Enterprise |
| Custom | Bencher Cloud | Organization | User | Optional | Optional | Enterprise |
| Self-Hosted Server | Bencher Self-Hosted | Server | User | Optional | Optional | Free, Team, Enterprise |
| Self-Hosted Organization | Bencher Self-Hosted | Organization | User | Optional | Optional | Enterprise |
Spec
Specは、Runnerで利用可能なリソースを記述するハードウェア仕様です:
- オペレーティングシステム (OS)
- Linux
- macOS
- Windows
- CPUアーキテクチャ
- x86_64
- ARM64
- Sandbox
- Firecracker microVM
- Sandboxなし
- CPU数
- メモリサイズ (RAM)
- ディスクサイズ
- ネットワークアクセス
Specはサーバースコープまたは組織スコープのいずれかであり、 同じSpecをそれぞれ同じサーバー上または同じ組織内の複数のテストベッドで共有できます。
bencher runを使用する際のSpec選択の優先順位は以下の通りです:
--specオプション- テストベッドに割り当てられたSpec
- デフォルトの組織スコープSpec
- デフォルトのサーバースコープSpec
選択されたSpecは、現在のテストベッドに割り当てられます。
Sandbox
Sandboxは、Runner上で安全なマルチテナンシーを実現する分離メカニズムです。
Bencher Bare Metalは、デフォルトのSandbox実装としてFirecracker microVMを使用します。
Sandboxなしでの実行には、Bencher CloudのDedicatedまたはCustom Runner(詳細はBencher Plusサポートにお問い合わせください)またはBencher Self-Hostedが必要です。
RunnerがSandboxを使用するように設定されている場合、各Jobはそのサンドボックス内で実行されます。
完全な概要については、runnerドキュメントを参照してください。
Job
Jobは、リモートベンチマーク実行リクエストのライフサイクルを追跡します。
--job-timeoutオプションを使用して、Jobごとにカスタムタイムアウトをリクエストできます。
ただし、以下の同時実行制限付きでJobタイムアウトは常に適用されます:
| ティア | Jobタイムアウト | Job同時実行数 |
|---|---|---|
| Unclaimed | 1分 | ソースIPごとに1 |
| Free | 5分 | 組織ごとに1 |
| Team | 無制限(デフォルト:60分) | 無制限 |
| Enterprise | 無制限(デフォルト:60分) | 無制限 |
完全な概要については、Jobドキュメントを参照してください。
Image
Imageは、ベンチマークコードとその依存関係を含むOCIコンテナイメージです。 RunnerがJobを実行する際、Imageをプルし、Imageを展開し、Jobで指定されたベンチマークコマンドを実行します。 プロジェクト用のImageの作成方法については、Imageドキュメントを参照してください。