Linux系统火焰图
Posted 21aspnet
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统火焰图相关的知识,希望对你有一定的参考价值。
CentOS7.8
安装perf
#yum install perf
执行perf
执行perf record 命令,记录该PID的行为
#perf record -a -g -p 14851 -- sleep 30 --30秒后退出
#perf report
安装git
#yum -y install git
下载FlameGraph
#git clone https://github.com/brendangregg/FlameGraph.git
生成火焰图
//生成脚本文件
#perf script -i perf.data &> perf.unfold
#./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
//执行完成后生成perf.svg图片,可以下载到本地,用浏览器打开 perf.svg
#./FlameGraph/flamegraph.pl perf.folded > perf.svg
火焰图是基于 stack 信息生成的 SVG 图片, 用来展示 CPU 的调用栈。
y 轴表示调用栈, 每一层都是一个函数. 调用栈越深, 火焰就越高, 顶部就是正在执行的函数, 下方都是它的父函数.
x 轴表示抽样数, 如果一个函数在 x 轴占据的宽度越宽, 就表示它被抽到的次数多, 即执行的时间长. 注意, x 轴不代表时间, 而是所有的调用栈合并后, 按字母顺序排列的.
火焰图就是看顶层的哪个函数占据的宽度最大. 只要有 “平顶”(plateaus), 就表示该函数可能存在性能问题。
颜色没有特殊含义, 因为火焰图表示的是 CPU 的繁忙程度, 所以一般选择暖色调.
以上是关于Linux系统火焰图的主要内容,如果未能解决你的问题,请参考以下文章