Bencher runner CLI


Das runner-Binary ist der Agent, der Bare Metal Benchmark-Jobs ausführt. Es ist die ausführliche Referenz zum Einrichten eines Self-Hosted Runner. Das Binary bietet zwei Unterbefehle:

  • runner up: Startet den Runner und fragt Benchmark-Jobs ab und führt sie aus.
  • runner run: Lädt ein Image herunter und führt es einmal auf dem lokalen Host aus, zu Testzwecken.

🐰 Das runner-Binary unterscheidet sich von den bencher runner-Unterbefehlen. Das runner-Binary betreibt einen Runner-Host, während bencher runner Runner-Ressourcen über die REST-API verwaltet.


runner up

Startet den Runner und fragt Benchmark-Jobs ab und führt sie aus. Dies ist der langlaufende Befehl zum Betrieb eines Self-Hosted Runner. Der Runner öffnet eine einzige WebSocket-Verbindung zum API-Server, beansprucht Jobs, die zu seinen Specs passen, führt sie aus und meldet die Ergebnisse zurück.

runner up [OPTIONS]

Optionen

--host <HOST>

Der Bencher API-Server, zu dem eine Verbindung hergestellt werden soll. Standardmäßig wird https://api.bencher.dev verwendet. Kann auch mit der Umgebungsvariable BENCHER_HOST gesetzt werden.

--runner <RUNNER>

Die UUID oder der Slug des Runner, als der agiert werden soll. Kann auch mit der Umgebungsvariable BENCHER_RUNNER gesetzt werden.

--key <KEY>

Der Runner-Authentifizierungsschlüssel (bencher_runner_...), der zurückgegeben wurde, als der Runner erstellt wurde. Kann auch mit der Umgebungsvariable BENCHER_RUNNER_KEY gesetzt werden.

--poll-timeout <POLL_TIMEOUT>

Das Long-Poll-Timeout in Sekunden beim Warten auf einen Job, zwischen 1 und 900. Standardmäßig wird 55 verwendet.

--danger-allow-no-sandbox

Erlaubt das Ausführen von Jobs ohne Sandbox. Ohne dieses Flag wird ein Job, dessen Spec keine Sandbox hat, zur Laufzeit abgelehnt. Jobs ohne Sandbox laufen direkt auf dem Host, aktivieren Sie dies also nur für vertrauenswürdige Workloads. Kann auch mit der Umgebungsvariable BENCHER_DANGER_ALLOW_NO_SANDBOX gesetzt werden.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

Das Log-Level für den Sandbox-Prozess. Standardmäßig wird warning verwendet.

--no-auto-update

Deaktiviert automatische Updates vom Server. Standardmäßig aktualisiert sich der Runner zwischen Jobs selbst, wenn der Server eine neue Version anbietet. Kann auch mit der Umgebungsvariable BENCHER_NO_AUTO_UPDATE gesetzt werden.

--max-download-size <MAX_DOWNLOAD_SIZE>

Die maximale Download-Größe in Bytes für Self-Update-Binaries. Standardmäßig werden 500 MiB verwendet. Steht im Konflikt mit --no-auto-update.

--max-output-size <MAX_OUTPUT_SIZE>

Die maximale Größe in Bytes für erfasstes stdout und stderr. Standardmäßig werden 25 MiB verwendet.

--max-file-count <MAX_FILE_COUNT>

Die maximale Anzahl an Ausgabedateien, die dekodiert werden. Standardmäßig wird 255 verwendet.

Die maximale Anzahl an Symlinks, denen bei der Pfadauflösung gefolgt wird, entsprechend dem MAXSYMLINKS-Limit des Linux-Kernels. Standardmäßig wird 40 verwendet. Wird nur im Modus ohne Sandbox verwendet.

--grace-period <GRACE_PERIOD>

Die Karenzzeit in Sekunden nach dem Beenden des Benchmarks vor der finalen Ausgabeerfassung.

Host-Tuning

Vor jedem Benchmark wendet der runner Host-Tuning an, um Messrauschen zu reduzieren. Standardmäßig deaktiviert er ASLR, den NMI-Watchdog, SMT / Hyper-Threading und Turbo Boost; setzt den CPU-Scaling-Governor auf performance, Swappiness auf 10 und perf_event_paranoid auf -1. Die folgenden Flags belassen einzelne Optimierungen stattdessen bei ihren Host-Standardwerten.

--no-tuning

Deaktiviert alle Host-Tuning-Optimierungen.

--aslr

Belässt ASLR aktiviert (Standard: für Benchmarks deaktiviert).

--nmi-watchdog

Belässt den NMI-Watchdog aktiviert (Standard: für Benchmarks deaktiviert).

--smt

Belässt SMT / Hyper-Threading aktiviert (Standard: für Benchmarks deaktiviert).

--turbo

Belässt Turbo Boost aktiviert (Standard: für Benchmarks deaktiviert).

--swappiness <SWAPPINESS>

Setzt den Swappiness-Wert. Standardmäßig wird 10 verwendet.

--governor <GOVERNOR>

Setzt den CPU-Scaling-Governor. Standardmäßig wird performance verwendet.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Setzt den perf_event_paranoid-Wert. Standardmäßig wird -1 verwendet.

--help

Hilfe ausgeben.


runner run

Lädt ein Image herunter, erstellt ein rootfs und führt es einmal auf dem lokalen Host aus. Anders als runner up stellt dies keine Verbindung zu einem API-Server her und beansprucht keinen Job. Es führt ein einzelnes Image direkt aus, was zum Testen und Debuggen eines Runner-Hosts oder eines Image nützlich ist, bevor echte Jobs eingereicht werden.

runner run --image <IMAGE> [OPTIONS]

Optionen

--image <IMAGE>

Das auszuführende OCI Image, als lokaler Pfad oder als Registry-Referenz.

--token <TOKEN>

Ein JWT-Token für die Registry-Authentifizierung beim Herunterladen des Image.

--sandbox <SANDBOX>

Der Sandbox-Modus für die Benchmark-Ausführung. Verwenden Sie firecracker für eine Firecracker-microVM (nur Linux). Lassen Sie es für die Ausführung auf dem Host ohne Sandbox weg.

--timeout <TIMEOUT>

Das Ausführungs-Timeout in Sekunden. Standardmäßig wird 300 verwendet.

--iter <ITER>

Die Anzahl der auszuführenden Benchmark-Iterationen. Standardmäßig wird 1 verwendet.

--allow-failure

Erlaubt einen Benchmark-Fehlschlag, ohne die verbleibenden Iterationen kurzzuschließen.

--entrypoint <ENTRYPOINT>

Überschreibt den Container-Entrypoint. Kann mehrfach angegeben werden.

--cmd <CMD>

Überschreibt den Container-Befehl. Kann mehrfach angegeben werden.

--env <ENV>

Setzt eine Umgebungsvariable im Format KEY=VALUE. Kann mehrfach angegeben werden.

--network

Aktiviert Netzwerkzugriff innerhalb der VM.

--output <OUTPUT>

Ein Ausgabedateipfad innerhalb des Gasts, der erfasst werden soll. Kann mehrfach angegeben werden.

--vcpus <VCPUS>

Überschreibt die Anzahl der vCPUs (zum Testen).

--memory <MEMORY>

Überschreibt den Arbeitsspeicher in MiB (zum Testen).

--disk <DISK>

Überschreibt die Festplattengröße in MiB (zum Testen).

--max-output-size <MAX_OUTPUT_SIZE>

Die maximale Größe in Bytes für erfasstes stdout und stderr. Standardmäßig werden 25 MiB verwendet.

--max-file-count <MAX_FILE_COUNT>

Die maximale Anzahl an Ausgabedateien, die dekodiert werden. Standardmäßig wird 255 verwendet.

Die maximale Anzahl an Symlinks, denen bei der Pfadauflösung gefolgt wird, entsprechend dem MAXSYMLINKS-Limit des Linux-Kernels. Standardmäßig wird 40 verwendet. Wird nur im Modus ohne Sandbox verwendet und steht daher im Konflikt mit --sandbox.

--grace-period <GRACE_PERIOD>

Die Karenzzeit in Sekunden nach dem Beenden des Benchmarks vor der finalen Ausgabeerfassung. Standardmäßig wird 1 verwendet.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

Das Log-Level für den Sandbox-Prozess. Erfordert --sandbox. Standardmäßig wird warning verwendet.

Host-Tuning

Vor jedem Benchmark wendet der runner Host-Tuning an, um Messrauschen zu reduzieren. Standardmäßig deaktiviert er ASLR, den NMI-Watchdog, SMT / Hyper-Threading und Turbo Boost; setzt den CPU-Scaling-Governor auf performance, Swappiness auf 10 und perf_event_paranoid auf -1. Die folgenden Flags belassen einzelne Optimierungen stattdessen bei ihren Host-Standardwerten.

--no-tuning

Deaktiviert alle Host-Tuning-Optimierungen.

--aslr

Belässt ASLR aktiviert (Standard: für Benchmarks deaktiviert).

--nmi-watchdog

Belässt den NMI-Watchdog aktiviert (Standard: für Benchmarks deaktiviert).

--smt

Belässt SMT / Hyper-Threading aktiviert (Standard: für Benchmarks deaktiviert).

--turbo

Belässt Turbo Boost aktiviert (Standard: für Benchmarks deaktiviert).

--swappiness <SWAPPINESS>

Setzt den Swappiness-Wert. Standardmäßig wird 10 verwendet.

--governor <GOVERNOR>

Setzt den CPU-Scaling-Governor. Standardmäßig wird performance verwendet.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Setzt den perf_event_paranoid-Wert. Standardmäßig wird -1 verwendet.

--help

Hilfe ausgeben.



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