L

Linux Perf火焰图生成

椰子ya Linux 2024-06-08

Linux Perf火焰图生成

1、安装perf

yum -y install perf

2、下载火焰图生成工具

git clone https://github.com/brendangregg/FlameGraph.git

3、收集数据

这条命令使用了 perf 工具来记录进程 ID 为 1847 的应用程序在 30 秒内的性能数据,并以每秒 100 次的频率进行采样,同时也记录了调用图。让我解释一下各个参数的含义:

  • perf record: 这个命令用于启动 perf 工具并开始记录性能数据。
  • -F 100: 这个参数指定了每秒钟采样的次数,即采样频率为 100Hz,也就是每秒钟会对目标进程进行 100 次采样。
  • -p 1847: 这个参数指定了要监视的进程的进程 ID(PID)。在这个例子中,PID 为 1847 的进程会被监视。
  • -g: 这个参数表示记录调用图(Call Graph),也就是记录每个采样时的函数调用堆栈信息,以便后续生成火焰图。
  • -- sleep 30: 这个部分是指在 perf record 命令后面运行 sleep 30 命令,即持续 30 秒,然后 perf 工具会在这个期间记录性能数据。

总之,这条命令的作用是在 30 秒内以每秒 100 次的频率记录进程 ID 为 1847 的应用程序的性能数据,并记录调用图。

  1. 针对某个进程

    perf record -F 100 -p 1847 -g -- sleep 30
  2. 针对所有进程

    perf record -F 100  -g -- sleep 30

4、生成火焰图

  1. 生成折叠的堆栈信息

    这个命令将 perf script 的输出通过 stackcollapse-perf.pl 脚本进行处理,并将结果保存到 folded.stacks 文件中。请确保 folded.stacks 文件中包含了正确的折叠堆栈信息。
    perf script -i perf.data | /root/FlameGraph-master/stackcollapse-perf.pl > folded.stacks
  2. 生成火焰图

    /root/FlameGraph-master/flamegraph.pl folded.stacks > output.svg

5、浏览器打开

PREV
nslookup解析scanip
NEXT
非telnet测试端口