linux2.6及后續版本都自帶該工具,幾乎能夠處理所有與性能相關的事件。perf top 是比較常用于展示占用CPU始終最多的函數或者指令,一般以此來查找熱點函數。
# perf top
行列:
Overhead: 是該符號的性能事件在所有采樣中的比例,用百分比來表示。
Shared: Shared ,是該函數或指令所在的動態共享對象(Dynamic Shared Object),如內核、進程名、動態鏈接庫名、內核模塊名等。
Object: Object ,是動態共享對象的類型。比如 [.] 表示用戶空間的可執行程序、或者動態鏈接庫,而 [k] 則表示內核空間。
Symbol: Symbol 是符號名,也就是函數名。當函數名未知時,用十六進制的地址來表示。
上面結果顯示內核模塊中_raw_spin_unlock_irqrestore占用 CPU時鐘最多,比列占11.31%。
ps -ef |grep mysqld|grep -v grep
[root@gaussdb11 ~]# ps -ef |grep mysqld|grep -v grep
mysql 12816 1 0 08:47 ? 00:00:00 /bin/sh
/home/mysql/bin/mysqld_safe --defaults-
file=/home/mysql_data/db/mysqldb1.cnf --ledir=/home/mysql/bin
mysql 14206 12816 0 08:47 ? 00:00:36
/home/mysql/bin/mysqld --defaults-file=/home/mysql_data/db/mysqldb1.cnf --basedir=/home/mysql
--datadir=/home/mysql_data/db/data --plugin-dir=/home/mysql/lib/plugin --log-
error=/home/mysql_data/db/log/mysql.err --pid-file=/home/mysql_data/db/mysql.pid --
socket=/home/mysql_data/db/mysql.sock --port=3306
perf top -g -p pid
top -H -p pid
[root@gaussdb11 ~]# top -H -p 14206
top - 15:11:14 up 6:25, 3 users, load average: 0.00, 0.03, 0.05
Threads: 42 total, 0 running, 42 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 6.2 sy, 0.0 ni, 93.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3765236 total, 2696380 free, 566248 used, 502608 buff/cache
KiB Swap: 3145724 total, 3145724 free, 0 used. 2624428 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14206 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:03.13 mysqld
14207 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.00 mysqld
14216 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.41 mysqld
14217 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.49 mysqld
14218 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.39 mysqld
14219 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.39 mysqld
14220 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.37 mysqld
select CONCAT(kill ,id,;) AS KillSQL,USER,HOST,DB,COMMAND,TIME,STATE,INFO from
information_schema.PROCESSLIST where ID = (
select PROCESSLIST_ID from performance_schema.threads where
THREAD_OS_ID=14207);
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129444.html
摘要:這是多處理器系統中,調度器用來分散任務到不同的機制,通常也被稱為處理器間中斷,。文章編寫計劃 待完成: 詳細介紹用到的各個工具 作者: 萬千鈞(祝星) 適合閱讀人群 文中的調優思路無論是php, java, 還是其他任何語言都是用. 如果你有php使用經驗, 那肯定就更好了 業務背景 框架及相應環境 laravel5.7, mysql5.7, redis5, nginx1.15 cento...
摘要:這是多處理器系統中,調度器用來分散任務到不同的機制,通常也被稱為處理器間中斷,。文章編寫計劃 待完成: 詳細介紹用到的各個工具 作者: 萬千鈞(祝星) 適合閱讀人群 文中的調優思路無論是php, java, 還是其他任何語言都是用. 如果你有php使用經驗, 那肯定就更好了 業務背景 框架及相應環境 laravel5.7, mysql5.7, redis5, nginx1.15 cento...
摘要:本文僅僅是一個筆記。因此同樣可以用觀察,但是會出現無法顯示函數符號的問題,注意觀察最下面一行解決辦法是先用記錄采樣數據,然后將容器內文件系統綁定到上,然后用指定符號目錄。觀察容器內進程使用情況目前沒有辦法。 本文僅僅是一個筆記。 場景 觀察進程的CPU使用情況 觀察進程內各個函數的CPU使用情況: sudo perf top -p 同時顯示函數調用鏈: sudo perf top -...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20