1、perf命令簡要介紹
效能調優時,我們通常需要分析查詢到程式百分比高的熱點**片段,這便需要使用 perf record 記錄單個函式級別的統計資訊,並使用 perf report 來顯示統計結果;
perf record
perf report
舉例:sudo perf record -e cpu-clock -g -p 2548
-g 選項是告訴perf record額外記錄函式的呼叫關係
-e cpu-clock 指perf record監控的指標為cpu週期
-p 指定需要record的程序pid
程式執行完之後,perf record會生成乙個名為perf.data的檔案,如果之前已有,那麼之前的perf.data檔案會被覆蓋
獲得這個perf.data檔案之後,就需要perf report工具進行檢視
perf report -i perf.data
-i 指定要檢視的檔案
以診斷mysql為例,report結果:
這種格式很不直觀
2、使用火焰圖展示結果
1、flame graph專案位於github上:
2、可以用git將其clone下來:git clone .git
我們以perf為例,看一下flamegraph的使用方法:
1、第一步
$sudo perf record -e cpu-clock -g -p 28591
ctrl+c結束執行後,在當前目錄下會生成取樣資料perf.data.
2、第二步
用perf script工具對perf.data進行解析
perf script -i perf.data &> perf.unfold
3、第三步
將perf.unfold中的符號進行摺疊:
#./stackcollapse-perf.pl perf.unfold &> perf.folded
4、最後生成svg圖:
perf檢視函式呼叫
前一段使用perf檢視程式的熱點以及函式呼叫,一直看不到熱點函式的函式呼叫,很是奇怪,在網上問別人,別人都說沒問題,一度很是迷惑。後來又試了一下,結果就出現了,很是神奇。使用方法很簡單,就是perf record加上 g選項。另外,perf top也可以檢視程式的熱點,選項是 g。上圖一張,就是以前...
perf工具的使用
監控 測試 優化perf 火焰圖分析程式效能 1 perf命令簡要介紹 效能調優時,我們通常需要分析查詢到程式百分比高的熱點 片段,這便需要使用 perf record 記錄單個函式級別的統計資訊,並使用 perf report 來顯示統計結果 perf record perf report 舉例 ...
系統級效能分析工具perf的介紹與使用
perf help之後可以看到perf的二級命令。序號命令作用1 annotate 解析perf record生成的perf.data檔案,顯示被注釋的 2archive 根據資料檔案記錄的build id,將所有被取樣到的elf檔案打包。利用此壓縮包,可以再任何機器上分析資料檔案中記錄的取樣資料。...