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 subcomandosbencher runner. O bináriorunneropera um host Runner, enquantobencher runnergerencia 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.
--max-symlinks <MAX_SYMLINKS>
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.
--max-symlinks <MAX_SYMLINKS>
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.