现在的计算机一般都使用着多处理器或四核单处理器。在服务器端,更多的处理器或核心意味着更强的能力,但另一方面,应用程序也需要更高的能耗。你还可能遇到过这样的场景:当你的cpu利用率很高时你却感觉自己根本没有运行任何程序。以上种种情况,在Linux系统上,你可以使用 mpstat 来监控这样的活动。
mpstat 用于监控你的系统上cpu的利用率。如果你的系统有多个处理器,它会发挥更大的作用。 第一个处理器会被标记为CPU 0。第二个会被标记为CPU 2,以此类推。在操作手册中,如下描述mpstat:
mpstat命令把每个可用的处理器的状态写到标准输出,默认第一个处理器为processor 0。所有处理器的全局平均状态也会以报告形式给出。mpstat命令可以用于SMP和UP的机器上,但是在UP机器上,只有全局平均状态会被打印出来。如果没有选择具体行为,默认将报告CPU的利用率
语法
[root@ihorn-dev ~]# mpstat --help
Usage: mpstat [ options ] [ <interval> [ <count> ] ]
Options are:
[ -A ] [ -u ] [ -V ] [ -I { SUM | CPU | SCPU | ALL } ]
[ -P { <cpu> [,...] | ON | ALL } ]
参数说明
-P:指定CPU编号。
示例
[root@ihorn-dev ~]# mpstat
Linux 3.10.0-123.9.3.el7.x86_64 (ihorn-dev) 12/23/2016 _x86_64_ (4 CPU)
01:31:29 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:31:29 PM all 7.16 0.00 3.48 0.15 0.00 0.89 0.00 0.00 0.00 88.31
输出项说明
01:31:29 PM : 指mpstat运行的时间
all : 指所有CPU
%usr : 显示在用户级别(例如应用程序)执行时CPU利用率的百分比
%nice :显示在拥有nice优先级的用户级别执行时CPU利用率的百分比
%sys : 现实在系统级别(例如内核)执行时CPU利用率的百分比
%iowait : 显示在系统有未完成的磁盘I/O请求期间CPU空闲时间的百分比
%irq : 显示CPU服务硬件中断所花费时间的百分比
%soft : 显示CPU服务软件中断所花费时间的百分比
%steal : 显示虚拟机管理器在服务另一个虚拟处理器时虚拟CPU处在非自愿等待下花费时间的百分比
%guest : 显示运行虚拟处理器时CPU花费时间的百分比
%idle : 显示CPU空闲和系统没有未完成的磁盘I/O请求情况下的时间百分比
打印单个处理器的CPU利用率
[root@ihorn-dev ~]# mpstat -P 1 1 5
Linux 3.10.0-123.9.3.el7.x86_64 (ihorn-dev) 12/23/2016 _x86_64_ (4 CPU)
01:34:16 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:34:17 PM 1 2.02 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 95.96
01:34:18 PM 1 3.06 0.00 1.02 0.00 0.00 0.00 0.00 0.00 0.00 95.92
01:34:19 PM 1 5.00 0.00 1.00 0.00 0.00 0.00 0.00 0.00 0.00 94.00
01:34:20 PM 1 4.08 0.00 1.02 0.00 0.00 0.00 0.00 0.00 0.00 94.90
01:34:21 PM 1 5.00 0.00 2.00 0.00 0.00 0.00 0.00 0.00 0.00 93.00
Average: 1 3.84 0.00 1.41 0.00 0.00 0.00 0.00 0.00 0.00 94.75
打印所有处理器的CPU利用率
[root@ihorn-dev ~]# mpstat -P ALL 1 3
Linux 3.10.0-123.9.3.el7.x86_64 (ihorn-dev) 12/23/2016 _x86_64_ (4 CPU)
01:35:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:35:05 PM all 3.54 0.00 1.52 0.00 0.00 0.25 0.00 0.00 0.00 94.70
01:35:05 PM 0 4.04 0.00 1.01 0.00 0.00 1.01 0.00 0.00 0.00 93.94
01:35:05 PM 1 3.03 0.00 2.02 0.00 0.00 0.00 0.00 0.00 0.00 94.95
01:35:05 PM 2 3.03 0.00 1.01 0.00 0.00 1.01 0.00 0.00 0.00 94.95
01:35:05 PM 3 3.00 0.00 2.00 0.00 0.00 1.00 0.00 0.00 0.00 94.00
01:35:05 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:35:06 PM all 4.80 0.00 1.52 0.25 0.00 0.00 0.00 0.00 0.00 93.43
01:35:06 PM 0 5.00 0.00 2.00 1.00 0.00 0.00 0.00 0.00 0.00 92.00
01:35:06 PM 1 3.96 0.00 0.99 0.99 0.00 0.99 0.00 0.00 0.00 93.07
01:35:06 PM 2 6.12 0.00 2.04 0.00 0.00 0.00 0.00 0.00 0.00 91.84
01:35:06 PM 3 5.05 0.00 1.01 0.00 0.00 0.00 0.00 0.00 0.00 93.94
01:35:06 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
01:35:07 PM all 5.84 0.00 1.27 0.25 0.00 0.51 0.00 0.00 0.00 92.13
01:35:07 PM 0 5.15 0.00 1.03 0.00 0.00 0.00 0.00 0.00 0.00 93.81
01:35:07 PM 1 7.22 0.00 2.06 0.00 0.00 0.00 0.00 0.00 0.00 90.72
01:35:07 PM 2 5.05 0.00 1.01 1.01 0.00 0.00 0.00 0.00 0.00 92.93
01:35:07 PM 3 4.17 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 95.83
Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
Average: all 4.72 0.00 1.43 0.17 0.00 0.25 0.00 0.00 0.00 93.42
Average: 0 4.73 0.00 1.35 0.34 0.00 0.34 0.00 0.00 0.00 93.24
Average: 1 4.71 0.00 1.68 0.34 0.00 0.34 0.00 0.00 0.00 92.93
Average: 2 4.73 0.00 1.35 0.34 0.00 0.34 0.00 0.00 0.00 93.24
Average: 3 4.07 0.00 1.02 0.00 0.00 0.34 0.00 0.00 0.00 94.58
参考资料
https://linux.cn/article-2424-1.html