Linux系统火焰图
CentOS7.8
安裝perf
#yum install perf
執(zhí)行perf
執(zhí)行perf record 命令,記錄該PID的行為
#perf record -a -g -p 14851 -- sleep 30 --30秒后退出
需要注意后面生成svg圖片的所有命令要和當(dāng)前perf在同一目錄,不然會報錯。
#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?
? ? ? ? ? ? ?
//執(zhí)行完成后生成perf.svg圖片,可以下載到本地,用瀏覽器打開 perf.svg
#./FlameGraph/flamegraph.pl perf.folded > perf.svg ?
火焰圖是基于 stack 信息生成的 SVG 圖片, 用來展示 CPU 的調(diào)用棧。
y 軸表示調(diào)用棧, 每一層都是一個函數(shù). 調(diào)用棧越深, 火焰就越高, 頂部就是正在執(zhí)行的函數(shù), 下方都是它的父函數(shù).
x 軸表示抽樣數(shù), 如果一個函數(shù)在 x 軸占據(jù)的寬度越寬, 就表示它被抽到的次數(shù)多, 即執(zhí)行的時間長. 注意, x 軸不代表時間, 而是所有的調(diào)用棧合并后, 按字母順序排列的.
火焰圖就是看頂層的哪個函數(shù)占據(jù)的寬度最大. 只要有 “平頂”(plateaus), 就表示該函數(shù)可能存在性能問題。
顏色沒有特殊含義, 因為火焰圖表示的是 CPU 的繁忙程度, 所以一般選擇暖色調(diào).
?
參考:火焰圖(Flame Graphs)的安裝和基本用法 - 寒冰宇若 - 博客園
總結(jié)
以上是生活随笔為你收集整理的Linux系统火焰图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用arthas采集火焰图
- 下一篇: IDEA2021.3.2拉取maven报