使用 bencher run 的 Testbeds & Specs


Testbed 是运行报告时使用的测试环境的名称。 使用 bencher run CLI 子命令时, 通过 --testbed 选项或 BENCHER_TESTBED 环境变量选择一个 Testbed。 如果两者都未指定,将根据主机操作系统默认使用 LinuxmacOSWindows。 如果 bencher CLI 已为不同的操作系统编译,则使用 localhost

当 Testbed 用于裸机基准测试时,将为其分配一个 Spec。 在裸机基准测试期间,如果 --testbed 选项和 BENCHER_TESTBED 环境变量都未设置,则使用 Spec 的名称。 创建报告时,Testbed 当时的当前 Spec 会被记录到报告中。 阈值只使用来自相同 Testbed 和 Spec 的结果。 这使您可以追踪基准测试结果与底层硬件之间的关系, 即使 Testbed 的 Spec 随时间发生变化。 使用 --spec 选项设置或更新 Testbed 的 Spec, 或使用 --spec-reset 标志将其清除。

--testbed <TESTBED>


可以通过 --testbed 选项或者 BENCHER_TESTBED 环境变量设定 测试平台 的名称、slug 或 UUID。 如果指定的值是名称或 slug 且测试平台不存在,它将为您创建。 然而,如果指定的值是 UUID,则测试平台必须已经存在。 如果同时指定了这两个选项,--testbed 选项优先于 BENCHER_TESTBED 环境变量。 如果两者都未指定,则基于主机操作系统,默认使用 LinuxmacOSWindows。 如果 bencher CLI 被编译用于其他操作系统,则默认使用 localhost 作为测试平台。

--spec <SPEC>


指定 Spec 的 slug 或 UUID。 Spec 是一种硬件规范,描述了 Runner 可用的资源:

  1. 操作系统 (OS)
    1. Linux
    2. macOS
    3. Windows
  2. CPU 架构
    1. x86_64
    2. ARM64
  3. Sandbox
    1. Firecracker microVM
    2. 无 Sandbox
  4. CPU 数量
  5. 内存大小 (RAM)
  6. 磁盘大小
  7. 网络访问

Spec 可以是服务器级别的或组织级别的, 因此同一 Spec 可以在同一服务器上的多个 Testbed 之间或在同一组织内共享。

以下 Spec 目前在 Bencher Cloud 上可用于按需 Runner

名称 Slug OS 架构 Sandbox CPU 内存 磁盘 网络
Intel v1 intel-v1 Linux x86_64 Firecracker 4 48.0 GiB 128.0 GiB

使用 bencher run 时选择 Spec 的优先级顺序如下:

  1. --spec 选项
  2. 分配给 Testbed 的 Spec
  3. 默认的组织级别 Spec
  4. 默认的服务器级别 Spec

所选的 Spec 将分配给当前的 Testbed。 此选项要求设置 --image 选项

--spec-reset


重置 TestbedSpec,移除其硬件规格。 提交运行时,这将清除与 Testbed 关联的 spec。 需要 --testbed 选项。 与 --image 选项 冲突。


🐰 恭喜!您已经学会了所有关于 Testbeds & Specs 的知识!🎉


继续前进:阈值和警告 ➡

🤖 该文档由 AI 自动翻译。 它可能不准确并且可能包含错误。 如果您发现任何错误,请在 GitHub 上提出问题.


Published: Fri, April 10, 2026 at 6:00:00 AM UTC