Bencher CLI runner


O binário runner é o agente que executa Jobs de benchmark Bare Metal. É a referência detalhada para configurar um Self-Hosted Runner. O binário fornece dois subcomandos:

  • runner up: Inicia o runner, fazendo polling e executando Jobs de benchmark.
  • runner run: Baixa uma Image e a executa uma vez no host local, para testes.

🐰 O binário runner é distinto dos subcomandos bencher runner. O binário runner opera um host Runner, enquanto bencher runner gerencia recursos Runner através da REST API.


runner up

Inicia o runner, fazendo polling e executando Jobs de benchmark. Este é o comando de longa duração usado para operar um Self-Hosted Runner. O runner abre uma única conexão WebSocket ao servidor de API, reivindica Jobs que correspondam às suas Specs, os executa e reporta os resultados de volta.

runner up [OPTIONS]

Opções

--host <HOST>

O servidor de API Bencher ao qual se conectar. Por padrão, https://api.bencher.dev é usado. Também pode ser definido com a variável de ambiente BENCHER_HOST.

--runner <RUNNER>

O UUID ou slug do Runner sob o qual operar. Também pode ser definido com a variável de ambiente BENCHER_RUNNER.

--key <KEY>

A chave de autenticação do Runner (bencher_runner_...) retornada quando o Runner foi criado. Também pode ser definida com a variável de ambiente BENCHER_RUNNER_KEY.

--poll-timeout <POLL_TIMEOUT>

O timeout de long-poll em segundos enquanto aguarda um Job, entre 1 e 900. Por padrão, 55 é usado.

--danger-allow-no-sandbox

Permite executar Jobs sem um Sandbox. Sem essa flag, um Job cuja Spec não tem Sandbox é rejeitado em tempo de execução. Jobs sem sandbox rodam diretamente no host, então habilite isso apenas para cargas de trabalho confiáveis. Também pode ser definida com a variável de ambiente BENCHER_DANGER_ALLOW_NO_SANDBOX.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

O nível de log para o processo do sandbox. Por padrão, warning é usado.

--no-auto-update

Desabilita as atualizações automáticas do servidor. Por padrão, o runner se atualiza entre os Jobs quando o servidor oferece uma nova versão. Também pode ser definida com a variável de ambiente BENCHER_NO_AUTO_UPDATE.

--max-download-size <MAX_DOWNLOAD_SIZE>

O tamanho máximo de download em bytes para binários de auto-atualização. Por padrão, 500 MiB é usado. Conflita com --no-auto-update.

--max-output-size <MAX_OUTPUT_SIZE>

O tamanho máximo em bytes para stdout e stderr coletados. Por padrão, 25 MiB é usado.

--max-file-count <MAX_FILE_COUNT>

O número máximo de arquivos de saída a decodificar. Por padrão, 255 é usado.

O número máximo de symlinks a seguir durante a resolução de caminho, correspondendo ao limite MAXSYMLINKS do kernel Linux. Por padrão, 40 é usado. Usado apenas no modo sem sandbox.

--grace-period <GRACE_PERIOD>

O período de carência em segundos após o benchmark encerrar antes da coleta final de saída.

Ajuste do Host

Antes de cada benchmark, o runner aplica ajustes ao host para reduzir o ruído de medição. Por padrão, ele desabilita ASLR, o NMI watchdog, SMT / hyper-threading e o turbo boost; define o governor de escalonamento de CPU como performance, a swappiness como 10 e perf_event_paranoid como -1. As flags abaixo mantêm otimizações individuais nos padrões do host.

--no-tuning

Desabilita todas as otimizações de ajuste do host.

--aslr

Mantém o ASLR habilitado (padrão: desabilitado para benchmarks).

--nmi-watchdog

Mantém o NMI watchdog habilitado (padrão: desabilitado para benchmarks).

--smt

Mantém o SMT / hyper-threading habilitado (padrão: desabilitado para benchmarks).

--turbo

Mantém o turbo boost habilitado (padrão: desabilitado para benchmarks).

--swappiness <SWAPPINESS>

Define o valor de swappiness. Por padrão, 10 é usado.

--governor <GOVERNOR>

Define o governor de escalonamento de CPU. Por padrão, performance é usado.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Define o valor de perf_event_paranoid. Por padrão, -1 é usado.

--help

Imprime a ajuda.


runner run

Baixa uma Image, cria um rootfs e a executa uma vez no host local. Diferente de runner up, isso não se conecta a um servidor de API nem reivindica um Job. Ele executa uma única Image diretamente, o que é útil para testar e depurar um host Runner ou uma Image antes de enviar Jobs reais.

runner run --image <IMAGE> [OPTIONS]

Opções

--image <IMAGE>

A OCI Image a executar, como um caminho local ou uma referência de registro.

--token <TOKEN>

Um token JWT para autenticação no registro ao baixar a Image.

--sandbox <SANDBOX>

O modo de sandbox para a execução do benchmark. Use firecracker para uma microVM Firecracker (apenas Linux). Omita para execução no host sem sandbox.

--timeout <TIMEOUT>

O timeout de execução em segundos. Por padrão, 300 é usado.

--iter <ITER>

O número de iterações de benchmark a executar. Por padrão, 1 é usado.

--allow-failure

Permite uma falha de benchmark sem interromper as iterações restantes.

--entrypoint <ENTRYPOINT>

Sobrescreve o entrypoint do contêiner. Pode ser especificado múltiplas vezes.

--cmd <CMD>

Sobrescreve o comando do contêiner. Pode ser especificado múltiplas vezes.

--env <ENV>

Define uma variável de ambiente no formato KEY=VALUE. Pode ser especificado múltiplas vezes.

--network

Habilita o acesso à rede dentro da VM.

--output <OUTPUT>

Um caminho de arquivo de saída dentro do guest a coletar. Pode ser especificado múltiplas vezes.

--vcpus <VCPUS>

Sobrescreve o número de vCPUs (para testes).

--memory <MEMORY>

Sobrescreve a memória em MiB (para testes).

--disk <DISK>

Sobrescreve o tamanho do disco em MiB (para testes).

--max-output-size <MAX_OUTPUT_SIZE>

O tamanho máximo em bytes para stdout e stderr coletados. Por padrão, 25 MiB é usado.

--max-file-count <MAX_FILE_COUNT>

O número máximo de arquivos de saída a decodificar. Por padrão, 255 é usado.

O número máximo de symlinks a seguir durante a resolução de caminho, correspondendo ao limite MAXSYMLINKS do kernel Linux. Por padrão, 40 é usado. Usado apenas no modo sem sandbox, então conflita com --sandbox.

--grace-period <GRACE_PERIOD>

O período de carência em segundos após o benchmark encerrar antes da coleta final de saída. Por padrão, 1 é usado.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

O nível de log para o processo do sandbox. Requer --sandbox. Por padrão, warning é usado.

Ajuste do Host

Antes de cada benchmark, o runner aplica ajustes ao host para reduzir o ruído de medição. Por padrão, ele desabilita ASLR, o NMI watchdog, SMT / hyper-threading e o turbo boost; define o governor de escalonamento de CPU como performance, a swappiness como 10 e perf_event_paranoid como -1. As flags abaixo mantêm otimizações individuais nos padrões do host.

--no-tuning

Desabilita todas as otimizações de ajuste do host.

--aslr

Mantém o ASLR habilitado (padrão: desabilitado para benchmarks).

--nmi-watchdog

Mantém o NMI watchdog habilitado (padrão: desabilitado para benchmarks).

--smt

Mantém o SMT / hyper-threading habilitado (padrão: desabilitado para benchmarks).

--turbo

Mantém o turbo boost habilitado (padrão: desabilitado para benchmarks).

--swappiness <SWAPPINESS>

Define o valor de swappiness. Por padrão, 10 é usado.

--governor <GOVERNOR>

Define o governor de escalonamento de CPU. Por padrão, performance é usado.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Define o valor de perf_event_paranoid. Por padrão, -1 é usado.

--help

Imprime a ajuda.



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