Bare Metal Overview


Большинство инструментов для отслеживания бенчмарков позволяют запускать бенчмарки только из одной среды. Вы либо запускаете бенчмарки локально, либо запускаете их в CI. Даже если они поддерживают и локальное выполнение, и выполнение в CI, вы не можете сравнивать результаты между ними.

Bencher Bare Metal позволяет получить лучшее из обоих миров. Вы можете запускать бенчмарки с локальной машины и выполнять их на выделенном оборудовании, а также запускать бенчмарки из CI и выполнять их на точно том же выделенном оборудовании. Это позволяет иметь согласованную среду выполнения бенчмарков независимо от того, откуда вы их запускаете.

Bencher Bare Metal работает на оборудовании bare metal, чтобы исключить вариативность и обеспечить более точные и надёжные результаты бенчмарков.

Runner

Runner — это удалённый исполнитель бенчмарков, работающий на выделенном оборудовании bare metal. Runner опрашивает API-сервер Bencher на наличие ожидающих Job на основе связанных с ним Spec. Как только Job принят, Runner загружает указанный для Job Image, распаковывает Image, выполняет команду бенчмарка и отправляет результаты обратно на API-сервер Bencher. В каждый момент времени выполняется только один Job, чтобы гарантировать, что бенчмарки не подвержены влиянию других рабочих нагрузок.

RunnerПлатформаОбластьУправляетсяSandboxДоступ к сетиТарифный план
SharedBencher CloudСерверBencherОбязателенНетFree, Team, Enterprise
DedicatedBencher CloudОрганизацияBencherОпционаленНетEnterprise
CustomBencher CloudОрганизацияПользовательОпционаленОпционаленEnterprise
Self-Hosted ServerBencher Self-HostedСерверПользовательОпционаленОпционаленFree, Team, Enterprise
Self-Hosted OrganizationBencher Self-HostedОрганизацияПользовательОпционаленОпционаленEnterprise

Spec

Spec — это спецификация оборудования, описывающая ресурсы, доступные Runner:

  1. Операционная система (ОС)
    1. Linux
    2. macOS
    3. Windows
  2. Архитектура процессора
    1. x86_64
    2. ARM64
  3. Sandbox
    1. Firecracker microVM
    2. Без Sandbox
  4. Количество ядер процессора
  5. Объём памяти (RAM)
  6. Размер диска
  7. Доступ к сети

Spec имеют область действия либо на уровне сервера, либо на уровне организации, поэтому один и тот же Spec может использоваться несколькими Testbed на одном сервере или в одной организации соответственно.

Порядок приоритета при выборе Spec при использовании bencher run следующий:

  1. Опция --spec
  2. Spec, назначенный Testbed
  3. Spec по умолчанию на уровне организации
  4. Spec по умолчанию на уровне сервера

Выбранный Spec будет затем назначен текущему Testbed.

Sandbox

Sandbox — это механизм изоляции, обеспечивающий безопасную мультитенантность на Runner. Bencher Bare Metal использует микровиртуальные машины Firecracker microVM в качестве реализации Sandbox по умолчанию. Работа без Sandbox требует Dedicated или Custom Runner на Bencher Cloud (свяжитесь с поддержкой Bencher Plus для получения дополнительной информации) или Bencher Self-Hosted. Когда Runner настроен на использование Sandbox, каждый Job выполняется внутри этого Sandbox. Смотрите документацию runner для полного обзора.

Job

Job отслеживает жизненный цикл запроса на удалённое выполнение бенчмарка. Для каждого Job можно задать пользовательский тайм-аут с помощью опции --job-timeout. Однако следующие тайм-ауты Job и лимиты параллелизма всегда применяются:

Тарифный планТайм-аут JobПараллелизм Job
Unclaimed1 минута1 на исходный IP
Free5 минут1 на Организацию
TeamБез ограничений (по умолчанию: 60 минут)Неограничено
EnterpriseБез ограничений (по умолчанию: 60 минут)Неограничено

Смотрите документацию Job для полного обзора.

Image

Image — это OCI-образ контейнера, содержащий ваш код бенчмарка и его зависимости. Когда Runner выполняет Job, он загружает Image, распаковывает Image и выполняет команду бенчмарка, указанную в Job. Смотрите документацию Image для получения информации о создании Image для вашего проекта.

Рабочий процесс на выделенном оборудовании

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

Продолжить: CLI-подкоманда bencher run

🤖 Этот документ был автоматически переведён с помощью ИИ. Он может быть неточным и содержать ошибки. Если вы обнаружите какие-либо ошибки, откройте проблему на GitHub.


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