tracepoint 与 perf script
更新时间:2026-10-01。标准 report 满足不了时,可把原始事件导出脚本化,做任意关联分析。
一、tracepoint
内核在关键路径预置静态 tracepoint(调度、syscall、块 IO、网络等),位置和字段稳定。perf list 'tracepoint' 可列,格式定义在 tracing events 的 format 文件。
二、perf script
perf record -e <tracepoint> 后 perf script 打印每条事件的字段与调用栈,可管道到脚本;也支持内嵌 Perl/Python 脚本直接消费。典型用法是配对“开始/结束”事件算延迟分布(如 IO 提交到完成)。

三、常见坑
- 字段名/单位理解错。
- 缺少结束事件,无法配对。
- 数据量太大不先过滤。
小结
tracepoint 提供稳定带字段事件,perf script 把它们导出做自定义关联,是标准视图之外的灵活分析手段。下一篇 perf diff 性能回归。
总结
内核在调度、syscall、块 IO、网络等关键路径预置了位置和字段都稳定的静态 tracepoint;perf record -e 采集后用 perf script 打印每条事件的字段与调用栈,管道交给 awk/Python 或内嵌脚本,即可做标准 report 给不出的任意自定义统计——典型是配对“开始/结束”事件算延迟分布(如 IO 提交到完成)和跨事件关联;注意先核对字段名与单位、保证有可配对的结束事件、数据量大时先过滤。