perf 安装与版本匹配
更新时间:2026-10-01。perf 最常见的“不能用”不是没装,而是工具版本和内核对不上。
一、版本耦合
perf 既是用户态工具也依赖内核 perf_events 能力,二者版本应一致:Debian/Ubuntu 装 linux-tools-$(uname -r),RHEL 系装 perf 随内核包。内核升级启动新内核后,旧 linux-tools 可能缺新事件或直接报错。
二、容器与自编译
容器内的 perf 实际对接宿主内核,要匹配宿主版本而非容器镜像内核。需要最新特性可从内核源码 tools/perf 编译(备齐 elfutils、slang、trace 等开发包),用 perf --version、perf list 验证。
三、常见坑
- 装了通用 linux-tools 但当前内核无对应版本。
- 升级内核没换 tools。
- 容器里按镜像内核装 perf。
- 编译缺依赖导致部分功能被静默禁用(编译末尾会列出 disabled features)。
小结
perf 版本要与实际运行的内核一致,容器看宿主;自编译注意依赖与功能清单。下一篇 事件命名与 raw event。
总结
perf 用户态工具与内核 perf_events 版本必须一致:按内核装对应 linux-tools/perf,升级内核后要同步更新;事件缺失或报错先查版本匹配与 perf_event_paranoid。