Bencher runner CLI


runner 二进制文件是执行 Bare Metal 基准测试 Job 的代理。 它是设置 Self-Hosted Runner 的深入参考。 该二进制文件提供两个子命令:

  • runner up:启动 runner,轮询并执行基准测试 Job。
  • runner run:拉取 Image 并在本地主机上执行一次,用于测试。

🐰 runner 二进制文件不同于 bencher runner 子命令。 runner 二进制文件操作 Runner 主机,而 bencher runner 通过 REST API 管理 Runner 资源。


runner up

启动 runner,轮询并执行基准测试 Job。 这是用于操作 Self-Hosted Runner 的长时间运行命令。 runner 向 API 服务器打开单个 WebSocket 连接, 认领与其 Spec 匹配的 Job,执行它们,并将结果报告回去。

runner up [OPTIONS]

选项

--host <HOST>

要连接的 Bencher API 服务器。 默认使用 https://api.bencher.dev。 也可以通过 BENCHER_HOST 环境变量设置。

--runner <RUNNER>

要作为其运行的 Runner 的 UUID 或 slug。 也可以通过 BENCHER_RUNNER 环境变量设置。

--key <KEY>

创建 Runner 时返回的 Runner 认证密钥(bencher_runner_...)。 也可以通过 BENCHER_RUNNER_KEY 环境变量设置。

--poll-timeout <POLL_TIMEOUT>

等待 Job 时的长轮询超时(秒),介于 1900 之间。 默认使用 55

--danger-allow-no-sandbox

允许在没有 Sandbox 的情况下执行 Job。 如果没有此标志,其 Spec 没有 Sandbox 的 Job 会在运行时被拒绝。 非沙箱化的 Job 直接在主机上运行,因此仅对受信任的工作负载启用此项。 也可以通过 BENCHER_DANGER_ALLOW_NO_SANDBOX 环境变量设置。

--sandbox-log-level <SANDBOX_LOG_LEVEL>

沙箱进程的日志级别。 默认使用 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>

收集的 stdoutstderr 的最大大小(字节)。 默认使用 25 MiB。

--max-file-count <MAX_FILE_COUNT>

要解码的输出文件的最大数量。 默认使用 255

路径解析期间要跟随的符号链接的最大数量, 与 Linux 内核的 MAXSYMLINKS 限制相匹配。 默认使用 40。 仅在非沙箱化模式下使用。

--grace-period <GRACE_PERIOD>

基准测试退出后、最终输出收集前的宽限期(秒)。

主机调优

在每次基准测试之前,runner 会应用主机调优以减少测量噪声。 默认情况下,它会禁用 ASLR、NMI 看门狗、SMT / 超线程和睿频加速(turbo boost); 将 CPU 调频调速器(governor)设为 performance,swappiness 设为 10perf_event_paranoid 设为 -1。 下面的标志会改为将各项优化保持在其主机默认值。

--no-tuning

禁用所有主机调优优化。

--aslr

保持 ASLR 启用(默认:基准测试时禁用)。

--nmi-watchdog

保持 NMI 看门狗启用(默认:基准测试时禁用)。

--smt

保持 SMT / 超线程启用(默认:基准测试时禁用)。

--turbo

保持睿频加速启用(默认:基准测试时禁用)。

--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,这对于在提交真实 Job 之前测试和调试 Runner 主机 或 Image 很有用。

runner run --image <IMAGE> [OPTIONS]

选项

--image <IMAGE>

要运行的 OCI Image,以本地路径或注册表引用的形式给出。

--token <TOKEN>

拉取 Image 时用于注册表认证的 JWT 令牌。

--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>

guest 内部要收集的输出文件路径。 可以多次指定。

--vcpus <VCPUS>

覆盖 vCPU 数量(用于测试)。

--memory <MEMORY>

覆盖内存(MiB)(用于测试)。

--disk <DISK>

覆盖磁盘大小(MiB)(用于测试)。

--max-output-size <MAX_OUTPUT_SIZE>

收集的 stdoutstderr 的最大大小(字节)。 默认使用 25 MiB。

--max-file-count <MAX_FILE_COUNT>

要解码的输出文件的最大数量。 默认使用 255

路径解析期间要跟随的符号链接的最大数量, 与 Linux 内核的 MAXSYMLINKS 限制相匹配。 默认使用 40。 仅在非沙箱化模式下使用,因此与 --sandbox 冲突。

--grace-period <GRACE_PERIOD>

基准测试退出后、最终输出收集前的宽限期(秒)。 默认使用 1

--sandbox-log-level <SANDBOX_LOG_LEVEL>

沙箱进程的日志级别。 需要 --sandbox。 默认使用 warning

主机调优

在每次基准测试之前,runner 会应用主机调优以减少测量噪声。 默认情况下,它会禁用 ASLR、NMI 看门狗、SMT / 超线程和睿频加速(turbo boost); 将 CPU 调频调速器(governor)设为 performance,swappiness 设为 10perf_event_paranoid 设为 -1。 下面的标志会改为将各项优化保持在其主机默认值。

--no-tuning

禁用所有主机调优优化。

--aslr

保持 ASLR 启用(默认:基准测试时禁用)。

--nmi-watchdog

保持 NMI 看门狗启用(默认:基准测试时禁用)。

--smt

保持 SMT / 超线程启用(默认:基准测试时禁用)。

--turbo

保持睿频加速启用(默认:基准测试时禁用)。

--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