Linux性能優化(五)——性能監控工具

一、性能分析工具簡介

Brendan Gregg是算機性能設計、分析和調優專家,編寫開源大量性能測試工具。
http://www.brendangregg.com

1、性能分析工具

Linux性能優化(五)——性能監控工具

2、性能觀測工具

Linux性能優化(五)——性能監控工具
Linux性能優化(五)——性能監控工具

3、性能測評工具

Linux性能優化(五)——性能監控工具

4、性能調優工具

Linux性能優化(五)——性能監控工具

二、常用工具

1、free

free指令會顯示內存的使用情況,包括實體內存、虛擬的交換文件內存、共享內存區段以及系統核心使用的緩衝區等。
free [-bkmotV][-s <間隔秒數>]
-b  以Byte爲單位顯示內存使用情況。
-k  以KB爲單位顯示內存使用情況。
-m  以MB爲單位顯示內存使用情況。
-h  以合適的單位顯示內存使用情況,最大爲三位數,自動計算對應的單位值。單位有:
-o  不顯示緩衝區調節列。
-s<間隔秒數>  持續觀察內存使用狀況。
-t  顯示內存總和列。
-V  顯示版本信息。
free -h









total:表示計物理內存的大小,used+free+buff/cache。
used:表示已使用多少。
free:表示可用內存多少。
Shared:表示多個進程共享的內存總額。
buffer/cache:表示磁盤緩存的大小。buffer cache比較小,即緩存經常訪問塊設備的元數據;cache比較大,page cache,即緩存文件內容+slab。
available: 剩餘可用內存。




2、top

top命令的彙總區域顯示了五個方面的系統性能信息:
(1)負載:時間,登陸用戶數,系統平均負載;
(2)進程:運行,睡眠,停止,殭屍;
(3)CPU:用戶態,核心態,NICE,空閒,等待IO,中斷等;
(4)內存:總量,已用,空閒(系統角度),緩衝,緩存;
(5)交換分區:總量,已用,空閒;
任務區域默認顯示:進程ID,有效用戶,進程優先級,NICE值,進程使用的虛擬內存,物理內存和共享內存,進程狀態,CPU佔用率,內存佔用率,累計CPU時間,進程命令行信息。
Linux性能優化(五)——性能監控工具






3、ps

ps命令是Process Status縮寫,用來查看系統中當前運行的進程。
a:顯示所有進程
-a:顯示同一終端下的所有程序
-A:顯示所有進程
c:顯示進程的真實名稱
-N:反向選擇
-e:等於“-A”
e:顯示環境變量
f:顯示程序間的關係
-H:顯示樹狀結構
r:顯示當前終端的進程
T:顯示當前終端的所有程序
u:指定用戶的所有進程
ps  aux | grep mysqld | grep –v grep | awk ‘{print $2 }’ xargs kill -9
殺掉應用程序
ps –eal | awk ‘{if ($2 == “Z”){print $4}}’ | xargs kill -9
殺掉殭屍進程
ps -ef
顯示所有進程,包括命令行
ps aux
列出目前正在內存當中的程序
ps -u username
查看特定用戶的進程
ps -aux --sort -pcpu | less
根據CPU使用升序排序
ps -aux --sort -pmem | less
根據內存使用升序排序
ps -L pid
查看指定進程的線程
ps -axjf
樹形結構顯示進程
ps -eo pid,user,args
查看登錄服務器的進程
watch -n 1 'ps -aux --sort -pmem,-pcpu'
實時監控進程狀態

































4、strace

strace常用來跟蹤進程執行時的系統調用和所接收的信號。在Linux中,進程不能直接訪問硬件設備,當進程需要訪問硬件設備(比如讀取磁盤文件,接收網絡數據等等)時,必須由用戶態模式切換至內核態模式,通過系統調用訪問硬件設備。strace可以跟蹤到一個進程產生的系統調用,包括參數、返回值、執行消耗的時間。
strace -c[df] [-In] [-bexecve] [-eexpr]... [-Ooverhead] [-Ssortby] -ppid... / [-D] [-Evar[=val]]... [-uusername] command [args]
-c:統計每一系統調用的所執行的時間、次數和出錯的次數等。
-d:輸出strace關於標準錯誤的調試信息
-f:跟蹤由fork調用所產生的子進程
-ff:如果提供-o filename,則所有進程的跟蹤結果輸出到相應的filename.pid中,pid是各進程的進程號。
-F:嘗試跟蹤vfork調用,-f時vfork不被跟蹤。
-h:輸出簡要的幫助信息。
-i:輸出系統調用的入口指針。
-q:禁止輸出關於脫離的消息。
-r:打印出相對時間關於,,每一個系統調用.
-t:在輸出中每一行前加上時間信息。
-tt:在輸出中的每一行前加上時間信息,微秒級。
-ttt:微秒級輸出,以秒顯示時間。
-T:顯示每一調用所耗的時間,以秒爲單位。
-v:輸出所有的系統調用。
-V:輸出strace的版本信息。
-x:以十六進制形式輸出非標準字符串
-xx:所有字符串以十六進制形式輸出.
-a column:設置返回值的輸出位置,默認爲40。
-e expr:指定一個表達式,用來控制如何跟蹤。格式如下:
[qualifier=][!]value1[,value2]...
qualifier可選值爲trace、abbrev、verbose、raw、signal、read、write,value是用來限定的符號或數字,默認qualifier是 trace,感嘆號是否定符號,例如:
-eopen等價於-e trace=open,表示只跟蹤open調用,而-etrace!=open表示跟蹤除open外的其它調用。
-e trace=open,close,rean,write表示只跟蹤四個系統調用,默認set=all。
-e trace=file 只跟蹤有關文件操作的系統調用。
-e trace=process只跟蹤有關進程控制的系統調用。
-e trace=network跟蹤與網絡有關的所有系統調用。
-e strace=signal跟蹤所有與系統信號有關的系統調用。
-e trace=ipc跟蹤所有與進程通訊有關的系統調用。
-e abbrev=set設定strace輸出的系統調用的結果集。
-e raw=set將指定的系統調用的參數以十六進制顯示。
-e signal=set指定跟蹤的系統信號,默認爲all,如 signal=!SIGIO表示不跟蹤SIGIO信號。
-e read=set輸出從指定文件中讀出數據。
-o filename:將strace的輸出寫入文件filename。
-p pid:跟蹤指定的進程pid。
-s strsize:指定輸出的字符串的最大長度,默認爲32,文件名一直全部輸出.
-u username:以username 的UID和GID執行被跟蹤的命令
strace -p pid
追蹤已經存在的進程
Linux性能優化(五)——性能監控工具
strace command args
追蹤應用啓動過程









































5、df

 df(disk free)命令用於顯示Linux系統上的文件系統磁盤使用情況統計。
df [選項]... [FILE]...
-a, --all:包含所有文件系統
--block-size={SIZE}:使用SIZE大小的Blocks
-h, --human-readable:可讀格式
-H, --si:1000爲單位顯示
-i, --inodes:列出 inode 資訊,不列出已使用 block
-k, --kilobytes:--block-size=1024
-l, --local:限制列出的文件結構
-m, --megabytes:--block-size=1048576
--no-sync:顯示信息前不sync,默認設置
-P, --portability:使用POSIX輸出格式
--sync:先sync再顯示信息
-t, --type=TYPE:限制列出文件系統的TYPE
-T, --print-type:顯示文件系統的形式
-x, --exclude-type=TYPE:限制列出文件系統不要顯示TYPE
--help:打印幫助信息
--version:打印版本
















6、du

du(disk usage)命令用於顯示目錄或文件所佔用的磁盤空間。
du [-abcDhHklmsSx][-X文件][--block-size][--exclude=目錄或文件][--max-depth=目錄層數][--help][--version][目錄或文件] [-L 鏈接符號]
-a或-all:顯示目錄和文件的大小。
-b或-bytes:顯示目錄或文件大小時,以byte爲單位。
-c或--total:顯示目錄或文件的大小以及大小總和。
-D或--dereference-args:顯示指定符號鏈接的源文件大小。
-h或--human-readable:以K,M,G爲單位,提高信息的可讀性。
-H或--si:K,M,G是以1000爲換算單位。
-k或--kilobytes:以1024 bytes爲單位。
-l或--count-links:重複計算硬件連接的文件。
-L<符號連接>或--dereference<符號連接>:顯示選項中所指定符號連接的源文件大小。
-m或--megabytes:以1MB爲單位。
-s或--summarize:僅顯示總計。
-S或--separate-dirs:顯示目錄的大小時,不含其子目錄的大小。
-x或--one-file-xystem:以開始處理時的文件系統爲準,若遇上其它文件系統目錄則略過。
-X<文件>或--exclude-from=<文件>:在<文件>指定目錄或文件。
--exclude=<目錄或文件>:略過指定的目錄或文件。
--max-depth=<目錄層數>:超過指定層數的目錄後,予以忽略。
--help:顯示幫助。
--version:顯示版本信息。


















三、dstat

1、dstat簡介

dstat是一個全能系統信息統計工具,提供vmstat、iostat、netstat、nfsstat、ifstat等命令工具類似功能。dstat擁有彩色界面並支持即時刷新。
Linux性能優化(五)——性能監控工具
dstat提供的下列狀態的性能監控:
(1)CPU狀態:CPU使用率,顯示用戶、內核、空閒、等待、硬中斷、軟中斷。
(2)磁盤統計:磁盤讀寫,顯示磁盤的讀、寫總數。
(3)網絡統計:網絡設備發送和接收的數據,顯示的網絡收、發數據總數。
(4)分頁統計:系統的分頁活動。顯示in(換入)和out(換出)。
(5)系統統計:顯示中斷(int)和上下文切換(csw)。
dstat安裝:
yum install dstat








2、dstat命令格式

dstat [-afv] [options..] [delay [count]]
-c, --cpu:顯示CPU使用情況
-C 0,3,total:統計指定CPU或彙總信息
-d, --disk:顯示磁盤使用情況
-D total,hda:統計指定磁盤或彙總信息
-g, --page:顯示分頁情況
-i, --int:顯示中斷統計
-I 5,eth2:顯示平均負載情況,包括1分鐘、5分鐘、15分鐘平均值
-l, --load:開啓平均負載統計
-m, --mem:顯示內存使用情況
-n, --net:顯示網絡信息
-N eth1,total:指定網絡接口
-p, --proc:統計進程信息,包括runnable、uninterruptible、new
-r, --io:統計I/O請求,包括讀寫請求
-s, --swap:顯示swap使用情況
-S swap1,total:可以指定多個swap
-t, --time:顯示統計時時間,對分析歷史數據非常有用
-y, --sys:統計系統信息,包括中斷、上下文切換
--ipc:顯示IPC使用情況,消息隊列、信號量、共享內存
--lock:統計lock信息
--raw:統計raw信息
--tcp:統計tcp信息
--udp:統計udp信息
--unix:統計unix信息
-M stat1,stat2:統計external信息
-a, --all:等同於-cdngy
-f, --full:等同於-C -D -I -N -S
-v, --vmstat:等同於-pmgdsc -D
--integer:強制輸出整型值,默認
--nocolor:禁用顏色功能
--noheaders:禁止重複輸出header,默認打印依次屏幕輸出一次header
--noupdate:當delay大於1時,禁止在時間間隔內更新
--output file:輸出狀態信息到CVS文件
--aio:開啓同步IO統計
































3、dstat插件簡介

dstat通過插件方式提供靈活可擴展的功能,dstat --list可以查看dstat支持的所有參數,internal是dstat自帶的監控參數,/usr/share/dstat是dstat支持的插件,這些插件可以擴展dstat的功能,如可以監控電源(battery)、mysql等。 
但插件並不是都可以直接使用,部分插件還依賴其它python包支持,如想監控mysql,必須要裝python連接mysql的一些包。
Linux性能優化(五)——性能監控工具

4、dstat插件命令

--battery:電池電池百分比(需要ACPI)
--battery-remain:電池剩餘小時、分鐘(需要ACPI)
--cpufreq:CPU頻率百分比(需要ACPI)
--dbus:dbus連接的數量(需要python-dbus)
--disk-util:顯示某一時間磁盤的忙碌狀況
--fan:風扇轉速(需要ACPI)
--freespace:每個文件系統的磁盤使用情況
--gpfs:gpfs讀/寫 I / O(需要mmpmon)
--gpfs-ops:GPFS文件系統操作(需要mmpmon)
--helloworld:dstat插件Hello world示例
--innodb-buffer:顯示innodb緩衝區統計
--innodb-io:顯示innodb I / O統計數據
--innodb-ops:顯示innodb操作計數器
--lustre:顯示lustreI / O吞吐量
--memcache-hits:顯示memcache 的命中和未命中的數量
--mysql5-cmds:顯示MySQL5命令統計
--mysql5-conn:顯示MySQL5連接統計
--mysql5-io:MySQL5 I / O統計數據
--mysql5-keys:顯示MySQL5關鍵字統計
--mysql-io:顯示MySQL I / O統計數據
--mysql-keys:顯示MySQL關鍵字統計
--net-packets:顯示接收和發送的數據包的數量
--nfs3:顯示NFS v3客戶端操作
--nfs3-ops:顯示擴展NFS v3客戶端操作
--nfsd3:顯示NFS v3服務器操作
--nfsd3-ops:顯示擴展NFS v3服務器操作
--ntp:顯示NTP服務器的ntp時間
--postfix:顯示後綴隊列大小(需要後綴)
--power:顯示電源使用量
--proc-count:顯示進程的總數
--rpc:顯示rpc客戶端調用統計
--rpcd:顯示RPC服務器調用統計
--sendmail:顯示sendmail隊列大小(需要sendmail)
--snooze:顯示每秒運算次數
--test:顯示插件輸出
--thermal:熱系統的溫度傳感器
--top-bio:顯示消耗塊IO最大的進程
--top-cpu:顯示消耗CPU最大的進程
--top-cputime:顯示使用CPU時間最大的進程(單位ms)
--top-cputime-avg:顯示使用CPU時間平均最大的進程(單位ms)
--top-io:顯示消耗I/O最大進程
--top-latency:顯示總延遲最大的進程(單位ms)
--top-latency-avg:顯示平均延時最大的進程(單位ms)
--top-mem:顯示使用內存最大的進程
--top-oom:顯示第一個被OOM結束的進程
--utmp:顯示utmp連接的數量(需要python-utmp)
--vmk-hba:顯示VMware ESX內核vmhba統計數
--vmk-int:顯示VMware ESX內核中斷數據
--vmk-nic:顯示VMware ESX內核端口統計
--vz-io:顯示每個OpenVZ請求CPU使用率
--vz-ubc:顯示OpenVZ用戶統計
--wifi:無線連接質量和信號噪聲比
--disk-util:顯示某一時間磁盤的忙碌狀況
--freespace:顯示當前磁盤空間使用率
--proc-count:顯示正在運行的程序數量
--top-bio:示塊IO最大的進程
--top-cpu:顯示CPU佔用最大的進程
--top-io:顯示正常IO最大的進程
--top-mem:顯示佔用最多內存的進程

























































5、dstat常用命令

(1)CPU使用情況查看
查看CPU使用情況,執行命令dstat -c。顯示各個信息爲CPU用戶佔用,系統佔用,空閒,等待,中斷,軟件中斷等信息。
dstat -c
Linux性能優化(五)——性能監控工具
(2)磁盤使用情況查看
dstat -d
Linux性能優化(五)——性能監控工具
(3)網絡狀態查看
dstat -n
Linux性能優化(五)——性能監控工具
(4)內存使用信息查看
dstat -m
Linux性能優化(五)——性能監控工具
(5)系統平均負載查看
dstat -l
Linux性能優化(五)——性能監控工具
(6)IO使用情況查看
dstat -r
Linux性能優化(五)——性能監控工具
(7)TCP、UDP查看
dstat --tcp --udp -t -c 3
Linux性能優化(五)——性能監控工具




















四、iotop

1、iotop簡介

iotop是一個用來監視磁盤IO使用狀況的top類工具,可監測進程使用的磁盤IO的信息(requires 2.6.20 or later)。
iotop 監控Linux內核輸出的IO使用信息,並且顯示一個系統中進程或線程的當前IO使用情況。
yum -y install iotop

2、iotop命令

iotop [OPTIONS]
--version:顯示版本號
-h, --help:顯示幫助信息
-o, --only:僅顯示正在產生IO操作的進程或者線程,可以隨時按o切換。
-b, --batch:運行在非交互式的模式
-n NUM, --iter=NUM:在非交互式模式下,設置顯示次數,
-d SEC, --delay=SEC:設置顯示的間隔秒數,支持非整數值
-p PID, --pid=PID:只顯示指定PID的信息
-u USER, --user=USER:顯示指定用戶的進程信息
-P, --processes:只顯示進程,一般爲顯示所有的線程
-a, --accumulated:顯示從iotop啓動後每個線程完成了的IO總數
-k, --kilobytes:以KB顯示
-t, --time:在每一行前添加一個當前的時間











3、iotop快捷鍵

r:反向排序,
o:切換至選項--only,
p:切換至--processes選項,
a:切換至--accumulated選項
q:退出 
i:改變線程的優先級




4、iotop常用命令

iotop
Linux性能優化(五)——性能監控工具
第一行表示進程的磁盤讀寫大小總數。
第二行表示磁盤真實的讀寫大小總數。由於緩存、緩衝區、IO合併等因素的影響,可能並不相等於進程的磁盤讀寫大小總數。
進程部分,從各個角度來分別表示進程的IO情況,包括線程ID、IO 優先級、每秒讀磁盤的大小、每秒寫磁盤的大小、換入和等待IO的時鐘百分比等。
iotop -b -o -n 2 -d 5 -t
使用非交互模式將iotop命令輸出信息寫入日誌。





五、blktrace

1、blktrace簡介

blktrace是一個針對Linux內核中塊設備IO層的跟蹤工具,用來收集磁盤IO信息中當IO進行到塊設備層(block)時的詳細信息(如IO請求提交、入隊、合併、完成等信息),是由Linux內核塊設備層的維護者開發的,目前已經集成到內核2.6.17及其後內核版本中。blktrace可以獲取IO請求隊列的各種詳細的情況,包括進行讀寫的進程名稱、進程號、執行時間、讀寫的物理塊號、塊大小等。
Linux性能優化(五)——性能監控工具

2、blktrace安裝

在線安裝:
yum install blktrace

3、blktrace工作原理

(1)blktrace測試時會分配物理機上邏輯CPU數量個線程,並且每一個線程綁定一個邏輯CPU來收集數據。
(2)blktrace在debugfs掛載的路徑(默認/sys/kernel/debug)下每個線程產生一個文件,然後調用ioctl函數,通過系統調用交由內核處理,由內核經由debugfs文件系統往文件描述符寫入數據。
(3)blktrace需要結合blkparse使用,由blkparse來解析blktrace產生的特定格式的二進制數據。
(4)blkparse僅打開blktrace產生的文件,從文件裏面取數據進行解析展示。


4、blktrace命令

blktrace -d dev [ -r debugfs_path ] [ -o output ] [ -w time ] [ -a action ] [ -A action_mask ] [ -v ]
-A hex-mask:設置過濾信息mask成十六進制mask
-a mask:添加mask到當前的過濾器
-b size:指定緩存大小for提取的結果,默認爲512KB
-d dev:添加一個設備追蹤
-I file:增加文件的設備到追蹤
-k:殺掉正在運行的追蹤進程
-n num-sub:指定緩衝池大小,默認爲4個子緩衝區
-o file:指定輸出文件的名字
-r rel-path:指定的debugfs掛載點
-V:打印版本號
-w seconds:設置運行的時間
sudo blktrace -d /dev/sda -o test1











5、blkparse

blkparse是分析和展示blktrace採集數據的工具。
blktrace -d /dev/sda -o - | blkparse -i -
將blktrace結果輸出到屏幕,然後blkparse將屏幕中的blktrace結果作爲分析的輸入,最後將分析的結果輸出到屏幕。
blktrace -d /dev/sda |blkparse -i -
將blktrace結果輸出到本地目錄,文件名爲sda.blktrace.x,
blkparse -i trace
將trace文件作爲blkparse輸入,blkparse結果輸出到屏幕。
blkparse -i trace -o outout
將trace文件作爲blkparse輸入,將分析結果輸出到output文件。







六、perf

1、perf簡介

perf是 Linux Kernel 2.6.31以後內置的性能分析工具,以性能事件採樣爲基礎,不僅可以分析系統的各種事件和內核性能,還可以用來分析指定應用程序的性能問題。perf top能夠實時顯示佔用CPU時鐘最多的函數或者指令,可以用來查找熱點函數。

2、perf命令

perf [--version] [--help] [OPTIONS] COMMAND [ARGS]
annotate:解析perf.data文件,顯示被註釋的代碼。
archive:根據perf.data數據文件記錄的build-id,將所有被採樣的elf文件打包,可以在其它機器上分析數據文件中記錄的採樣數據。
bench:perf中內置的benchmark,包括針對調度器和內存管理子系統的benchmark。
buildid-cache:管理perf的buildid緩存,每個elf文件都有一個唯一buildid,buildid被perf用來關聯性能數據與elf文件。
buildid-list:列出數據文件中記錄的所有buildid。
config:在配置文件獲取和設置變量
data: Data file related processing
diff: 對比兩個perf.data數據文件的差異,給出每個符號(函數)在熱點分析上的具體差異。
evlist:列出數據文件perf.data中所有性能事件。
inject:讀取perf record工具記錄的事件流,並將其定向到標準輸出。在被分析代碼中的任何一點,都可以向事件流中注入其它事件。
kmem: 針對內核內存(slab)子系統進行追蹤測量的工具
kvm:追蹤測試運行在KVM虛擬機上的Guest OS。
list:列出當前系統支持的所有性能事件,包括硬件性能事件、軟件性能事件以及檢查點。
lock:分析內核中的鎖信息,包括鎖的爭用情況,等待延遲等。
mem:分析內存訪問情況
record:收集採樣信息,並將其記錄在perf.data數據文件中。
report:讀取perf record創建的數據文件,並給出熱點分析結果。
sched:針對調度器子系統的分析工具。
script:執行perl或python寫的功能擴展腳本、生成腳本框架、讀取數據文件中的數據信息等。
stat:系統全局性能統計工具
test:perf對當前軟硬件平臺進行健全性測試,測試當前軟硬件平臺是否能支持perf所有功能。
timechart:針對測試期間系統行爲進行可視化的工具
top:系統性能實時分析工具
probe:定義動態檢查點。
trace:追蹤系統調用工具
























3、perf record

perf record [&lt;options&gt;] [&lt;command&gt;]
-e event:指定性能事件(多個用,分隔列表)
-p pid:指定待分析進程pid(多個用,分隔列表)
-t tid:指定待分析線程tid(多個用,分隔列表)
-u uid:指定收集用戶數據,uid爲名稱或數字
-a:從所有CPU收集系統數據
-g:開啓函數調用關係圖記錄
-C cpu-list:只統計指定CPU列表的數據,如:0,1,3或1-2
-r RT priority:perf程序以SCHED_FIFO實時優先級RT priority運行,值越大進程優先級越高(即nice值越小)
-c count: 事件每發生count次採一次樣
-F n:每秒採樣n次
-o output.data:指定輸出文件output.data,默認輸出到perf.data










4、perf top

perf top [&lt;options&gt;]
-e event:指定採樣分析的性能事件。
-p pid:指定目標進程
-k pat:指定帶符號表的內核映像所在路徑
-K:不顯示屬於內核或模塊的符號。
-U:不顯示屬於用戶態程序的符號。
-d n:刷新週期,默認爲2s,默認每2s從mmap的內存區域讀取一次性能數據。
-g:得到函數的調用關係圖。
Linux性能優化(五)——性能監控工具
第一行分別是採樣數(Samples)、事件類型(event)和事件總數量(Event count)。perf總共採集4000個CPU時鐘事件,而總事件數則爲1922242080。如果採樣數過少,後序數據無實際參考價值。
第一列Overhead是symbol的性能事件在所有采樣中的比例,用百分比來表示。
第二列Shared是函數或指令所在的動態共享對象(Dynamic Shared Object),如內核、進程名、動態鏈接庫名、內核模塊名等。
第三列Object是動態共享對象的類型。[.]表示用戶空間的可執行程序、或者動態鏈接庫,而[k]表示內核空間。
第四列Symbol是符號名,即函數名。當函數名未知時,用十六進制的地址來表示。
perf top可以實時展示系統的性能信息,但並不保存數據,因此不能用於離線或者後續分析。perf record提供了保存數據的功能,保存後的數據需要使用perf report解析展示。
perf top 和 perf record加上-g參數,開啓調用關係採樣,可以根據調用鏈來分析性能問題。
perf工具看不到函數名,只能看到一些 16 進制格式的函數地址。其實,只要你觀察一下 perf 界面最下面的那一行,就會發現一個警告信息:
perf找不到待分析進程依賴庫時,不會打印出函數名稱,只會顯示16進制格式的函數地址。
如果應用程序在編譯發佈時,使用strip刪除ELF二進制文件的符號表,perf也只能顯示函數地址。

















5、perf report

perf report [options]
-i filename:指定輸入文件,默認爲perf.data

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章