cpu性能分析工具

时间:2022-10-20 11:59:50

cpu性能分析工具

1.vmstat 低开销良好的性能视图

-n :默认隔一会儿会显示标题,-n一直显示数据,不显示标题

-s:一次性输出vmstat详细信息,该信息为系统启动后的总数据

[root@task-server-01 ~]# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 260516 37612 582464 0 0 4 54 1 2 5 1 94 0 0
0 0 0 259964 37612 582464 0 0 0 0 2500 2671 1 0 99 0 0
0 0 0 259952 37620 582456 0 0 0 44 2531 2757 1 1 98 1 0
0 0 0 260028 37620 582464 0 0 0 0 2453 2620 0 0 100 0 0
0 0 0 260028 37620 582464 0 0 0 0 3000 3131 1 1 99 0 0
cpu相关参数:
r:当前可运行进程数,这些进程没有等待IO,而是已经准备好的。理想情况下和cpu数相等
b:等待I/O完成的阻塞进程数
in:系统发生中断次数
cs:系统发生上下文切换次数
us:用户进程消耗总cpu时间比
sy:系统消耗cpu时间百分比,包含system,irq,softirq状态时间
wa:等待I/O消耗总cpu时间比
id:系统空闲消耗总cpu时间比
2.top 默认3s一次按照cpu占有率从高到底排序

-n:输出次数

-d:间隔时间

-i:是否显示空闲进程

运行时参数:
A:进程信息的另一种显示方式,其类容为各个系统资源最大的消耗着
I:选择top是否使用系统cpu数量除以cpu使用率
f:显示配置界面选择在屏幕显示哪些统计信息
o:修改配置界面,修改统计信息的显示顺序
1:切换cpu核数显示
[root@hryj-test ~]# top -i
top - 14:50:10 up 111 days, 18:06, 9 users, load average: 0.74, 0.87, 0.95
Tasks: 252 total, 1 running, 244 sleeping, 6 stopped, 1 zombie
%Cpu(s): 8.5 us, 6.4 sy, 0.0 ni, 85.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 32781236 total, 2712008 free, 21079072 used, 8990156 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 10729012 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14816 root 20 0 5437248 124764 10036 S 47.1 0.4 5187:39 dockerd
24406 root 20 0 6570764 1.123g 10320 S 41.2 3.6 3481:48 java
24387 root 20 0 415828 3728 1064 S 17.6 0.0 915:08.04 docker-containe
1178 root 20 0 7244300 0.978g 14280 S 5.9 3.1 2:38.34 java
cpu相关参数:
us:用户应用消耗CPU时间
sy:内核消耗CPU时间
id:空闲cpu时间
wa:等待I/Ocpu时间
hi:irq处理程序消耗cpu时间
si:softirq处理程序消耗cpu时间
load average: 1分钟 5分钟 15分钟的平均负载
%cpu:特定进程消耗cpu时间百分比
PRI:进程优先级,值越大优先级越高,RT为实时优先级,改优先级高于普通进程
NI:进程nice值,进程nice值越高,系统执行进程的必要性越低,具有高nice值的进程优先级非常低
TIME:自进程开始执行已消耗cpu时间(用户和系统)
COMMAND:执行的命令
S:进程状态。睡眠S,运行R,僵尸Z,不可中断D,跟踪状态T
mpstat:简单命令,暂时cpu的时间行为

-P cpu单个:但是单个cpu信息,ALL所有核心

[root@hryj-test ~]# mpstat  1
Linux 3.10.0-693.2.2.el7.x86_64 (hryj-test) 12/13/2018 _x86_64_ (8 CPU)
//内核版本 主机名 时间 系统位数 cpu个数
03:11:12 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:11:13 PM all 5.26 0.13 3.59 0.13 0.00 0.38 0.00 0.00 0.00 90.51
03:11:14 PM all 4.62 0.00 3.47 0.00 0.00 0.26 0.00 0.00 0.00 91.66
03:11:15 PM all 6.59 0.00 2.97 0.39 0.00 0.26 0.00 0.00 0.00 89.79
03:11:16 PM all 6.16 0.00 3.21 0.00 0.00 0.26 0.00 0.00 0.00 90.37
03:11:17 PM all 5.26 0.13 3.08 0.00 0.00 0.39 0.00 0.00 0.00 91.14
cpu相关信息说明:
usr:前一个采样中user cpu消耗时间比
nice:前一个采样中cpu执行优先级进程消耗时间百分比
sys:前一个采样中系统消耗时间比
iowait:前一个采样中cpu等待I/O时间比
irq:前一个采样中cpu处理中断消耗时间比
soft:前一个采样中,中断处理后,软中断消耗时间比
sar
yum -y install sysstat
pidstat:实时显示cpu使用

安装:yum install -y sysstat

每隔5秒输出一次CPU的使用信息,这里详细显示了cpu多少个,进程在哪个cpu上,以及每个进程的cpu使用率

[root@VM_177_51_centos conf]# pidstat -u 5
Linux 3.10.0-514.21.1.el7.x86_64 (VM_177_51_centos) 12/04/2018 _x86_64_ (2 CPU)

03:57:24 PM UID PID %usr %system %guest %CPU CPU Command
03:57:29 PM 0 9172 0.20 0.00 0.00 0.20 1 dockerd
03:57:29 PM 0 16433 0.20 0.00 0.00 0.20 1 java
03:57:29 PM 0 24313 0.00 0.20 0.00 0.20 0 YDService
03:57:29 PM 0 24384 0.00 0.20 0.00 0.20 1 pidstat
03:57:29 PM 0 30695 0.00 0.20 0.00 0.20 1 barad_agent
03:57:29 PM 0 30696 0.20 0.20 0.00 0.40 0 barad_agent
03:57:29 PM 0 32554 0.20 0.20 0.00 0.40 0 htop

#######
-u:显示cpu信息
-d:显示磁盘读写信息
-r:显示内存信息
-p:指定pid



#######
pidstat -u -t 1

14:24:03 UID TGID TID %usr %system %guest %wait %CPU CPU Command
14:24:04 0 - 2472 0.99 8.91 0.00 77.23 9.90 0 |__sysbench
14:24:04 0 - 2473 0.99 8.91 0.00 68.32 9.90 0 |__sysbench
14:24:04 0 - 2474 0.99 7.92 0.00 75.25 8.91 0 |__sysbench
14:24:04 0 - 2475 2.97 6.93 0.00 70.30 9.90 0 |__sysbench
14:24:04 0 - 2476 2.97 6.93 0.00 68.32 9.90 0 |__sysbench