Perf采集

Perf

1
2
3
4
5
6
7
perf record -e cpu-clock -g -p 2548

-g 选项是告诉perf record额外记录函数的调用关系

-e cpu-clock 指perf record监控的指标为cpu周期

-p 指定需要record的进程pid

程序运行完之后,perf record会生成一个名为perf.data的文件,如果之前已有,那么之前的perf.data文件会被覆盖

获得这个perf.data文件之后,就需要perf report工具进行查看

1
perf report -i perf.data

使用火焰图展示结果

Flame Graph项目位于GitHub上:git clone https://github.com/brendangregg/FlameGraph

以perf为例,看一下flamegraph的使用方法:

  • 第一步

    1
    perf record -e cpu-clock -g -p 28591

    Ctrl+c结束执行后,在当前目录下会生成采样数据perf.data.

  • 第二步

用perf script工具对perf.data进行解析

1
perf script -i perf.data &> perf.unfold
  • 第三步

将perf.unfold中的符号进行折叠:

1
./stackcollapse-perf.pl perf.unfold &> perf.folded
  • 最后生成svg图:
    1
    ./flamegraph.pl perf.folded > perf.svg

Perf采集
http://example.com/2024/03/29/Perf采集/
作者
Liu XinWei
发布于
2024年3月29日
许可协议