mpstat
是一个用于报告多处理器系统中每个处理器(或CPU)的使用情况的工具。它是 sysstat
软件包的一部分,能够提供详细的CPU利用率统计信息,包括用户空间、内核空间、空闲时间等。
mpstat
的全称是 MultiProcessor Statistics,它能够显示系统的整体CPU使用情况以及每个单独CPU的使用情况。通过它可以监控系统负载、检测性能瓶颈,并帮助优化系统资源分配。
在大多数Linux发行版中,mpstat
是作为 sysstat
包的一部分提供的。如果系统中没有安装 mpstat
,可以通过以下命令进行安装:
sudo apt-get update
sudo apt-get install sysstat
sudo yum install epel-release
sudo yum install sysstat
安装完成后,可以使用 mpstat --version
来验证是否安装成功。
运行以下命令可以查看当前系统的CPU使用情况:
mpstat
输出示例:
Linux 5.4.0-42-generic (ubuntu) 07/10/2023 _x86_64_ (4 CPU)
12:00:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:00:00 PM all 12.3 0.0 3.4 1.2 0.0 0.1 0.0 0.0 0.0 83.0
%usr
: 用户空间占用CPU的百分比。%nice
: 低优先级进程占用CPU的百分比。%sys
: 系统空间占用CPU的百分比。%iowait
: CPU等待I/O完成的时间百分比。%irq
: 硬中断占用CPU的百分比。%soft
: 软中断占用CPU的百分比。%steal
: 虚拟机环境下,其他虚拟机占用宿主机CPU的时间百分比。%idle
: CPU空闲时间的百分比。可以通过指定时间间隔和采样次数来动态监控CPU使用情况。例如,每2秒采样一次,共采样5次:
mpstat 2 5
默认情况下,mpstat
显示的是所有CPU的平均使用情况。如果想查看每个CPU的详细使用情况,可以使用 -P ALL
参数:
mpstat -P ALL
输出示例:
Linux 5.4.0-42-generic (ubuntu) 07/10/2023 _x86_64_ (4 CPU)
12:00:00 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
12:00:00 PM all 12.3 0.0 3.4 1.2 0.0 0.1 0.0 0.0 0.0 83.0
12:00:00 PM 0 15.0 0.0 4.0 2.0 0.0 0.2 0.0 0.0 0.0 79.0
12:00:00 PM 1 10.0 0.0 3.0 1.0 0.0 0.1 0.0 0.0 0.0 86.0
12:00:00 PM 2 13.0 0.0 3.5 1.5 0.0 0.1 0.0 0.0 0.0 82.0
12:00:00 PM 3 11.0 0.0 3.2 1.3 0.0 0.1 0.0 0.0 0.0 84.5
如果只想查看某个特定CPU的使用情况,可以指定CPU编号。例如,查看CPU 0的使用情况:
mpstat -P 0
sar
是另一个强大的系统性能分析工具,通常与 mpstat
结合使用。可以使用 sar
记录一段时间内的CPU使用情况,然后通过 mpstat
分析这些数据。
记录CPU使用情况:
sar -u 2 5 > cpu_usage.log
分析记录的数据:
mpstat -f cpu_usage.log
可以将 mpstat
的输出结果保存到文件中,方便后续分析:
mpstat > cpu_usage.txt
mpstat
是一个非常实用的工具,可以帮助系统管理员和开发人员快速了解CPU的使用情况,从而优化系统性能。通过结合不同的参数,可以灵活地获取不同维度的CPU使用数据。