Bencher CLI runner


Бинарный файл runner — это агент, который выполняет benchmark Job на Bare Metal. Это подробный справочник по настройке Self-Hosted Runner. Бинарный файл предоставляет две подкоманды:

  • runner up: Запускает runner, который опрашивает сервер и выполняет benchmark Job.
  • runner run: Загружает Image и запускает его один раз на локальном хосте, для тестирования.

🐰 Бинарный файл runner отличается от подкоманд bencher runner. Бинарный файл runner управляет хостом Runner, тогда как bencher runner управляет ресурсами Runner через REST API.


runner up

Запускает runner, который опрашивает сервер и выполняет benchmark Job. Это долго работающая команда, используемая для работы с Self-Hosted Runner. Runner открывает одно WebSocket-соединение с API-сервером, берёт Job, соответствующие его Spec, выполняет их и сообщает результаты обратно.

runner up [OPTIONS]

Опции

--host <HOST>

API-сервер Bencher, к которому подключаться. По умолчанию используется https://api.bencher.dev. Также может быть задано переменной окружения BENCHER_HOST.

--runner <RUNNER>

UUID или slug Runner, от имени которого работать. Также может быть задано переменной окружения BENCHER_RUNNER.

--key <KEY>

Ключ аутентификации Runner (bencher_runner_...), возвращённый при создании Runner. Также может быть задано переменной окружения BENCHER_RUNNER_KEY.

--poll-timeout <POLL_TIMEOUT>

Тайм-аут длинного опроса в секундах при ожидании Job, от 1 до 900. По умолчанию используется 55.

--danger-allow-no-sandbox

Разрешить выполнение Job без Sandbox. Без этого флага Job, чей Spec не имеет Sandbox, отклоняется во время выполнения. Не изолированные Job выполняются напрямую на хосте, поэтому включайте это только для доверенных нагрузок. Также может быть задано переменной окружения BENCHER_DANGER_ALLOW_NO_SANDBOX.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

Уровень логирования для процесса sandbox. По умолчанию используется warning.

--no-auto-update

Отключить автоматические обновления с сервера. По умолчанию runner обновляет себя между Job, когда сервер предлагает новую версию. Также может быть задано переменной окружения BENCHER_NO_AUTO_UPDATE.

--max-download-size <MAX_DOWNLOAD_SIZE>

Максимальный размер загрузки в байтах для бинарных файлов самообновления. По умолчанию используется 500 MiB. Конфликтует с --no-auto-update.

--max-output-size <MAX_OUTPUT_SIZE>

Максимальный размер в байтах для собираемых stdout и stderr. По умолчанию используется 25 MiB.

--max-file-count <MAX_FILE_COUNT>

Максимальное количество выходных файлов для декодирования. По умолчанию используется 255.

Максимальное количество символических ссылок, по которым следует переходить при разрешении путей, соответствующее ограничению MAXSYMLINKS ядра Linux. По умолчанию используется 40. Используется только в не изолированном режиме.

--grace-period <GRACE_PERIOD>

Льготный период в секундах после завершения бенчмарка перед итоговым сбором вывода.

Тонкая настройка хоста

Перед каждым бенчмарком runner применяет тонкую настройку хоста, чтобы снизить шум измерений. По умолчанию он отключает ASLR, NMI watchdog, SMT / hyper-threading и turbo boost; устанавливает регулятор масштабирования частоты CPU в performance, swappiness в 10, а perf_event_paranoid в -1. Флаги ниже вместо этого оставляют отдельные оптимизации на значениях хоста по умолчанию.

--no-tuning

Отключить все оптимизации тонкой настройки хоста.

--aslr

Оставить ASLR включённым (по умолчанию: отключён для бенчмарков).

--nmi-watchdog

Оставить NMI watchdog включённым (по умолчанию: отключён для бенчмарков).

--smt

Оставить SMT / hyper-threading включённым (по умолчанию: отключён для бенчмарков).

--turbo

Оставить turbo boost включённым (по умолчанию: отключён для бенчмарков).

--swappiness <SWAPPINESS>

Установить значение swappiness. По умолчанию используется 10.

--governor <GOVERNOR>

Установить регулятор масштабирования частоты CPU. По умолчанию используется performance.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Установить значение perf_event_paranoid. По умолчанию используется -1.

--help

Вывести справку.


runner run

Загружает Image, создаёт rootfs и запускает его один раз на локальном хосте. В отличие от runner up, это не подключается к API-серверу и не берёт Job. Команда запускает один Image напрямую, что удобно для тестирования и отладки хоста Runner или Image перед отправкой реальных Job.

runner run --image <IMAGE> [OPTIONS]

Опции

--image <IMAGE>

OCI Image для запуска, в виде локального пути или ссылки на реестр.

--token <TOKEN>

JWT-токен для аутентификации в реестре при загрузке Image.

--sandbox <SANDBOX>

Режим sandbox для выполнения бенчмарка. Используйте firecracker для Firecracker microVM (только Linux). Опустите для не изолированного выполнения на хосте.

--timeout <TIMEOUT>

Тайм-аут выполнения в секундах. По умолчанию используется 300.

--iter <ITER>

Количество итераций бенчмарка для выполнения. По умолчанию используется 1.

--allow-failure

Разрешить сбой бенчмарка без короткого замыкания остальных итераций.

--entrypoint <ENTRYPOINT>

Переопределить точку входа контейнера. Может быть указано несколько раз.

--cmd <CMD>

Переопределить команду контейнера. Может быть указано несколько раз.

--env <ENV>

Задать переменную окружения в формате KEY=VALUE. Может быть указано несколько раз.

--network

Включить сетевой доступ внутри VM.

--output <OUTPUT>

Путь к выходному файлу внутри гостевой системы для сбора. Может быть указано несколько раз.

--vcpus <VCPUS>

Переопределить количество vCPU (для тестирования).

--memory <MEMORY>

Переопределить память в MiB (для тестирования).

--disk <DISK>

Переопределить размер диска в MiB (для тестирования).

--max-output-size <MAX_OUTPUT_SIZE>

Максимальный размер в байтах для собираемых stdout и stderr. По умолчанию используется 25 MiB.

--max-file-count <MAX_FILE_COUNT>

Максимальное количество выходных файлов для декодирования. По умолчанию используется 255.

Максимальное количество символических ссылок, по которым следует переходить при разрешении путей, соответствующее ограничению MAXSYMLINKS ядра Linux. По умолчанию используется 40. Используется только в не изолированном режиме, поэтому конфликтует с --sandbox.

--grace-period <GRACE_PERIOD>

Льготный период в секундах после завершения бенчмарка перед итоговым сбором вывода. По умолчанию используется 1.

--sandbox-log-level <SANDBOX_LOG_LEVEL>

Уровень логирования для процесса sandbox. Требует --sandbox. По умолчанию используется warning.

Тонкая настройка хоста

Перед каждым бенчмарком runner применяет тонкую настройку хоста, чтобы снизить шум измерений. По умолчанию он отключает ASLR, NMI watchdog, SMT / hyper-threading и turbo boost; устанавливает регулятор масштабирования частоты CPU в performance, swappiness в 10, а perf_event_paranoid в -1. Флаги ниже вместо этого оставляют отдельные оптимизации на значениях хоста по умолчанию.

--no-tuning

Отключить все оптимизации тонкой настройки хоста.

--aslr

Оставить ASLR включённым (по умолчанию: отключён для бенчмарков).

--nmi-watchdog

Оставить NMI watchdog включённым (по умолчанию: отключён для бенчмарков).

--smt

Оставить SMT / hyper-threading включённым (по умолчанию: отключён для бенчмарков).

--turbo

Оставить turbo boost включённым (по умолчанию: отключён для бенчмарков).

--swappiness <SWAPPINESS>

Установить значение swappiness. По умолчанию используется 10.

--governor <GOVERNOR>

Установить регулятор масштабирования частоты CPU. По умолчанию используется performance.

--perf-event-paranoid <PERF_EVENT_PARANOID>

Установить значение perf_event_paranoid. По умолчанию используется -1.

--help

Вывести справку.



Published: Fri, June 19, 2026 at 8:00:00 AM UTC