eBPF Probe Overhead Budget
根据实测事件速率估算 eBPF probe 消耗的 CPU 核心当量,并与用户设定的 CPU 预算比较。这是规划模型;应在目标内核和工作负载上测量 probe 开销。
结果
预计占用的 CPU 核心
占可用 CPU 的比例
设定的 CPU 预算
剩余 CPU 预算(负数表示超出预算)
预算内每个事件最多 probe 数
使用方法 工具
- 输入事件速率,以及每个事件会执行的 eBPF probe 数量。
- 输入每个 probe 的实测平均开销(微秒)、可用 CPU 核心数,以及用于 instrumentation 的 CPU 百分比预算。
- 查看预计核心占用、预算余量,以及预算内每个事件可容纳的最大整数 probe 数。
假设条件
- 将 probe 成本视为每个事件固定的平均值;不计方差、尾延迟、map 争用、verifier 成本、上下文切换、JIT 行为及 probe 间交互。
- 实测开销和事件速率必须代表相同内核、硬件、事件路径及接近生产的工作负载。
- CPU 百分比预算由用户选择;本工具不建议生产环境限制。
技术细节:字段含义
- 每秒事件数
eventRatePerSecond - 每秒产生的实测或预期事件数。
- 每个事件执行的 eBPF probe 数
probesPerEvent - 每个事件执行的 probe 数量,按整数 probe 数输入。
- Measured eBPF probe overhead
overheadPerProbeUs - 在目标内核和代表性工作负载上测得的单个 probe 平均执行开销,单位为微秒。
- 可用 CPU 核心数
availableCpuCores - 该工作负载可用的 CPU 核心数,用于计算百分比和预算。
- Probe 的 CPU 预算
cpuBudgetPercent - 为这些 probe 预留的可用 CPU 核心最大比例;这是用户设定的预算,并非安全默认值。
方法说明
CPU 核心占用 = 每秒事件数 × 每事件 probe 数 × 每个 probe 微秒数 ÷ 1,000,000。CPU 预算核心数 = 可用核心数 × 预算百分比。每事件最大整数 probe 数 = floor(预算核心数 × 1,000,000 ÷ (事件速率 × 每个 probe 微秒数))。
计算示例
每秒 400,000 个事件,每个事件执行两个 probe
输入项: 每秒事件数: 400000 events/s, 每个事件执行的 eBPF probe 数: 2 probes/event, Measured eBPF probe overhead: 4 µs, 可用 CPU 核心数: 16 cores, Probe 的 CPU 预算: 10%
结果: 预计占用 3.2 个 CPU 核心(16 个核心的 20%)。10% 预算为 1.6 个核心,因此该配置超出 1.6 个核心;按此简化预算计算,每个事件执行一个 probe 可以满足预算。
实用指南
- 使用生产中将运行的相同事件类型、挂载点、内核版本、maps 和 probe 程序体测量开销。
- 将此估算与延迟和事件丢失测量结合使用;平均 CPU 不能说明尾部影响。
常见错误
- 用空 probe 的微基准开销代表会读取 maps、复制数据或发出事件的 probe。
- 按事件速率计算时,忘记每个事件可能执行多个 probe。
常见问题
eBPF probe 开销总是固定的吗?
不是。本计算器假设每个事件的平均开销固定。实际成本会随程序工作、内核路径、map 访问、争用和负载而变化。
CPU 预算百分比来自 Kubernetes 或 Linux 吗?
不是。这是由你选择的规划阈值;计算器不会读取 cgroups、Kubernetes 限制或主机遥测。
上次审核: 2026-10-18
这是简单的平均 CPU 预算模型;不会预测延迟、perf-event 丢失、内核调度、verifier 是否接受、eBPF map 压力或生产安全性。
此工具 根据上述假设提供参考估算值。
主题和工具偏好设置,以及已保存和最近使用的列表仅存储在此浏览器中。