暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mpstat工具监控CPU性能

wzf0072 2026-01-04
150

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 瓶颈undefined如果 %usr%sys 持续高于 70%,可能表示 CPU 资源不足,需优化程序或升级硬件。
  2. 检查 I/O 等待问题undefined若 %iowait 显著偏高,可能是磁盘或网络 I/O 瓶颈,需进一步检查存储设备或网络配置。
  3. 监控多核负载均衡undefined使用 -P ALL 可查看各核心的利用率是否均衡,若某些核心负载过高,可能需要调整进程分配。

四、总结

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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论