perf工具的使用

2021-10-07 04:10:36 字數 1389 閱讀 5690

監控

測試

優化perf + 火焰圖分析程式效能

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、第一步

perf record -e cpu-clock -g -p `pgrep spu`

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效能工具

eg,命令 perf top c 7 指定系統核心,來檢視cpu佔用率高的原因。top類似於linux的top命令,對系統效能進行實時分析。perf top對於某個指定的事件 預設是cpu週期 顯示消耗最多的函式或者指令 perf top e event event perf top g fract...

perf工具使用統計函式呼叫

1 perf命令簡要介紹 效能調優時,我們通常需要分析查詢到程式百分比高的熱點 片段,這便需要使用 perf record 記錄單個函式級別的統計資訊,並使用 perf report 來顯示統計結果 perf record perf report 舉例 sudo perf record e cpu ...

perf工具crash的問題

perf抓取時系統crash的情況。找前同事了解到perf工具導致系統crash的一種情況,perf工具預設是使用cycles,這個硬體事件是使用nmi,可能會導致核心錯誤。之前文件上的perf命令更新下,指定使用軟體事件cpu clock 注意 不知道perf命令還有沒有別的坑,請注意生產上謹慎使...