安裝perf和可視化生成器
[root@localhost heweiwei]# yum install perf -y
[root@localhost heweiwei]# git clone https://github.com/brendangregg/FlameGraph.git
perf 采集數(shù)據(jù)
[root@localhost heweiwei]# perf record -F99-p3887-g -- sleep 30
生成火焰圖
[root@localhost heweiwei]# perf script -i perf.data &> perf.unfold
[root@localhost heweiwei]# ./FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded
[root@localhost heweiwei]# ./FlameGraph/flamegraph.pl perf.folded > perf.svg
可用瀏覽器打開 perf.svg
火焰圖的含義
火焰圖是基于 stack 信息生成的 SVG 圖片, 用來展示 CPU 的調(diào)用棧拴袭。
y 軸表示調(diào)用棧, 每一層都是一個(gè)函數(shù). 調(diào)用棧越深, 火焰就越高, 頂部就是正在執(zhí)行的函數(shù), 下方都是它的父函數(shù).
x 軸表示抽樣數(shù), 如果一個(gè)函數(shù)在 x 軸占據(jù)的寬度越寬, 就表示它被抽到的次數(shù)多, 即執(zhí)行的時(shí)間長. 注意, x 軸不代表時(shí)間, 而是所有的調(diào)用棧合并后, 按字母順序排列的.
火焰圖就是看頂層的哪個(gè)函數(shù)占據(jù)的寬度最大. 只要有 “平頂”(plateaus), 就表示該函數(shù)可能存在性能問題挥转。
顏色沒有特殊含義, 因?yàn)榛鹧鎴D表示的是 CPU 的繁忙程度, 所以一般選擇暖色調(diào).
參考
https://blog.csdn.net/gatieme/article/details/78885908