Perf性能分析工具介绍
Perf
perf 命令(performance 的缩写),是Linux系统提供的性能分析工具集,包含多种子工具,能够监测多种硬件及软件性能指标,包括cpu、内存、io等,这些可监测指标我们称为event。
Brendan Gregg的perf-tools中总结了perf 支持的event结构图,详情可见:
模式
计数模式
将会精确统计一段时间内 CPU 相关硬件计数器数值的变化。为了统计用户感兴趣的事件,Perf Tool 将设置性能控制相关的寄存器。这些寄存器的值将在监控周期结束后被读出。
采样模式
在perf执行过程中,按照指定频率去采样event,每次采样时,记录当前性能指标信息(cpu、进程id、运行栈等)。这种方式由于每次都记录信息,所以额外的资源消耗是比较大的,需要权衡一下采样频率。
安装
1 |
|
命令行参数
list
1 |
|
查看当前系统支持的性能事件。
top
1 |
|
类似top命令,主要用于实时分析各个函数在某个性能事件上的热度,能够快速的定位热点函数,包括应用程序函数、模块函数与内核函数,甚至能够定位到热点指令。
执行需要root权限。
stat
1 |
|
用于统计event出现的次数
record
1 |
|
采样模式,perf收集采样信息并记录在文件中,可以离线分析。使用下面的 perf report解析收集的采样数据文件。
采样一段时间,可以使用ctrl+c停止命令,这时会生成 perf.data
文件(默认文件名)
report
1 |
|
主要用来分析上面perf record生成的perf.data文件。
Perf性能分析工具介绍
https://blog.jackeylea.com/linux/intro-of-perf/