用 perf top 实时分析 CPU 热点

实时查看整个系统中是哪些函数和内核路径在消耗 CPU。

Linux性能分析perf 性能分析性能CPU中风险
运行 sudo perf top 实时观察最热的函数,或用 sudo perf top -p PID 只分析某个进程;按 e 可展开进程看到函数明细。

01命令

命令
$ sudo perf top

02作用说明

perf top 每秒对 CPU 指令位置采样数千次,实时显示采样次数最多的函数排行——方括号里的是内核代码,其余是用户态代码及其所在库。它直接回答"现在谁在吃 CPU",而 htop 只能看到进程这一层。想留下更深入的分析,用 perf record -g 命令运行程序,再用 perf report 查看调用图。

03风险

风险中风险
使用条件linux-tools / perf package; kernel.perf_event_paranoid low enough (sysctl kernel.perf_event_paranoid=1 or run with sudo); debug symbols for readable names.
!注意: perf 需要访问内核计数器:如果报 'Permission error',把 kernel.perf_event_paranoid 调低(如 sudo sysctl kernel.perf_event_paranoid=1)或直接用 sudo。缺少调试符号时 C++/Rust 函数会显示为地址——安装对应应用的 -dbg/-debuginfo 包。采样本身有开销,满载机器上会略有拖慢。

04撤销

✓无需撤销——该命令不会改变持久状态。

05来源

  • perf-top(1) - profile a system in realtime
    Ubuntu Manpages · community · 2026-09-17
    依据: perf top live-profiles the whole system or a single process (-p PID) and displays the hottest functions by CPU samples.
  • Linux perf Examples — Brendan Gregg
    brendangregg.com · technical · 2026-09-17
    依据: perf top shows live CPU functions; perf record/report for saved profiles; perf_event_paranoid governs unprivileged access.

最后验证: 2026-09-18 · 分类: 开发者

06相关方案