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 时的长轮询超时(秒),介于 1 和 900 之间。
默认使用 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>
收集的 stdout 和 stderr 的最大大小(字节)。
默认使用 25 MiB。
--max-file-count <MAX_FILE_COUNT>
要解码的输出文件的最大数量。
默认使用 255。
--max-symlinks <MAX_SYMLINKS>
路径解析期间要跟随的符号链接的最大数量,
与 Linux 内核的 MAXSYMLINKS 限制相匹配。
默认使用 40。
仅在非沙箱化模式下使用。
--grace-period <GRACE_PERIOD>
基准测试退出后、最终输出收集前的宽限期(秒)。
主机调优
在每次基准测试之前,runner 会应用主机调优以减少测量噪声。
默认情况下,它会禁用 ASLR、NMI 看门狗、SMT / 超线程和睿频加速(turbo boost);
将 CPU 调频调速器(governor)设为 performance,swappiness 设为 10,perf_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>
收集的 stdout 和 stderr 的最大大小(字节)。
默认使用 25 MiB。
--max-file-count <MAX_FILE_COUNT>
要解码的输出文件的最大数量。
默认使用 255。
--max-symlinks <MAX_SYMLINKS>
路径解析期间要跟随的符号链接的最大数量,
与 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 设为 10,perf_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
打印帮助。