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 grepmysql 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/binmysql 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=3306perf top -g -p pidtop -H -p pid
[root@gaussdb11 ~]# top -H -p 14206top - 15:11:14 up 6:25, 3 users, load average: 0.00, 0.03, 0.05Threads: 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 stKiB Mem : 3765236 total, 2696380 free, 566248 used, 502608 buff/cacheKiB Swap: 3145724 total, 3145724 free, 0 used. 2624428 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND14206 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:03.13 mysqld14207 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.00 mysqld14216 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.41 mysqld14217 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.49 mysqld14218 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.39 mysqld14219 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.39 mysqld14220 mysql 20 0 3345492 414464 11640 S 0.0 11.0 0:00.37 mysqldselect 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);