火焰圖(perf+ FlameGraph)

sirria1發表於2020-12-30

比較完整的介紹:http://www.ruanyifeng.com/blog/2017/09/flame-graph.html 和https://zhuanlan.zhihu.com/p/85654612

直接了當的看結果就是:

步驟1:

軟體安裝:perf是linux自帶的,但是不少系統還是沒有安裝,centos用yum install perf,ubuntu也能直接安裝,

FlameGraph這個直接從git下載就能用,路徑:https://github.com/brendangregg/FlameGraph.git

步驟2:

生成火焰圖,先用perf抓取分析資料,一般命令格式:

sudo perf record -F 99 -p 13204 -g -- sleep 30

上面的程式碼中,perf record表示記錄,-F 99表示每秒99次,-p 13204是程式號,即對哪個程式進行分析,-g表示記錄呼叫棧,sleep 30則是持續30秒。

如果抓取的資料樣本太少或者沒抓到,將-F引數調高再試試,還有就是一定要在執行有業務時,否則程式空跑是不會生成有用資料的,也達不到預期分析效能的目的。

生成的資料檔案為perf.data,再使用FlameGraph轉換成svg圖

perf script | FlameGraph/stackcollapse-perf.pl | FlameGraph/flamegraph.pl > process.svg

process.svg直接可以用瀏覽器開啟。

結果類似如下:

 

相關文章