Быстрый старт Bencher Bare Metal


Что такое Bencher?

Bencher - это набор инструментов для непрерывного тестирования производительности. Когда-нибудь регрессия производительности влияла на ваших пользователей? Bencher мог бы предотвратить это. Bencher позволяет вам обнаруживать и предотвращать регрессии производительности до того, как они будут слиты.

  • Запустить: Запустите свои тесты производительности локально или в CI, используя точно те же самые bare metal раннеры и ваши любимые инструменты для тестирования. CLI bencher оркестрирует запуск ваших тестов производительности на bare metal и сохраняет их результаты.
  • Отслеживать: Отслеживайте результаты ваших тестов производительности со временем. Мониторите, запрашивайте и строите графики результатов с помощью веб-консоли Bencher на основе ветки исходного кода, испытательного стенда и меры.
  • Поймать: Отлавливайте регрессии производительности локально или в CI, используя точно то же самое bare metal оборудование. Bencher использует инструменты аналитики, работающие по последнему слову техники, чтобы обнаружить регрессии производительности, прежде чем они будут слиты.

По тем же причинам, по которым модульные тесты запускаются, чтобы предотвратить регрессии функций, тесты производительности должны быть запущены с Bencher, чтобы предотвратить регрессии производительности. Ошибки производительности – это тоже ошибки!


Установка CLI bencher

Выберите вашу операционную систему и выполните указанную команду для установки CLI bencher. Для получения более подробной информации, смотрите документацию по установке CLI bencher.

Terminal window

Теперь, давайте проверим, что у вас установлен CLI bencher. Выполните:

Terminal window
bencher --version

Вы должны увидеть:

bencher 0.6.2

Создание проекта

Прежде чем вы сможете отправить образ бенчмарка, вам нужен проект Bencher. Самый простой способ его создать — выполнить CLI-подкоманду bencher run с подкомандой bencher mock. Выполните:

Terminal window
bencher run "bencher mock --count 0"

Это создаст новый проект на Bencher Cloud. Обратите внимание на URL View report в выводе. Slug вашего проекта — это сегмент пути после /perf/ в URL. Например, если URL выглядит так:

https://bencher.dev/perf/my-project-abc1234/reports/709d3476-51a4-4939-9584-75d9a2c04c54

тогда slug вашего проекта — my-project-abc1234. Этот slug проекта понадобится вам на следующих шагах.


Отправка образа бенчмарка

Bencher Bare Metal запускает бенчмарки, упакованные как OCI-образы контейнеров, на выделенном оборудовании. Для этого быстрого старта мы будем использовать Docker-образ CLI bencher в качестве образа бенчмарка. Пользовательский образ не требуется.

Сначала загрузите образ CLI bencher из GitHub Container Registry. Выполните:

Terminal window
docker pull --platform linux/amd64 ghcr.io/bencherdev/bencher:latest

Затем перетегируйте образ для OCI-реестра Bencher. Замените YOUR_PROJECT_SLUG на slug проекта из предыдущего шага:

Terminal window
docker tag ghcr.io/bencherdev/bencher:latest registry.bencher.dev/YOUR_PROJECT_SLUG:latest

После этого войдите в OCI-реестр Bencher и отправьте образ:

Terminal window
docker login registry.bencher.dev
Terminal window
docker push registry.bencher.dev/YOUR_PROJECT_SLUG:latest

Для получения подробной информации о создании собственного пользовательского образа смотрите документацию по образам.


Отслеживание бенчмарков Bare Metal

Теперь вы готовы отслеживать результаты бенчмарков на выделенном оборудовании! Для этого вы будете использовать CLI-подкоманду bencher run, чтобы запустить бенчмарки и собрать результаты. Замените YOUR_PROJECT_SLUG на slug проекта из предыдущих шагов и выполните:

Terminal window
bencher run --project YOUR_PROJECT_SLUG --image YOUR_PROJECT_SLUG:latest noise --format json

Мы используем подкоманду bencher noise в качестве команды бенчмарка для генерации примеров данных. Она измеряет, насколько шумным является ваше окружение бенчмарка. Когда мы используем опцию --format json, результаты выводятся в Bencher Metric Format (BMF). Если всё работает как ожидается, конец вывода должен выглядеть примерно так:

View report: https://bencher.dev/perf/project-abc4567-wxyz123456789/reports/29d61b7c-5d80-4ac2-a118-f80bc5de431b
View results:
- bencher::noise::cache_jitter (Cache Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=6bed122a-b0d1-42e6-93c1-8736a910ec9c&measures=fdee350f-f53a-44bc-af7c-2f4c51415ea8&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b
- bencher::noise::composite (Noise Score): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=a5d0aea8-666f-4554-958a-9ad8acf1a20d&measures=995e8a26-58ee-46c4-8ce7-d0162b7d9d86&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b
- bencher::noise::compute_jitter (Compute Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=489b1d60-5dbd-43cd-bb96-ba50bcba648a&measures=8b715d47-ed42-4ac5-a380-4fe4143aa159&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b
- bencher::noise::io_jitter (I/O Jitter): https://bencher.dev/perf/project-abc4567-wxyz123456789?branches=88d5192d-5cd1-47c6-a817-056e5968737c&heads=657a8ee9-1f30-49d4-bd9b-ceed02576d7e&testbeds=f3a5db46-a57e-4caf-b96e-f0c1111eaa67&benchmarks=0a3da391-2fe3-40ec-8a10-983e81231af8&measures=b34f6fd4-60ff-4866-a7a4-60396aab976a&start_time=1741390156000&end_time=1743982156000&report=29d61b7c-5d80-4ac2-a118-f80bc5de431b
Claim this project: https://bencher.dev/auth/signup?claim=d4b0cd5a-8422-40af-9872-8e18d5d062c4

Теперь вы можете просмотреть результаты каждого из ваших бенчмарков в браузере. Нажмите или скопируйте ссылки из View results. Чтобы заявить права на эти результаты, нажмите или скопируйте ссылку Claim this project в свой браузер.



🐰 Поздравляем! Вы отследили свои первые результаты бенчмарков Bare Metal! 🎉


Продолжайте: как заявить проект ➡

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


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