日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Linux笔记-性能调优工具perf

發布時間:2023/12/13 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 Linux笔记-性能调优工具perf 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考文章:
http://blog.itpub.net/24585765/viewspace-2564885/
https://www.cnblogs.com/fattyCoder/p/10167740.html

Perf (Performance Event)是 Linux 系統原生提供的性能分析工具, 會返回 CPU 正在執行的函數名以及調用棧

常用命令:
perf record 記錄信息到perf.data

perf report 生成報告;

perf diff 對兩個記錄進行diff;

perf evlist 列出記錄的性能事件;

perf annotate 顯示perf.data函數代碼;

perf archive 將相關符號打包,方便在其它機器進行分析;

perf scriptperf.data輸出可讀性文本;



### 以perf record開始:

perf record -F 99 -a  -g   -p 1234 -- sleep 30

執行完成后生成perf.data文件
參數解釋
perf record: 收集采樣信息,并將其記錄在數據文件中。隨后可通過其它工具對數據文件進行分析。
-F 99 :表示采樣頻率99HZ
-a: 表示對所有CPU采樣,如果只需針對特定的CPU,可以使用-C
-g:表示記錄調用棧
-p 1234 :表示要來分析的程序進程號為1234
sleep 30:表示分析持續30秒


生成火焰圖:

獲取 FlameGraph組件

git clone https://github.com/brendangregg/FlameGraph.git
cd FlameGraph

根據perf.data畫圖

perf script > out.perf
./stackcollapse-perf.pl out.perf > out.folded
./flamegraph.pl out.folded > perf_your_name.svg

附錄:

序號 命令 作用
1 annotate 解析perf record生成的perf.data文件,顯示被注釋的代碼。
2 archive 根據數據文件記錄的build-id,將所有被采樣到的elf文件打包。利用此壓縮包,可以再任何機器上分析數據文件中記錄的采樣數據。
3 bench perf中內置的benchmark,目前包括兩套針對調度器和內存管理子系統的benchmark。
4 buildid-cache 管理perf的buildid緩存,每個elf文件都有一個獨一無二的buildid。buildid被perf用來關聯性能數據與elf文件。
5 buildid-list 列出數據文件中記錄的所有buildid。
6 diff 對比兩個數據文件的差異。能夠給出每個符號(函數)在熱點分析上的具體差異。
7 evlist 列出數據文件perf.data中所有性能事件。
8 inject 該工具讀取perf record工具記錄的事件流,并將其定向到標準輸出。在被分析代碼中的任何一點,都可以向事件流中注入其它事件。
9 kmem 針對內核內存(slab)子系統進行追蹤測量的工具
10 kvm 用來追蹤測試運行在KVM虛擬機上的Guest OS。
11 list 列出當前系統支持的所有性能事件。包括硬件性能事件、軟件性能事件以及檢查點。
12 lock 分析內核中的鎖信息,包括鎖的爭用情況,等待延遲等。
13 mem 內存存取情況
14 record 收集采樣信息,并將其記錄在數據文件中。隨后可通過其它工具對數據文件進行分析。
15 report 讀取perf record創建的數據文件,并給出熱點分析結果。
16 sched 針對調度器子系統的分析工具。
17 script 執行perl或python寫的功能擴展腳本、生成腳本框架、讀取數據文件中的數據信息等。
18 stat 執行某個命令,收集特定進程的性能概況,包括CPI、Cache丟失率等。
19 test perf對當前軟硬件平臺進行健全性測試,可用此工具測試當前的軟硬件平臺是否能支持perf的所有功能。
20 timechart 針對測試期間系統行為進行可視化的工具
21 top 類似于linux的top命令,對系統性能進行實時分析。
22 trace 關于syscall的工具。
23 probe 用于定義動態檢查點。

注:

sudo  perf record -F 99 -a  -g  -p 118521 -- sleep 30
Warning:
PID/TID switch overriding SYSTEMPermission error mapping pages.
Consider increasing /proc/sys/kernel/perf_event_mlock_kb,
or try again with a smaller value of -m/--mmap_pages.
(current value: -1)
sleep: Terminated

增加參數: -m 2后解決

sudo  perf record -F 99 -a  -g  -m 2 -p 118521 -- sleep 30

總結

以上是生活随笔為你收集整理的Linux笔记-性能调优工具perf的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。