Bencher runner CLI


runner 바이너리는 Bare Metal 벤치마크 Job을 실행하는 에이전트입니다. Self-Hosted Runner를 설정하기 위한 심층 참조 자료입니다. 이 바이너리는 두 개의 하위 명령을 제공합니다:

  • runner up: Runner를 시작하여 벤치마크 Job을 폴링하고 실행합니다.
  • runner run: Image를 풀(pull)하여 로컬 호스트에서 한 번 실행합니다(테스트용).

🐰 runner 바이너리는 bencher runner 하위 명령과 다릅니다. runner 바이너리는 Runner 호스트를 운영하는 반면, bencher runner는 REST API를 통해 Runner 리소스를 관리합니다.


runner up

Runner를 시작하여 벤치마크 Job을 폴링하고 실행합니다. Self-Hosted Runner를 운영하는 데 사용하는 장기 실행 명령입니다. Runner는 API 서버로 단일 WebSocket 연결을 열고, 자신의 Spec과 일치하는 Job을 청구(claim)하고, 실행한 후, 결과를 다시 보고합니다.

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을 기다리는 동안의 롱 폴(long-poll) 타임아웃(초)으로, 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>

수집된 stdoutstderr의 최대 크기(바이트)입니다. 기본적으로 25 MiB가 사용됩니다.

--max-file-count <MAX_FILE_COUNT>

디코딩할 출력 파일의 최대 개수입니다. 기본적으로 255가 사용됩니다.

경로 확인 중 따라갈 심볼릭 링크의 최대 개수로, 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를 풀(pull)하고, rootfs를 생성한 후, 로컬 호스트에서 한 번 실행합니다. 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(Linux 전용)을 사용하려면 firecracker를 사용하세요. 샌드박스 없는 호스트 실행을 위해서는 생략하세요.

--timeout <TIMEOUT>

실행 타임아웃(초)입니다. 기본적으로 300이 사용됩니다.

--iter <ITER>

실행할 벤치마크 반복 횟수입니다. 기본적으로 1이 사용됩니다.

--allow-failure

남은 반복을 중단(short-circuit)하지 않고 벤치마크 실패를 허용합니다.

--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>

수집된 stdoutstderr의 최대 크기(바이트)입니다. 기본적으로 25 MiB가 사용됩니다.

--max-file-count <MAX_FILE_COUNT>

디코딩할 출력 파일의 최대 개수입니다. 기본적으로 255가 사용됩니다.

경로 확인 중 따라갈 심볼릭 링크의 최대 개수로, 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

도움말을 출력합니다.



Published: Fri, June 19, 2026 at 8:00:00 AM UTC