在Ubuntu系统下使用mpstat工具监控CPU性能
在Ubuntu系统下使用mpstat工具监控CPU性能
- 一、mpstat简介
- 二、安装 mpstat
- 三、mpstat基本用法
- 3.1 查看所有 CPU 的平均使用情况
- 3.2 监控所有 CPU 核心的实时数据
- 3.3 设置采样间隔和次数*
- 3.4 常用选项解释及示例
- 3.5 输出解析
- 3.6 实际应用场景
- 四、总结
一、mpstat简介
mpstat
(Multiprocessor Statistics)是 Linux 系统中用于监控 CPU 使用情况的工具,尤其适合多核处理器系统。它能够实时显示每个 CPU 核心的利用率、中断、空闲时间等详细统计信息,帮助用户分析系统性能瓶颈。本文将介绍如何在 Ubuntu 系统中安装和使用mpstat
命令。
二、安装 mpstat
mpstat
是 sysstat
工具包的一部分,Ubuntu 系统默认未安装。可以通过以下命令安装:
apt update
apt install sysstat -y
安装完成后,mpstat
命令即可直接使用。如果安装后无法运行,可能需要启用 sysstat
服务以收集数据:
systemctl enable sysstat
systemctl start sysstat
检查 sysstat
服务状态,使用以下命令:
systemctl status sysstat
三、mpstat基本用法
3.1 查看所有 CPU 的平均使用情况
直接运行 mpstat
命令,会显示系统启动以来所有 CPU 的平均统计信息:
mpstat
root@jeven01:~# mpstat
Linux 5.15.0-143-generic (jeven01) 07/10/2025 _x86_64_ (4 CPU)03:02:28 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:02:28 PM all 0.07 0.00 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
3.2 监控所有 CPU 核心的实时数据
使用 -P ALL
选项,可查看每个 CPU 核心的实时性能:
root@jeven01:~# mpstat -P ALL
Linux 5.15.0-143-generic (jeven01) 07/10/2025 _x86_64_ (4 CPU)03:03:11 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:03:11 PM all 0.07 0.00 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
03:03:11 PM 0 0.07 0.00 0.03 0.01 0.00 0.01 0.00 0.00 0.00 99.88
03:03:11 PM 1 0.07 0.00 0.04 0.02 0.00 0.00 0.00 0.00 0.00 99.87
03:03:11 PM 2 0.07 0.01 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
03:03:11 PM 3 0.07 0.00 0.03 0.01 0.00 0.01 0.00 0.00 0.00 99.88
3.3 设置采样间隔和次数*
使用 interval
和 count
参数,可指定采样间隔(秒)和次数。以下命令表示每 2 秒采集一次数据,共采集 5 次。
mpstat 2 5
3.4 常用选项解释及示例
常用选项详解
选项 | 说明 |
---|---|
`-P {ALL | CPU编号}` |
-u | 显示 CPU 使用率(默认选项)。 |
-I | 显示中断统计信息(如硬件中断、软中断)。 |
-V | 显示 mpstat 版本信息。 |
-o JSON | 以 JSON 格式输出结果,便于自动化处理。 |
- 该命令用于监控系统中第一个 CPU 核心(CPU 0)的性能统计信息,每隔 1 秒输出一次,共输出 3 次。
mpstat -P 0 1 3
- 以 JSON 格式输出所有 CPU 统计信息
mpstat -P ALL -o JSON
3.5 输出解析
root@jeven01:~# mpstat
Linux 5.15.0-143-generic (jeven01) 07/10/2025 _x86_64_ (4 CPU)03:10:01 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:10:01 PM all 0.07 0.00 0.03 0.01 0.00 0.00 0.00 0.00 0.00 99.87
输出字段解析
mpstat
的输出包含多个关键字段,以下是主要字段的含义:
字段 | 含义 |
---|---|
%usr | 用户态程序占用 CPU 的百分比(不包含 nice 值为负的进程)。 |
%nice | 低优先级用户态程序(nice 值为负)占用 CPU 的百分比。 |
%sys | 内核态程序(系统调用)占用 CPU 的百分比。 |
%iowait | CPU 等待 I/O 操作完成的时间占比。 |
%irq | 处理硬件中断的时间占比。 |
%soft | 处理软件中断的时间占比。 |
%steal | 虚拟机管理程序从虚拟机中“窃取”的 CPU 时间(仅适用于虚拟化环境)。 |
%idle | CPU 空闲时间占比。 |
3.6 实际应用场景
-
排查 CPU 瓶颈
如果%usr
或%sys
持续高于 70%,可能表示 CPU 资源不足,需优化程序或升级硬件。 -
检查 I/O 等待问题
若%iowait
显著偏高,可能是磁盘或网络 I/O 瓶颈,需进一步检查存储设备或网络配置。 -
监控多核负载均衡
使用-P ALL
可查看各核心的利用率是否均衡,若某些核心负载过高,可能需要调整进程分配。
四、总结
mpstat
是一个强大的 CPU 性能监控工具,特别适合多核系统的性能分析。通过简单的命令和选项,用户可以快速获取 CPU 使用率、中断、空闲时间等关键指标,从而优化系统性能。对于开发人员、系统管理员或运维工程师来说,掌握 mpstat
的基本用法是排查性能问题的重要技能。