我们使用系统命令top即可看到如下类似信息:
Cpu(s): 0.0%us, 0.5%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
说明:
I try to explain these:
us: is meaning of "user CPU time"
sy: is meaning of "system CPU time"
ni: is meaning of" nice CPU time"
id: is meaning of "idle"
wa: is meaning of "iowait"
hi:is meaning of "hardware irq"
si : is meaning of "software irq"
st : is meaning of "steal time"
中文翻译为:
us 用户空间占用CPU百分比
sy 内核空间占用CPU百分比
ni 用户进程空间内改变过优先级的进程占用CPU百分比
id 空闲CPU百分比
wa 等待输入输出的CPU时间百分比
hi 硬件中断
si 软件中断
st: 实时
cpu6、cpu7:仅仅使用用户空间,使用率100%
cpu19:仅仅使用内核空间,使用率100%
如何使用perf top 探究性能?
Perf 内置于Linux 内核源码树中的性能剖析工具。
它基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析。
可用于性能瓶颈的查找与热点代码的定位。
Linux2.6及后续版本都自带该工具,几乎能够处理所有与性能相关的事件。
perf top 是比较常用于展示占用CPU始终最多的函数或者指令,一般以此来查找热点函数。
碰到 CPU 使用率升高的问题,你可以借助 top、pidstat 等工具,确认引发 CPU 性能问题的来源;
再使用 perf 等工具,排查出引起性能问题的具体函数。
perf top查看实时信息
-g:可以查看堆栈调用
-a:查看所有CPU
# perf top -g -p 1234
按?键,输出如下: