perf 与 eBPF/bpftrace
更新时间:2026-10-01。很多新工具(bpftrace/BCC)建立在 eBPF 上,理解边界才不会重复造轮子。
一、各自强项
- perf:硬件 PMU 采样、CPU 热点/调用栈/火焰图成熟直接。
- eBPF:在内核里跑可编程逻辑,对多事件做关联、map 聚合、直方图,按需输出,适合复杂生产追踪和自定义指标。
二、协同
bpftrace 也能消费 perf HW 事件、把数据经 perf buffer 送用户态;常见模式是 perf 快速定位 CPU 热点,bpftrace 深挖内核子系统行为(IO 路径、内核函数时延分布)。

三、常见坑
- 用 perf 硬做复杂多事件关联。
- 低估 eBPF 对内核版本/BTF 的要求。
- 生产上无限制地加探针。
小结
perf 管 PMU 热点、eBPF 管可编程内核聚合,二者共享事件源、互补使用。下一篇 perf 数据归档与报告。
总结
perf 和 eBPF 是现代内核追踪的两半:perf 强在硬件 PMU 采样、CPU 热点/调用栈/火焰图成熟直接;eBPF/bpftrace 强在把可编程逻辑跑进内核、对多个事件做关联、map 聚合和直方图,适合复杂生产追踪和自定义指标。典型协同是用 perf 快速锁定 CPU 热点,再用 bpftrace 深挖内核子系统的时延分布;二者共享 tracepoint/kprobe 事件源、经 perf buffer 互通,但要注意 eBPF 对内核版本/BTF 的要求且生产环境勿无限制加探针。