Bencher runner CLI
runner バイナリは Bare Metal ベンチマーク Job を実行するエージェントです。
セルフホスト型 Runner をセットアップするための詳細なリファレンスです。
このバイナリは 2 つのサブコマンドを提供します。
runner up: Runner を起動し、ベンチマーク Job をポーリングして実行します。runner run: Image をプルし、テスト用にローカルホスト上で 1 回だけ実行します。
🐰
runnerバイナリはbencher runnerサブコマンドとは異なります。runnerバイナリは Runner ホストを運用するのに対し、bencher runnerは REST API を通じて Runner リソースを管理します。
runner up
Runner を起動し、ベンチマーク Job をポーリングして実行します。 これは セルフホスト型 Runner を運用するために使う、長時間実行コマンドです。 Runner は API サーバーへの単一の WebSocket 接続 を開き、 自身の Spec に一致する Job を要求し、それらを実行して結果を報告します。
runner up [OPTIONS]オプション
--host <HOST>
接続先の Bencher API サーバー。
デフォルトでは https://api.bencher.dev が使用されます。
BENCHER_HOST 環境変数でも設定できます。
--runner <RUNNER>
運用する Runner の UUID またはスラッグ。
BENCHER_RUNNER 環境変数でも設定できます。
--key <KEY>
Runner が作成された ときに返された Runner 認証キー (bencher_runner_...)。
BENCHER_RUNNER_KEY 環境変数でも設定できます。
--poll-timeout <POLL_TIMEOUT>
Job を待機する際のロングポーリングのタイムアウト (秒)。1 から 900 の範囲です。
デフォルトでは 55 が使用されます。
--danger-allow-no-sandbox
Sandbox なしでの Job の実行を許可します。
このフラグがない場合、Sandbox を持たない Spec の Job は実行時に拒否されます。
サンドボックスなしの Job はホスト上で直接実行されるため、信頼できるワークロードに対してのみ有効にしてください。
BENCHER_DANGER_ALLOW_NO_SANDBOX 環境変数でも設定できます。
--sandbox-log-level <SANDBOX_LOG_LEVEL>
サンドボックスプロセスのログレベル。
デフォルトでは warning が使用されます。
--no-auto-update
サーバーからの自動更新を無効にします。
デフォルトでは、サーバーが新しいバージョンを提供すると、Runner は Job の合間に自身を更新します。
BENCHER_NO_AUTO_UPDATE 環境変数でも設定できます。
--max-download-size <MAX_DOWNLOAD_SIZE>
自己更新バイナリの最大ダウンロードサイズ (バイト)。
デフォルトでは 500 MiB が使用されます。
--no-auto-update と競合します。
--max-output-size <MAX_OUTPUT_SIZE>
収集される stdout と stderr の最大サイズ (バイト)。
デフォルトでは 25 MiB が使用されます。
--max-file-count <MAX_FILE_COUNT>
デコードする出力ファイルの最大数。
デフォルトでは 255 が使用されます。
--max-symlinks <MAX_SYMLINKS>
パス解決時にたどるシンボリックリンクの最大数。
Linux カーネルの MAXSYMLINKS 制限に一致します。
デフォルトでは 40 が使用されます。
サンドボックスなしモードでのみ使用されます。
--grace-period <GRACE_PERIOD>
ベンチマーク終了後、最終的な出力収集までの猶予期間 (秒)。
ホストチューニング
各ベンチマークの前に、runner は測定ノイズを低減するためにホストチューニングを適用します。
デフォルトでは、ASLR、NMI ウォッチドッグ、SMT / ハイパースレッディング、ターボブーストを無効にし、
CPU スケーリングガバナーを performance、swappiness を 10、perf_event_paranoid を -1 に設定します。
以下のフラグは、個々の最適化を無効にせず、ホストのデフォルト値のまま維持します。
--no-tuning
すべてのホストチューニング最適化を無効にします。
--aslr
ASLR を有効のまま維持します (デフォルト: ベンチマークでは無効)。
--nmi-watchdog
NMI ウォッチドッグを有効のまま維持します (デフォルト: ベンチマークでは無効)。
--smt
SMT / ハイパースレッディングを有効のまま維持します (デフォルト: ベンチマークでは無効)。
--turbo
ターボブーストを有効のまま維持します (デフォルト: ベンチマークでは無効)。
--swappiness <SWAPPINESS>
swappiness の値を設定します。
デフォルトでは 10 が使用されます。
--governor <GOVERNOR>
CPU スケーリングガバナーを設定します。
デフォルトでは performance が使用されます。
--perf-event-paranoid <PERF_EVENT_PARANOID>
perf_event_paranoid の値を設定します。
デフォルトでは -1 が使用されます。
--help
ヘルプを表示します。
runner run
Image をプルし、rootfs を作成して、ローカルホスト上で 1 回だけ実行します。
runner up とは異なり、これは API サーバーに接続したり Job を要求したりしません。
単一の Image を直接実行するもので、実際の Job を送信する前に Runner ホストや Image を
テスト・デバッグするのに役立ちます。
runner run --image <IMAGE> [OPTIONS]オプション
--image <IMAGE>
実行する OCI Image。ローカルパスまたはレジストリ参照として指定します。
--token <TOKEN>
Image をプルする際の、レジストリ認証用の JWT トークン。
--sandbox <SANDBOX>
ベンチマーク実行のサンドボックスモード。
Firecracker microVM には firecracker を使用します (Linux のみ)。
サンドボックスなしのホスト実行の場合は省略します。
--timeout <TIMEOUT>
実行タイムアウト (秒)。
デフォルトでは 300 が使用されます。
--iter <ITER>
実行するベンチマークの反復回数。
デフォルトでは 1 が使用されます。
--allow-failure
ベンチマークの失敗が発生しても、残りの反復を打ち切らずに許可します。
--entrypoint <ENTRYPOINT>
コンテナのエントリーポイントを上書きします。 複数回指定できます。
--cmd <CMD>
コンテナのコマンドを上書きします。 複数回指定できます。
--env <ENV>
環境変数を KEY=VALUE 形式で設定します。
複数回指定できます。
--network
VM 内でのネットワークアクセスを有効にします。
--output <OUTPUT>
収集するゲスト内の出力ファイルパス。 複数回指定できます。
--vcpus <VCPUS>
vCPU 数を上書きします (テスト用)。
--memory <MEMORY>
メモリ (MiB) を上書きします (テスト用)。
--disk <DISK>
ディスクサイズ (MiB) を上書きします (テスト用)。
--max-output-size <MAX_OUTPUT_SIZE>
収集される stdout と stderr の最大サイズ (バイト)。
デフォルトでは 25 MiB が使用されます。
--max-file-count <MAX_FILE_COUNT>
デコードする出力ファイルの最大数。
デフォルトでは 255 が使用されます。
--max-symlinks <MAX_SYMLINKS>
パス解決時にたどるシンボリックリンクの最大数。
Linux カーネルの MAXSYMLINKS 制限に一致します。
デフォルトでは 40 が使用されます。
サンドボックスなしモードでのみ使用されるため、--sandbox と競合します。
--grace-period <GRACE_PERIOD>
ベンチマーク終了後、最終的な出力収集までの猶予期間 (秒)。
デフォルトでは 1 が使用されます。
--sandbox-log-level <SANDBOX_LOG_LEVEL>
サンドボックスプロセスのログレベル。
--sandbox が必要です。
デフォルトでは warning が使用されます。
ホストチューニング
各ベンチマークの前に、runner は測定ノイズを低減するためにホストチューニングを適用します。
デフォルトでは、ASLR、NMI ウォッチドッグ、SMT / ハイパースレッディング、ターボブーストを無効にし、
CPU スケーリングガバナーを performance、swappiness を 10、perf_event_paranoid を -1 に設定します。
以下のフラグは、個々の最適化を無効にせず、ホストのデフォルト値のまま維持します。
--no-tuning
すべてのホストチューニング最適化を無効にします。
--aslr
ASLR を有効のまま維持します (デフォルト: ベンチマークでは無効)。
--nmi-watchdog
NMI ウォッチドッグを有効のまま維持します (デフォルト: ベンチマークでは無効)。
--smt
SMT / ハイパースレッディングを有効のまま維持します (デフォルト: ベンチマークでは無効)。
--turbo
ターボブーストを有効のまま維持します (デフォルト: ベンチマークでは無効)。
--swappiness <SWAPPINESS>
swappiness の値を設定します。
デフォルトでは 10 が使用されます。
--governor <GOVERNOR>
CPU スケーリングガバナーを設定します。
デフォルトでは performance が使用されます。
--perf-event-paranoid <PERF_EVENT_PARANOID>
perf_event_paranoid の値を設定します。
デフォルトでは -1 が使用されます。
--help
ヘルプを表示します。