Bare Metal Overview
La plupart des outils de suivi de benchmarks ne vous permettent dâexĂ©cuter des benchmarks quâĂ partir dâun seul environnement. Soit vous exĂ©cutez vos benchmarks localement, soit vous les exĂ©cutez en CI. MĂȘme sâils prennent en charge Ă la fois lâexĂ©cution locale et en CI, vous ne pouvez pas comparer les rĂ©sultats entre les deux.
Bencher Bare Metal vous permet dâavoir le meilleur des deux mondes. Vous pouvez exĂ©cuter des benchmarks depuis votre machine locale et les faire exĂ©cuter sur du matĂ©riel dĂ©diĂ©, et vous pouvez Ă©galement exĂ©cuter des benchmarks depuis la CI et les faire exĂ©cuter sur le mĂȘme matĂ©riel dĂ©diĂ©. Cela vous permet dâavoir un environnement dâexĂ©cution de benchmarks cohĂ©rent, quel que soit lâendroit oĂč vous exĂ©cutez vos benchmarks.
Bencher Bare Metal fonctionne sur du matériel bare metal pour éliminer la variabilité et fournir des résultats de benchmarks plus précis et fiables.
Runner
Un Runner est un exĂ©cuteur de benchmarks distant qui fonctionne sur du matĂ©riel dĂ©diĂ©, bare metal. Le Runner interroge le serveur API de Bencher pour les Jobs en attente en fonction de ses Specs associĂ©es. Une fois quâun Job est rĂ©clamĂ©, le Runner rĂ©cupĂšre lâImage spĂ©cifiĂ©e pour le Job, dĂ©compresse lâImage, exĂ©cute la commande de benchmark et renvoie les rĂ©sultats au serveur API de Bencher. Un seul Job est exĂ©cutĂ© Ă la fois pour garantir que les benchmarks ne sont pas affectĂ©s par dâautres charges de travail.
| Runner | Plateforme | Portée | Géré par | Sandbox | AccÚs réseau | Niveau |
|---|---|---|---|---|---|---|
| Shared | Bencher Cloud | Serveur | Bencher | Requis | Non | Free, Team, Enterprise |
| Dedicated | Bencher Cloud | Organisation | Bencher | Optionnel | Non | Enterprise |
| Custom | Bencher Cloud | Organisation | Utilisateur | Optionnel | Optionnel | Enterprise |
| Self-Hosted Server | Bencher Self-Hosted | Serveur | Utilisateur | Optionnel | Optionnel | Free, Team, Enterprise |
| Self-Hosted Organization | Bencher Self-Hosted | Organisation | Utilisateur | Optionnel | Optionnel | Enterprise |
Spec
Une Spec est une spécification matérielle qui décrit les ressources disponibles pour un Runner :
- SystĂšme dâexploitation (OS)
- Linux
- macOS
- Windows
- Architecture CPU
- x86_64
- ARM64
- Sandbox
- Firecracker microVM
- Pas de Sandbox
- Nombre de CPU
- Taille de la mémoire (RAM)
- Taille du disque
- AccÚs réseau
Les Specs ont une portĂ©e serveur ou organisation, de sorte que la mĂȘme Spec peut ĂȘtre partagĂ©e entre plusieurs Testbeds sur le mĂȘme serveur ou au sein de la mĂȘme organisation respectivement.
Lâordre de prioritĂ© pour la sĂ©lection de la Spec lors de lâutilisation de bencher run est le suivant :
- Lâoption
--spec - La Spec assignée au Testbed
- La Spec par dĂ©faut au niveau de lâorganisation
- La Spec par défaut au niveau du serveur
La Spec sélectionnée sera alors assignée au Testbed courant.
Sandbox
Un Sandbox est un mĂ©canisme dâisolation qui permet une multi-location sĂ©curisĂ©e sur un Runner.
Bencher Bare Metal utilise les microVMs Firecracker comme implémentation de Sandbox par défaut.
LâexĂ©cution sans Sandbox nĂ©cessite un Runner Dedicated ou Custom sur Bencher Cloud (contactez le support Bencher Plus pour plus dâinformations) ou Bencher Self-Hosted.
Lorsquâun Runner est configurĂ© pour utiliser un Sandbox, chaque Job est exĂ©cutĂ© au sein de ce Sandbox.
Consultez la documentation du runner pour un aperçu complet.
Job
Un Job suit le cycle de vie dâune demande dâexĂ©cution de benchmark Ă distance.
Un dĂ©lai dâexpiration personnalisĂ© peut ĂȘtre demandĂ© par Job avec lâoption --job-timeout.
Cependant, les dĂ©lais dâexpiration de Job suivants sont toujours appliquĂ©s avec les limites de concurrence fournies :
| Niveau | DĂ©lai dâexpiration du Job | Concurrence des Jobs |
|---|---|---|
| Unclaimed | 1 minute | 1 par IP source |
| Free | 5 minutes | 1 par Organisation |
| Team | Illimité (par défaut : 60 minutes) | Illimitée |
| Enterprise | Illimité (par défaut : 60 minutes) | Illimitée |
Consultez la documentation du Job pour un aperçu complet.
Image
Une Image est une image de conteneur OCI qui contient votre code de benchmark et ses dĂ©pendances. Lorsquâun Runner exĂ©cute un Job, il rĂ©cupĂšre lâImage, dĂ©compresse lâImage et exĂ©cute la commande de benchmark spĂ©cifiĂ©e dans le Job. Consultez la documentation de lâImage pour savoir comment crĂ©er une Image pour votre propre projet.