perf性能分析工具介绍

Perf

perf 命令(performance 的缩写),是Linux系统提供的性能分析工具集,包含多种子工具,能够监测多种硬件及软件性能指标,包括cpu、内存、io等,这些可监测指标我们称为event。

Brendan Gregg的perf-tools中总结了perf 支持的event结构图,详情可见:

结构图

模式

计数模式

将会精确统计一段时间内 CPU 相关硬件计数器数值的变化。为了统计用户感兴趣的事件,Perf Tool 将设置性能控制相关的寄存器。这些寄存器的值将在监控周期结束后被读出。

计数模式

采样模式

在perf执行过程中,按照指定频率去采样event,每次采样时,记录当前性能指标信息(cpu、进程id、运行栈等)。这种方式由于每次都记录信息,所以额外的资源消耗是比较大的,需要权衡一下采样频率。

采样模式

安装

1
sudo apt install linux-tools-common linux-tools-generic

命令行参数

list

1
perf list

查看当前系统支持的性能事件。

top

1
perf top

类似top命令,主要用于实时分析各个函数在某个性能事件上的热度,能够快速的定位热点函数,包括应用程序函数、模块函数与内核函数,甚至能够定位到热点指令。

执行需要root权限。

stat

1
perf stat

用于统计event出现的次数

record

1
perf record

采样模式,perf收集采样信息并记录在文件中,可以离线分析。使用下面的 perf report解析收集的采样数据文件。

采样一段时间,可以使用ctrl+c停止命令,这时会生成 perf.data 文件(默认文件名)

report

1
perf report

主要用来分析上面perf record生成的perf.data文件。


perf性能分析工具介绍
https://feater.top/linux/intro-of-perf/
作者
JackeyLea
发布于
2024年3月25日
许可协议