在Ubuntu系统下使用mpstat工具监控CPU性能

举报
江湖有缘 发表于 2025/07/29 00:48:12 2025/07/29
【摘要】 在Ubuntu系统下使用mpstat工具监控CPU性能

一、mpstat简介

mpstat(Multiprocessor Statistics)是 Linux 系统中用于监控 CPU 使用情况的工具,尤其适合多核处理器系统。它能够实时显示每个 CPU 核心的利用率、中断、空闲时间等详细统计信息,帮助用户分析系统性能瓶颈。本文将介绍如何在 Ubuntu 系统中安装和使用 mpstat 命令。

二、安装 mpstat

mpstatsysstat 工具包的一部分,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 设置采样间隔和次数*

使用 intervalcount 参数,可指定采样间隔(秒)和次数。以下命令表示每 2 秒采集一次数据,共采集 5 次。

 mpstat 2 5

在这里插入图片描述

3.4 常用选项解释及示例

常用选项详解

选项 说明
-P {ALL|CPU编号} 监控所有 CPU 核心(ALL)或指定编号的核心(如 -P 0)。
-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 实际应用场景

  1. 排查 CPU 瓶颈
    如果 %usr%sys 持续高于 70%,可能表示 CPU 资源不足,需优化程序或升级硬件。

  2. 检查 I/O 等待问题
    %iowait 显著偏高,可能是磁盘或网络 I/O 瓶颈,需进一步检查存储设备或网络配置。

  3. 监控多核负载均衡
    使用 -P ALL 可查看各核心的利用率是否均衡,若某些核心负载过高,可能需要调整进程分配。

四、总结

mpstat 是一个强大的 CPU 性能监控工具,特别适合多核系统的性能分析。通过简单的命令和选项,用户可以快速获取 CPU 使用率、中断、空闲时间等关键指标,从而优化系统性能。对于开发人员、系统管理员或运维工程师来说,掌握 mpstat 的基本用法是排查性能问题的重要技能。


【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。