前言:
mpstat是一款实时系统监控工具。它主要展示与CPU相关的统计信息。
在多CPU系统中,它能查看ALL(所有CPU的平均状况),也能查看特定CPU的信息。
1.常规使用类似于vmstat和pidstat,mpstat直接的命令输出的是从系统启动以来的平均值
root@7bc18553126f:/# mpstat
Linux 5.10.76-linuxkit (7bc18553126f) 03/15/22 _aarch64_ (4 CPU)
14:20:18 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
14:20:18 all 2.34 0.00 0.90 0.47 0.00 0.02 0.00 0.00 0.00 96.27
实际这个值的意义并不大,因为我们一般不需要知道从系统启动以来的平均值,而只需要知道当前系统间隔时间段的平均值。
所以我们一般使用mpstat [interval] [count] (count也可以不写,会一直持续下去)来展示
root@7bc18553126f:/# mpstat 5
Linux 5.10.76-linuxkit (7bc18553126f) 03/15/22 _aarch64_ (4 CPU)
14:24:03 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
14:24:08 all 0.41 0.00 34.84 16.73 0.00 0.20 0.00 0.00 0.00 47.81
14:24:13 all 0.36 0.00 34.83 16.90 0.00 0.15 0.00 0.00 0.00 47.76
14:24:18 all 0.46 0.00 34.40 16.69 0.00 0.20 0.00 0.00 0.00 48.24
这里展示的就是5秒内的CPU使用情况
至于输出字段,含义如下:
CPU处理器ID,这里的all,就是所有CPU的平均值%usr用户态处理占用CPU时间百分比%nicenice值为负进程的CPU时间百分比%sys内核态处理占用CPU时间百分比%iowaitCPU等待硬盘IO时间百分比%irq硬中断时间百分比%soft软中断占用CPU时间百分比%steal虚拟机管理器在服务另一个虚拟处理器CPU处在非自愿等待下的花费的CPU时间百分比%guest运行虚拟处理器时占用CPU时间百分比%idleCPU空闲时间百分比 2.查看对应CPU的资源使用情况可以直接通过mpstat -P ALL查看所有具体CPU的资源使用情况
root@7bc18553126f:/# mpstat -P ALL 5
Linux 5.10.76-linuxkit (7bc18553126f) 03/15/22 _aarch64_ (4 CPU)
14:36:10 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
14:36:15 all 0.36 0.00 34.86 16.84 0.00 0.20 0.00 0.00 0.00 47.74
14:36:15 0 0.40 0.00 42.48 10.02 0.00 0.40 0.00 0.00 0.00 46.69
14:36:15 1 0.40 0.00 51.31 7.27 0.00 0.00 0.00 0.00 0.00 41.01
14:36:15 2 0.41 0.00 21.93 23.36 0.00 0.20 0.00 0.00 0.00 54.10
14:36:15 3 0.20 0.00 23.11 27.20 0.00 0.20 0.00 0.00 0.00 49.28
如果只想看某一个CPU的,可以使用mpstat -P [cpu_list]
root@7bc18553126f:/# mpstat -P 1 5
Linux 5.10.76-linuxkit (7bc18553126f) 03/15/22 _aarch64_ (4 CPU)
14:37:08 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
14:37:13 1 0.40 0.00 38.26 9.72 0.00 0.00 0.00 0.00 0.00 51.62
这样可以查看CPU 1 的资源使用情况。
总结:与我们之前学习过的vmstat相比,vmstat显示的是所有处理器的一个统计信息,而mpstat可以显示出每个处理器的统计信息。
因此对于某一个CPU过载而其他CPU空闲的情况,mpstat可以很好的判断出来。