一,mpstat的用途
mpstat是 Multiprocessor Statistics的缩写,是实时cpu监控工具。
在多CPU系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息
它的数据来自于 /proc/stat文件
说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明:作者:刘宏缔 邮箱: 371125307@qq.com
二,mpstat所属的rpm包与安装
1,查看所属的包
[root@blog ~]# whereis mpstat mpstat: /usr/bin/mpstat /usr/share/man/man1/mpstat.1.gz [root@blog ~]# rpm -qf /usr/bin/mpstat sysstat-11.7.3-2.el8.x86_64
2,找不到mpstat命令时,可以用yum安装
[root@blog ~]# yum install sysstat
三,查看mpstat的版本和帮助
1,查看版本
[root@blog ~]# mpstat -V sysstat version 11.7.3 (C) Sebastien Godard (sysstat <at> orange.fr)
2,查看帮助
[root@blog ~]# mpstat --help
四,常用的用法举例
1,查看所有cpu的运行情况
# -P 指定cpu的id,ALL表示所有cpu
[root@blog ~]# mpstat -P ALL Linux 4.18.0-80.11.2.el8_0.x86_64 (blog) 04/08/2020 _x86_64_ (4 CPU)
03:43:05 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 03:43:05 PM all 0.03 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 99.95 03:43:05 PM 0 0.05 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 99.92 03:43:05 PM 1 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.00 99.97 03:43:05 PM 2 0.04 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 99.94 03:43:05 PM 3 0.02 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 99.96
2,查看指定cpu的运行情况
## -P 指定cpu的id,此处是1
[root@blog ~]# mpstat -P 1 Linux 4.18.0-80.11.2.el8_0.x86_64 (blog) 04/08/2020 _x86_64_ (4 CPU) 03:55:12 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 03:55:12 PM 1 0.02 0.00 0.01 0.00 0.00 0.00 0.00 0.00 0.00 99.97
3,指定输出的时间间隔和次数
#命令格式:mpstat [-P {|ALL}] [internal [count]]
#internal 时间间隔,此处值是3
#count 统计次数,此处值是5
# 显示所有cpu的统计信息,每隔3秒统计一次,共统计5次后退出
[root@blog ~]# mpstat -P ALL 3 5
说明:
当没有参数时,mpstat则显示系统启动以后所有信息的平均值。
有interval时,第一行的信息自系统启动以来的平均信息。
从第二行开始,输出为前一个interval时间段的平均信息。
五,输出信息各字段的含义:
user(通常缩写为 us),代表用户态 CPU 时间。
注意,它不包括下面的 nice 时间,但包括了 guest 时间。
nice(通常缩写为 ni),代表低优先级用户态 CPU 时间,也就是进程的 nice 值被调整为 1-19 之间时的 CPU 时间。
注意,nice 可取值范围是 -20 到 19,数值越大,优先级反而越低。
system(通常缩写为 sys),代表内核态 CPU 时间。
idle(通常缩写为 id),代表空闲时间。
注意,它不包括等待 I/O 的时间(iowait)。
iowait(通常缩写为 wa),代表等待 I/O 的 CPU 时间。
irq(通常缩写为 hi),代表处理硬中断的 CPU 时间。
softirq(通常缩写为 si),代表处理软中断的 CPU 时间。
steal(通常缩写为 st),代表当系统运行在虚拟机中的时候,被其他虚拟机占用的 CPU 时间。
guest(通常缩写为 guest),代表通过虚拟化运行其他操作系统的时间,也就是运行虚拟机的 CPU 时间。
guest_nice(通常缩写为 gnice),代表以低优先级运行虚拟机的时间。
六,查看centos版本
[root@blog ~]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core)