Bare Metal Overview


A maioria das ferramentas de rastreamento de benchmarks só permite executar benchmarks a partir de um único ambiente. Ou você executa seus benchmarks localmente ou os executa no CI. Mesmo que suportem tanto a execução local quanto no CI, você não consegue comparar os resultados entre os dois.

Bencher Bare Metal permite que você tenha o melhor dos dois mundos. Você pode executar benchmarks a partir da sua máquina local e tê-los executados em hardware dedicado, e também pode executar benchmarks a partir do CI e tê-los executados no exato mesmo hardware dedicado. Isso permite que você tenha um ambiente de execução de benchmarks consistente, independentemente de onde os execute.

Bencher Bare Metal é executado em hardware bare metal para eliminar a variabilidade e fornecer resultados de benchmarks mais precisos e confiáveis.

Runner

Um Runner é um executor remoto de benchmarks que é executado em hardware dedicado, bare metal. O Runner consulta o servidor da API do Bencher em busca de Jobs pendentes com base nos seus Specs associados. Uma vez que um Job é reivindicado, o Runner baixa a Image especificada para o Job, descompacta a Image, executa o comando de benchmark e envia os resultados de volta ao servidor da API do Bencher. Apenas um Job é executado por vez para garantir que os benchmarks não sejam afetados por outras cargas de trabalho.

RunnerPlataformaEscopoGerenciado porSandboxAcesso à redePlano
CompartilhadoBencher CloudServidorBencherObrigatórioNãoFree, Team, Enterprise
DedicadoBencher CloudOrganizaçãoBencherOpcionalNãoEnterprise
PersonalizadoBencher CloudOrganizaçãoUsuárioOpcionalOpcionalEnterprise
Self-Hosted ServidorBencher Self-HostedServidorUsuárioOpcionalOpcionalFree, Team, Enterprise
Self-Hosted OrganizaçãoBencher Self-HostedOrganizaçãoUsuárioOpcionalOpcionalEnterprise

Spec

Um Spec é uma especificação de hardware que descreve os recursos disponíveis para um Runner:

  1. Sistema Operacional (SO)
    1. Linux
    2. macOS
    3. Windows
  2. Arquitetura de CPU
    1. x86_64
    2. ARM64
  3. Sandbox
    1. Firecracker microVM
    2. Sem Sandbox
  4. Quantidade de CPUs
  5. Tamanho da memória (RAM)
  6. Tamanho do disco
  7. Acesso à rede

Os Specs têm escopo de servidor ou de organização, de modo que o mesmo Spec pode ser compartilhado entre múltiplos Testbeds no mesmo servidor ou dentro da mesma organização, respectivamente.

A ordem de precedência para selecionar o Spec ao usar bencher run é a seguinte:

  1. A opção --spec
  2. O Spec atribuído ao Testbed
  3. O Spec padrão com escopo de organização
  4. O Spec padrão com escopo de servidor

O Spec selecionado será então atribuído ao Testbed atual.

Sandbox

Um Sandbox é um mecanismo de isolamento que permite a multi-tenância segura em um Runner. Bencher Bare Metal utiliza microVMs Firecracker como a implementação padrão de Sandbox. Executar sem um Sandbox requer um Runner Dedicado ou Personalizado no Bencher Cloud (entre em contato com o suporte Bencher Plus para mais informações) ou Bencher Self-Hosted. Quando um Runner é configurado para usar um Sandbox, cada Job é executado dentro desse Sandbox. Consulte a documentação do runner para uma visão geral completa.

Job

Um Job rastreia o ciclo de vida de uma solicitação de execução remota de benchmark. Um timeout personalizado pode ser solicitado por Job com a opção --job-timeout. No entanto, os seguintes timeouts de Job são sempre aplicados com os limites de concorrência fornecidos:

PlanoTimeout do JobConcorrência de Jobs
Não reivindicado1 minuto1 por IP de origem
Free5 minutos1 por Organização
TeamIlimitado (padrão: 60 minutos)Ilimitada
EnterpriseIlimitado (padrão: 60 minutos)Ilimitada

Consulte a documentação do Job para uma visão geral completa.

Image

Uma Image é uma imagem de contêiner OCI que contém o seu código de benchmark e suas dependências. Quando um Runner executa um Job, ele baixa a Image, descompacta a Image e executa o comando de benchmark especificado no Job. Consulte a documentação da Image para saber como criar uma Image para o seu próprio projeto.

Fluxo de trabalho em hardware dedicado

Bare Metal RunnerAPI ServerOCI RegistryBare Metal RunnerAPI ServerOCI RegistryUserdocker build --tag image:tagdocker push image:tagbencher run --image image:tagCreate pending JobCreate Report linked to JobPoll for Jobs matching SpecsAssign JobPull ImageImage layersUnpack ImageRun benchmark commandSubmit benchmark resultsParse via benchmark harness adapterAttach results to ReportPoll for Job completionCompleted ReportUser

Continue: Subcomando CLI bencher run

🤖 Este documento foi traduzido automaticamente por IA. Pode não ser preciso e pode conter erros. Se você encontrar algum erro, abra um problema no GitHub.


Published: Thu, March 26, 2026 at 6:00:00 AM UTC | Last Updated: Sat, April 4, 2026 at 6:00:00 AM UTC