Bare Metal Overview
Die meisten Benchmark-Tracking-Tools erlauben es Ihnen nur, Benchmarks in einer einzigen Umgebung auszuführen. Entweder führen Sie Ihre Benchmarks lokal aus oder Sie führen sie in CI aus. Selbst wenn sie sowohl lokale als auch CI-Ausführung unterstützen, können Sie die Ergebnisse zwischen den beiden nicht vergleichen.
Bencher Bare Metal bietet Ihnen das Beste aus beiden Welten. Sie können Benchmarks von Ihrem lokalen Rechner aus starten und sie auf dedizierter Hardware ausführen lassen, und Sie können auch Benchmarks aus CI starten und sie auf der exakt gleichen dedizierten Hardware ausführen lassen. So erhalten Sie eine konsistente Benchmark-Ausführungsumgebung, unabhängig davon, wo Sie Ihre Benchmarks starten.
Bencher Bare Metal läuft auf Bare-Metal-Hardware, um Variabilität zu eliminieren und genauere sowie zuverlässigere Benchmark-Ergebnisse zu liefern.
Runner
Ein Runner ist ein entfernter Benchmark-Executor, der auf dedizierter Bare-Metal-Hardware läuft. Der Runner fragt den Bencher API-Server nach ausstehenden Jobs ab, basierend auf seinen zugeordneten Specs. Sobald ein Job beansprucht wird, lädt der Runner das angegebene Image für den Job herunter, entpackt das Image, führt den Benchmark-Befehl aus und sendet die Ergebnisse an den Bencher API-Server zurück. Es wird immer nur ein Job gleichzeitig ausgeführt, um sicherzustellen, dass die Benchmarks nicht von anderen Workloads beeinflusst werden.
| Runner | Plattform | Bereich | Verwaltet von | Sandbox | Netzwerkzugriff | Tarif |
|---|---|---|---|---|---|---|
| Shared | Bencher Cloud | Server | Bencher | Erforderlich | Nein | Free, Team, Enterprise |
| Dedicated | Bencher Cloud | Organisation | Bencher | Optional | Nein | Enterprise |
| Custom | Bencher Cloud | Organisation | Benutzer | Optional | Optional | Enterprise |
| Self-Hosted Server | Bencher Self-Hosted | Server | Benutzer | Optional | Optional | Free, Team, Enterprise |
| Self-Hosted Organisation | Bencher Self-Hosted | Organisation | Benutzer | Optional | Optional | Enterprise |
Spec
Eine Spec ist eine Hardware-Spezifikation, die die einem Runner zur Verfügung stehenden Ressourcen beschreibt:
- Betriebssystem (OS)
- Linux
- macOS
- Windows
- CPU-Architektur
- x86_64
- ARM64
- Sandbox
- Firecracker microVM
- Keine Sandbox
- CPU-Anzahl
- Speichergröße (RAM)
- Festplattengröße
- Netzwerkzugriff
Specs sind entweder server- oder organisationsbezogen, sodass dieselbe Spec auf demselben Server über mehrere Testumgebungen hinweg bzw. innerhalb derselben Organisation geteilt werden kann.
Die Rangfolge für die Auswahl der Spec bei Verwendung von bencher run ist wie folgt:
- Die
--spec-Option - Die der Testumgebung zugewiesene Spec
- Die standardmäßige organisationsbezogene Spec
- Die standardmäßige serverbezogene Spec
Die ausgewählte Spec wird dann der aktuellen Testumgebung zugewiesen.
Sandbox
Eine Sandbox ist ein Isolationsmechanismus, der sicheres Multi-Tenancy auf einem Runner ermöglicht.
Bencher Bare Metal verwendet Firecracker microVMs als Standard-Sandbox-Implementierung.
Der Betrieb ohne Sandbox erfordert einen Dedicated oder Custom Runner auf Bencher Cloud (kontaktieren Sie den Bencher Plus Support für weitere Informationen) oder Bencher Self-Hosted.
Wenn ein Runner für die Verwendung einer Sandbox konfiguriert ist, wird jeder Job innerhalb dieser Sandbox ausgeführt.
Siehe die runner-Dokumentation für eine vollständige Übersicht.
Job
Ein Job verfolgt den Lebenszyklus einer entfernten Benchmark-Ausführungsanfrage.
Ein benutzerdefiniertes Timeout kann pro Job mit der --job-timeout-Option angefordert werden.
Allerdings werden die folgenden Job-Timeouts immer mit den angegebenen Parallelitätslimits durchgesetzt:
| Tarif | Job-Timeout | Job-Parallelität |
|---|---|---|
| Unclaimed | 1 Minute | 1 pro Quell-IP |
| Free | 5 Minuten | 1 pro Organisation |
| Team | Unbegrenzt (Standard: 60 Minuten) | Unbegrenzt |
| Enterprise | Unbegrenzt (Standard: 60 Minuten) | Unbegrenzt |
Siehe die Job-Dokumentation für eine vollständige Übersicht.
Image
Ein Image ist ein OCI-Container-Image, das Ihren Benchmark-Code und seine Abhängigkeiten enthält. Wenn ein Runner einen Job ausführt, lädt er das Image herunter, entpackt das Image und führt den im Job angegebenen Benchmark-Befehl aus. Siehe die Image-Dokumentation für Informationen zur Erstellung eines Images für Ihr eigenes Projekt.