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 denbencher runner-Unterbefehlen. Dasrunner-Binary betreibt einen Runner-Host, währendbencher runnerRunner-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.
--max-symlinks <MAX_SYMLINKS>
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.
--max-symlinks <MAX_SYMLINKS>
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.