Bencher CLI runner


Le binaire runner est l’agent qui exécute les Jobs de benchmark Bare Metal. Il constitue la référence détaillée pour la mise en place d’un Runner auto-hébergé. Le binaire fournit deux sous-commandes :

  • runner up : Démarre le runner, en interrogeant et en exécutant les Jobs de benchmark.
  • runner run : Récupère une Image et l’exécute une seule fois sur l’hôte local, à des fins de test.

🐰 Le binaire runner est distinct des sous-commandes bencher runner. Le binaire runner exploite un hôte Runner, tandis que bencher runner gère les ressources Runner via l’API REST.


runner up

Démarre le runner, en interrogeant et en exécutant les Jobs de benchmark. C’est la commande de longue durée utilisée pour exploiter un Runner auto-hébergé. Le runner ouvre une unique connexion WebSocket vers le serveur API, réclame les Jobs correspondant à ses Specs, les exécute, et renvoie les résultats.

runner up [OPTIONS]

Options

--host <HOST>

Le serveur API Bencher auquel se connecter. Par défaut, https://api.bencher.dev est utilisé. Peut aussi être défini avec la variable d’environnement BENCHER_HOST.

--runner <RUNNER>

L’UUID ou le slug du Runner sous lequel opérer. Peut aussi être défini avec la variable d’environnement BENCHER_RUNNER.

--key <KEY>

La clé d’authentification du Runner (bencher_runner_...) renvoyée lors de la création du Runner. Peut aussi être défini avec la variable d’environnement BENCHER_RUNNER_KEY.

--poll-timeout <POLL_TIMEOUT>

Le délai d’attente du long-poll en secondes pendant l’attente d’un Job, entre 1 et 900. Par défaut, 55 est utilisé.

--danger-allow-no-sandbox

Autorise l’exécution de Jobs sans Sandbox. Sans ce drapeau, un Job dont le Spec n’a pas de Sandbox est rejeté à l’exécution. Les Jobs sans sandbox s’exécutent directement sur l’hôte, n’activez donc ceci que pour des charges de travail de confiance. Peut aussi être défini avec la variable d’environnement BENCHER_DANGER_ALLOW_NO_SANDBOX.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

Le niveau de journalisation du processus de sandbox. Par défaut, warning est utilisé.

--no-auto-update

Désactive les mises à jour automatiques depuis le serveur. Par défaut, le runner se met à jour lui-même entre les Jobs lorsque le serveur propose une nouvelle version. Peut aussi être défini avec la variable d’environnement BENCHER_NO_AUTO_UPDATE.

--max-download-size <MAX_DOWNLOAD_SIZE>

La taille de téléchargement maximale en octets pour les binaires de mise à jour automatique. Par défaut, 500 Mio est utilisé. En conflit avec --no-auto-update.

--max-output-size <MAX_OUTPUT_SIZE>

La taille maximale en octets pour les sorties stdout et stderr collectées. Par défaut, 25 Mio est utilisé.

--max-file-count <MAX_FILE_COUNT>

Le nombre maximal de fichiers de sortie à décoder. Par défaut, 255 est utilisé.

Le nombre maximal de liens symboliques à suivre lors de la résolution des chemins, correspondant à la limite MAXSYMLINKS du noyau Linux. Par défaut, 40 est utilisé. Utilisé uniquement en mode sans sandbox.

--grace-period <GRACE_PERIOD>

Le délai de grâce en secondes après la fin du benchmark avant la collecte finale des sorties.

Réglage de l’hôte

Avant chaque benchmark, le runner applique un réglage de l’hôte pour réduire le bruit de mesure. Par défaut, il désactive l’ASLR, le NMI watchdog, le SMT / hyper-threading et le turbo boost ; règle le gouverneur de mise à l’échelle du CPU sur performance, la swappiness sur 10, et perf_event_paranoid sur -1. Les drapeaux ci-dessous conservent au contraire les optimisations individuelles à leurs valeurs par défaut de l’hôte.

--no-tuning

Désactive toutes les optimisations de réglage de l’hôte.

--aslr

Conserve l’ASLR activé (par défaut : désactivé pour les benchmarks).

--nmi-watchdog

Conserve le NMI watchdog activé (par défaut : désactivé pour les benchmarks).

--smt

Conserve le SMT / hyper-threading activé (par défaut : désactivé pour les benchmarks).

--turbo

Conserve le turbo boost activé (par défaut : désactivé pour les benchmarks).

--swappiness <SWAPPINESS>

Définit la valeur de swappiness. Par défaut, 10 est utilisé.

--governor <GOVERNOR>

Définit le gouverneur de mise à l’échelle du CPU. Par défaut, performance est utilisé.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Définit la valeur de perf_event_paranoid. Par défaut, -1 est utilisé.

--help

Affiche l’aide.


runner run

Récupère une Image, crée un rootfs, et l’exécute une seule fois sur l’hôte local. Contrairement à runner up, cette commande ne se connecte pas à un serveur API et ne réclame pas de Job. Elle exécute une seule Image directement, ce qui est utile pour tester et déboguer un hôte Runner ou une Image avant de soumettre de vrais Jobs.

runner run --image <IMAGE> [OPTIONS]

Options

--image <IMAGE>

L’Image OCI à exécuter, sous forme de chemin local ou de référence de registre.

--token <TOKEN>

Un jeton JWT pour l’authentification au registre lors de la récupération de l’Image.

--sandbox <SANDBOX>

Le mode de sandbox pour l’exécution du benchmark. Utilisez firecracker pour une microVM Firecracker (Linux uniquement). Omettez pour une exécution sur l’hôte sans sandbox.

--timeout <TIMEOUT>

Le délai d’attente d’exécution en secondes. Par défaut, 300 est utilisé.

--iter <ITER>

Le nombre d’itérations de benchmark à exécuter. Par défaut, 1 est utilisé.

--allow-failure

Autorise un échec de benchmark sans court-circuiter les itérations restantes.

--entrypoint <ENTRYPOINT>

Remplace l’entrypoint du conteneur. Peut être spécifié plusieurs fois.

--cmd <CMD>

Remplace la commande du conteneur. Peut être spécifié plusieurs fois.

--env <ENV>

Définit une variable d’environnement au format KEY=VALUE. Peut être spécifié plusieurs fois.

--network

Active l’accès réseau à l’intérieur de la VM.

--output <OUTPUT>

Un chemin de fichier de sortie à l’intérieur de l’invité à collecter. Peut être spécifié plusieurs fois.

--vcpus <VCPUS>

Remplace le nombre de vCPU (à des fins de test).

--memory <MEMORY>

Remplace la mémoire en Mio (à des fins de test).

--disk <DISK>

Remplace la taille du disque en Mio (à des fins de test).

--max-output-size <MAX_OUTPUT_SIZE>

La taille maximale en octets pour les sorties stdout et stderr collectées. Par défaut, 25 Mio est utilisé.

--max-file-count <MAX_FILE_COUNT>

Le nombre maximal de fichiers de sortie à décoder. Par défaut, 255 est utilisé.

Le nombre maximal de liens symboliques à suivre lors de la résolution des chemins, correspondant à la limite MAXSYMLINKS du noyau Linux. Par défaut, 40 est utilisé. Utilisé uniquement en mode sans sandbox, il est donc en conflit avec --sandbox.

--grace-period <GRACE_PERIOD>

Le délai de grâce en secondes après la fin du benchmark avant la collecte finale des sorties. Par défaut, 1 est utilisé.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

Le niveau de journalisation du processus de sandbox. Nécessite --sandbox. Par défaut, warning est utilisé.

Réglage de l’hôte

Avant chaque benchmark, le runner applique un réglage de l’hôte pour réduire le bruit de mesure. Par défaut, il désactive l’ASLR, le NMI watchdog, le SMT / hyper-threading et le turbo boost ; règle le gouverneur de mise à l’échelle du CPU sur performance, la swappiness sur 10, et perf_event_paranoid sur -1. Les drapeaux ci-dessous conservent au contraire les optimisations individuelles à leurs valeurs par défaut de l’hôte.

--no-tuning

Désactive toutes les optimisations de réglage de l’hôte.

--aslr

Conserve l’ASLR activé (par défaut : désactivé pour les benchmarks).

--nmi-watchdog

Conserve le NMI watchdog activé (par défaut : désactivé pour les benchmarks).

--smt

Conserve le SMT / hyper-threading activé (par défaut : désactivé pour les benchmarks).

--turbo

Conserve le turbo boost activé (par défaut : désactivé pour les benchmarks).

--swappiness <SWAPPINESS>

Définit la valeur de swappiness. Par défaut, 10 est utilisé.

--governor <GOVERNOR>

Définit le gouverneur de mise à l’échelle du CPU. Par défaut, performance est utilisé.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Définit la valeur de perf_event_paranoid. Par défaut, -1 est utilisé.

--help

Affiche l’aide.



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