監控
測試
優化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命令還有沒有別的坑,請注意生產上謹慎使...