Bencher CLI runner
El binario runner es el agente que ejecuta los Jobs de benchmark Bare Metal.
Es la referencia detallada para configurar un Runner Autoalojado.
El binario proporciona dos subcomandos:
runner up: Inicia el runner, sondeando y ejecutando Jobs de benchmark.runner run: Descarga una Image y la ejecuta una vez en el host local, para pruebas.
🐰 El binario
runneres distinto de los subcomandosbencher runner. El binariorunneropera un host Runner, mientras quebencher runnergestiona los recursos Runner a través de la API REST.
runner up
Inicia el runner, sondeando y ejecutando Jobs de benchmark. Este es el comando de larga duración usado para operar un Runner Autoalojado. El runner abre una única conexión WebSocket al servidor API, reclama Jobs que coincidan con sus Specs, los ejecuta, y reporta los resultados de vuelta.
runner up [OPTIONS]Opciones
--host <HOST>
El servidor API de Bencher al que conectarse.
Por defecto, se usa https://api.bencher.dev.
También se puede establecer con la variable de entorno BENCHER_HOST.
--runner <RUNNER>
El UUID o slug del Runner como el que operar.
También se puede establecer con la variable de entorno BENCHER_RUNNER.
--key <KEY>
La clave de autenticación del Runner (bencher_runner_...)
devuelta cuando se creó el Runner.
También se puede establecer con la variable de entorno BENCHER_RUNNER_KEY.
--poll-timeout <POLL_TIMEOUT>
El tiempo de espera del long-poll en segundos mientras se espera un Job, entre 1 y 900.
Por defecto, se usa 55.
--danger-allow-no-sandbox
Permite ejecutar Jobs sin un Sandbox.
Sin este flag, un Job cuyo Spec no tenga Sandbox se rechaza en tiempo de ejecución.
Los Jobs sin sandbox se ejecutan directamente en el host, así que solo habilita esto para cargas de trabajo de confianza.
También se puede establecer con la variable de entorno BENCHER_DANGER_ALLOW_NO_SANDBOX.
--sandbox-log-level <SANDBOX_LOG_LEVEL>
El nivel de log para el proceso del sandbox.
Por defecto, se usa warning.
--no-auto-update
Desactiva las actualizaciones automáticas desde el servidor.
Por defecto, el runner se actualiza a sí mismo entre Jobs cuando el servidor ofrece una nueva versión.
También se puede establecer con la variable de entorno BENCHER_NO_AUTO_UPDATE.
--max-download-size <MAX_DOWNLOAD_SIZE>
El tamaño máximo de descarga en bytes para los binarios de auto-actualización.
Por defecto, se usan 500 MiB.
Entra en conflicto con --no-auto-update.
--max-output-size <MAX_OUTPUT_SIZE>
El tamaño máximo en bytes para stdout y stderr recolectados.
Por defecto, se usan 25 MiB.
--max-file-count <MAX_FILE_COUNT>
El número máximo de archivos de salida a decodificar.
Por defecto, se usa 255.
--max-symlinks <MAX_SYMLINKS>
El número máximo de symlinks a seguir durante la resolución de rutas,
coincidiendo con el límite MAXSYMLINKS del kernel de Linux.
Por defecto, se usa 40.
Solo se usa en modo sin sandbox.
--grace-period <GRACE_PERIOD>
El periodo de gracia en segundos después de que el benchmark termina antes de la recolección final de salida.
Ajuste del Host
Antes de cada benchmark, el runner aplica ajustes al host para reducir el ruido de medición.
Por defecto, desactiva ASLR, el watchdog NMI, SMT / hyper-threading, y turbo boost;
establece el governor de escalado de CPU a performance, swappiness a 10, y perf_event_paranoid a -1.
Los flags de abajo mantienen las optimizaciones individuales en sus valores por defecto del host en su lugar.
--no-tuning
Desactiva todas las optimizaciones de ajuste del host.
--aslr
Mantiene ASLR habilitado (por defecto: desactivado para benchmarks).
--nmi-watchdog
Mantiene el watchdog NMI habilitado (por defecto: desactivado para benchmarks).
--smt
Mantiene SMT / hyper-threading habilitado (por defecto: desactivado para benchmarks).
--turbo
Mantiene turbo boost habilitado (por defecto: desactivado para benchmarks).
--swappiness <SWAPPINESS>
Establece el valor de swappiness.
Por defecto, se usa 10.
--governor <GOVERNOR>
Establece el governor de escalado de CPU.
Por defecto, se usa performance.
--perf-event-paranoid <PERF_EVENT_PARANOID>
Establece el valor de perf_event_paranoid.
Por defecto, se usa -1.
--help
Imprime la ayuda.
runner run
Descarga una Image, crea un rootfs, y la ejecuta una vez en el host local.
A diferencia de runner up, esto no se conecta a un servidor API ni reclama un Job.
Ejecuta una única Image directamente, lo cual es útil para probar y depurar un host Runner
o una Image antes de enviar Jobs reales.
runner run --image <IMAGE> [OPTIONS]Opciones
--image <IMAGE>
La Image OCI a ejecutar, como una ruta local o una referencia de registro.
--token <TOKEN>
Un token JWT para autenticación de registro al descargar la Image.
--sandbox <SANDBOX>
El modo de sandbox para la ejecución del benchmark.
Usa firecracker para una microVM de Firecracker (solo Linux).
Omítelo para ejecución en el host sin sandbox.
--timeout <TIMEOUT>
El tiempo de espera de ejecución en segundos.
Por defecto, se usa 300.
--iter <ITER>
El número de iteraciones de benchmark a ejecutar.
Por defecto, se usa 1.
--allow-failure
Permite un fallo de benchmark sin cortocircuitar las iteraciones restantes.
--entrypoint <ENTRYPOINT>
Sobrescribe el entrypoint del contenedor. Puede especificarse múltiples veces.
--cmd <CMD>
Sobrescribe el comando del contenedor. Puede especificarse múltiples veces.
--env <ENV>
Establece una variable de entorno en formato KEY=VALUE.
Puede especificarse múltiples veces.
--network
Habilita el acceso a la red dentro de la VM.
--output <OUTPUT>
Una ruta de archivo de salida dentro del guest a recolectar. Puede especificarse múltiples veces.
--vcpus <VCPUS>
Sobrescribe el número de vCPUs (para pruebas).
--memory <MEMORY>
Sobrescribe la memoria en MiB (para pruebas).
--disk <DISK>
Sobrescribe el tamaño de disco en MiB (para pruebas).
--max-output-size <MAX_OUTPUT_SIZE>
El tamaño máximo en bytes para stdout y stderr recolectados.
Por defecto, se usan 25 MiB.
--max-file-count <MAX_FILE_COUNT>
El número máximo de archivos de salida a decodificar.
Por defecto, se usa 255.
--max-symlinks <MAX_SYMLINKS>
El número máximo de symlinks a seguir durante la resolución de rutas,
coincidiendo con el límite MAXSYMLINKS del kernel de Linux.
Por defecto, se usa 40.
Solo se usa en modo sin sandbox, así que entra en conflicto con --sandbox.
--grace-period <GRACE_PERIOD>
El periodo de gracia en segundos después de que el benchmark termina antes de la recolección final de salida.
Por defecto, se usa 1.
--sandbox-log-level <SANDBOX_LOG_LEVEL>
El nivel de log para el proceso del sandbox.
Requiere --sandbox.
Por defecto, se usa warning.
Ajuste del Host
Antes de cada benchmark, el runner aplica ajustes al host para reducir el ruido de medición.
Por defecto, desactiva ASLR, el watchdog NMI, SMT / hyper-threading, y turbo boost;
establece el governor de escalado de CPU a performance, swappiness a 10, y perf_event_paranoid a -1.
Los flags de abajo mantienen las optimizaciones individuales en sus valores por defecto del host en su lugar.
--no-tuning
Desactiva todas las optimizaciones de ajuste del host.
--aslr
Mantiene ASLR habilitado (por defecto: desactivado para benchmarks).
--nmi-watchdog
Mantiene el watchdog NMI habilitado (por defecto: desactivado para benchmarks).
--smt
Mantiene SMT / hyper-threading habilitado (por defecto: desactivado para benchmarks).
--turbo
Mantiene turbo boost habilitado (por defecto: desactivado para benchmarks).
--swappiness <SWAPPINESS>
Establece el valor de swappiness.
Por defecto, se usa 10.
--governor <GOVERNOR>
Establece el governor de escalado de CPU.
Por defecto, se usa performance.
--perf-event-paranoid <PERF_EVENT_PARANOID>
Establece el valor de perf_event_paranoid.
Por defecto, se usa -1.
--help
Imprime la ayuda.