Images auf dedizierter Hardware mit bencher run


Runner auf dedizierter Hardware führen Benchmarks aus, die im OCI-Image-Format verpackt sind. Beim Verwenden des bencher run CLI-Unterbefehls wählen Sie ein Image mit der Option --image, um die entfernte Ausführung auf dedizierter Hardware zu aktivieren.

Beim Kontinuierlichen Benchmarking, d. h. Benchmarking in CI, können Runner auf dedizierter Hardware das Rauschen in Ihren Benchmark-Ergebnissen drastisch reduzieren. Darüber hinaus kann Bencher Bare Metal außerhalb von CI mit exakt denselben Runnern auf dedizierter Hardware ausgeführt werden. Dies ermöglicht es sowohl Entwicklern als auch Agenten, die Leistung ihrer Code-Änderungen zu überprüfen, ohne einen vollständigen CI-Workflow durchlaufen zu müssen. Siehe den Arbeitsablauf auf dedizierter Hardware für eine vollständige Übersicht.

--image <IMAGE>


Legt die OCI-Image-Referenz für die entfernte Ausführung auf einem Runner auf dedizierter Hardware fest (z. B. my-image:tag, registry.bencher.dev/my-image:tag, oder für Bencher Self-Hosted Instanzen localhost:6610/my-image:tag). Es wird nur die OCI-Registry des Bencher API-Servers unterstützt. Wenn --image gesetzt ist, wird der Benchmark-Befehl auf einem entfernten Runner auf dedizierter Hardware anstatt lokal ausgeführt.

--entrypoint <ENTRYPOINT>


Überschreibt den Container-Entrypoint für die Ausführung des Benchmark-Befehls. Diese Option erfordert, dass die Option --image gesetzt ist.

--env <KEY=VALUE>


Setzt Umgebungsvariablen im Format KEY=VALUE. Kann mehrfach angegeben werden. Diese Option erfordert, dass die Option --image gesetzt ist.

--job-timeout <SECONDS>


Legt die maximale Ausführungszeit des Jobs in Sekunden fest. Siehe die Job-Dokumentation für weitere Details. Diese Option erfordert, dass entweder die Option --image oder die Option --job gesetzt ist.

--job-poll-interval <SECONDS>


Legt das Abfrageintervall in Sekunden fest, während auf den Abschluss des Jobs auf dedizierter Hardware gewartet wird. Diese Option erfordert, dass entweder die Option --image oder die Option --job gesetzt ist. Diese Option steht in Konflikt mit der Option --detach.

--detach


Löst nach dem Einreichen des Jobs auf dedizierter Hardware ab, ohne auf dessen Abschluss zu warten. Diese Option erfordert, dass die Option --image gesetzt ist. Diese Option steht in Konflikt mit der Option --job-poll-interval.

--job <UUID>


Optional: Verbindet sich mit einem Job auf dedizierter Hardware. Meistens wird diese Option verwendet, wenn ein separater Aufruf von bencher run bereits das Flag --detach verwendet hat. Mehrere andere Optionen von bencher run werden hier übernommen und funktionieren so, als wäre der Lauf nie abgelöst worden. Damit können Sie mithilfe von Callbacks asynchron auf Jobs auf dedizierter Hardware warten (Webhooks pro Aufruf von bencher run).

Siehe Pull Requests auf dedizierter Hardware für ein Beispiel mit GitHub Actions.

--callback-url <URL>


Optional: Gibt eine Callback-URL für einen abgelösten Job auf dedizierter Hardware an. Die URL muss https verwenden. Die Organisation dieses Projekts muss einen aktiven Bencher Plus-Plan haben.

Um Anfrage-Header anzugeben, verwenden Sie die Option --callback-header. Um den Anfragetext anzugeben, verwenden Sie die Option --callback-body. Andernfalls wird standardmäßig der Antworttext des bencher run API-Endpunkts verwendet.

Diese Option erfordert, dass die Option --image und das Flag --detach gesetzt sind. Diese Option steht in Konflikt mit der Option --github-actions.

--callback-header <NAME: VALUE>


Optional: Fügt der Callback-Anfrage einen Header im Format NAME: VALUE hinzu. Der NAME des Headers darf höchstens 256 Byte groß sein und der VALUE des Headers höchstens 8 KiB. Diese Option kann mehrfach angegeben werden (höchstens 16).

Die folgenden Header werden nicht unterstützt:

  • Connection
  • Content-Length
  • Host
  • Keep-Alive
  • Proxy-Connection
  • TE
  • Trailer
  • Transfer-Encoding
  • Upgrade

Diese Option erfordert, dass die Option --callback-url gesetzt ist.

--callback-body <JSON>


Optional: Legt den JSON-Text der Callback-Anfrage fest. Dieser JSON-Wert kann in einem String jede der folgenden Template-Variablen verwenden:

Variable Expandiert zu Wert
{{ project.uuid }} String Projekt-UUID
{{ project.name }} String Projektname
{{ project.slug }} String Projekt-Slug
{{ report }} Objekt Bericht (höchstens einmal)
{{ report.uuid }} String Berichts-UUID
{{ job.uuid }} String Job-UUID
{{ job.status }} String Endzustand des Jobs: processed, failed oder canceled

Die maximale Größe dieses JSON-Wert-Templates beträgt 64 KiB. Die Template-Expansion erfolgt in einem einzigen Durchgang, und jede unbekannte Template-Variable lässt die Expansion fehlschlagen.

Diese Option erfordert, dass die Option --callback-url gesetzt ist. Wenn die Option --callback-body nicht angegeben ist, wird standardmäßig der Antworttext des bencher run API-Endpunkts ("{{ report }}") verwendet.

Zum Beispiel, um eine Nachricht an einen eingehenden Slack-Webhook zu senden:

Terminal window
bencher run \
--project project-abc4567-wxyz123456789 \
--image project-abc4567-wxyz123456789:latest \
--detach \
--callback-url "$SLACK_WEBHOOK_URL" \
--callback-body '{"text": "{{ project.name }}: Bencher Job {{ job.status }}", "blocks": [{"type": "section", "text": {"type": "mrkdwn", "text": "*{{ project.name }}*: Bencher Job {{ job.status }}\n<https://bencher.dev/console/projects/{{ project.slug }}/reports/{{ report.uuid }}|View the report>"}}]}' \
bencher mock


🐰 Glückwunsch! Sie haben alles über Images auf dedizierter Hardware gelernt! 🎉


Weitermachen: Branches & Startpunkte ➡

🤖 Dieses Dokument wurde automatisch von KI übersetzt. Es ist möglicherweise nicht korrekt und kann Fehler enthalten. Wenn Sie Fehler finden, öffnen Sie bitte ein Problem auf GitHub.


Published: Sun, April 5, 2026 at 6:00:00 AM UTC | Last Updated: Sun, September 27, 2026 at 12:00:00 AM UTC