当前位置: 首页 > news >正文

Linux CPU瓶颈排查神器!mpstat命令超全详解|多核CPU精准监控

1. 命令简介

mpstat 命令是 sysstat 工具集的一部分,用于实时监控多处理器(多核CPU)系统中各个CPU核心的利用率统计信息。它能够清晰地展示用户态、内核态、I/O等待、中断处理等不同维度的CPU时间分配情况,是进行系统性能分析、定位CPU瓶颈和负载均衡问题的重要工具。

2. 语法格式

mpstat [选项] [<间隔时间> [<次数>]]

参数说明:

间隔时间:指定每次统计报告之间的间隔秒数。如果未指定,则只输出一次自系统启动以来的平均统计信息。

次数:指定生成报告的次数。如果指定了间隔时间但未指定次数,mpstat 将持续生成报告,直到手动中断(通常使用 Ctrl+C)。

3. 常用选项及说明

选项

说明

-P { <cpu> | ALL }

指定要报告的CPU。<cpu> 是CPU编号(从0开始)。使用 ALL 表示报告所有CPU的统计信息,包括一个 all 的汇总行。这是最常用的选项之一。

-I { SUM | CPU | SCPU | ALL }

报告中断统计信息。SUM:显示系统总中断速率。CPU:显示每个CPU每秒接收的中断数量。SCPU:显示每个CPU的软中断统计信息(需要内核2.6.31+)。ALL:显示以上所有信息。

-u

报告CPU利用率(默认选项)。即使不指定,输出也是CPU利用率信息。

-V

显示 sysstat 工具的版本信息并退出。

-o JSON

以JSON格式输出结果,便于脚本解析(需要 sysstat 11.7.3+ 版本)。

-N { <node_list> | ALL }

在NUMA架构系统中,报告指定内存节点的CPU统计信息。<node_list> 是节点列表(如 0,2 或 0-2)。ALL 表示所有节点。

4. 示例用法

显示自系统启动以来的平均CPU利用率(所有CPU汇总)

这是不带任何参数的基本用法,显示一个整体的历史平均值。

mpstat

以2秒为间隔,持续监控所有CPU(包括每个核心和汇总)

这是最经典的实时监控用法,-P ALL 是关键。

mpstat -P ALL 2

按 Ctrl+C 停止。

以3秒为间隔,共采样5次,并显示所有CPU信息

命令将输出5次报告,并在最后给出这5次采样的平均值。

mpstat -P ALL 3 5

仅监控特定的CPU核心(例如,核心0和核心2)

mpstat -P 0,2 1 3

监控系统中断统计信息

显示系统全局中断速率。

mpstat -I SUM 2

显示每个CPU核心的中断数量。

mpstat -I CPU 2

结合 watch 命令进行动态高亮监控

使用 watch 可以刷新屏幕,结合 --diff 可以高亮显示变化的部分。

watch -n 1 --differences=cumulative mpstat -P ALL 1 1

5. 输出字段含义详解(执行 mpstat -P ALL 后常见字段)

字段

含义

CPU

处理器编号。all 表示所有处理器的统计平均值。

%usr

在用户级别(应用程序)执行时发生的CPU利用率百分比。

%nice

在用户级别,用于执行 nice 优先级进程的CPU利用率百分比。

%sys

在内核级别(系统调用、中断处理等)执行时发生的CPU利用率百分比。

%iowait

系统有未完成的磁盘I/O请求时,CPU空闲时间的百分比。高值可能表示I/O瓶颈。

%irq

CPU用于处理硬件中断的时间百分比。

%soft

CPU用于处理软件中断(如网络协议栈处理)的时间百分比。

%steal

在虚拟化环境中,虚拟CPU等待宿主机CPU服务的时间百分比。非零值表示宿主机资源竞争。

%guest

CPU运行虚拟机的时间百分比。

%gnice

CPU运行低优先级(nice)虚拟机的时间百分比。

%idle

CPU空闲且系统没有未完成的磁盘I/O请求的时间百分比。

6. 注意事项

数据来源:mpstat 的数据来源于 /proc/stat 文件。其统计的是时间片的占用比例,而非CPU的绝对时钟周期。

首次采样:当指定了间隔时间后,第一次报告的数据仍然是自系统启动以来的平均值。从第二次报告开始,才是上一个间隔时间内的瞬时或平均数据。

%iowait 的解释:%iowait 高并不一定意味着磁盘是瓶颈,它只表示CPU在那段时间是空闲的,并且系统恰好有I/O在进行。需要结合 iostat、iotop 等工具综合判断。

%steal 在虚拟化环境:如果虚拟机的 %steal 值持续较高,表明宿主机物理CPU资源紧张,该虚拟机正在与其他虚拟机竞争CPU时间。

安装:大多数Linux发行版默认不安装 sysstat。您可能需要使用包管理器安装,例如:

Ubuntu/Debian: sudo apt install sysstat

CentOS/RHEL/Fedora: sudo yum install sysstat 或 sudo dnf install sysstat

版本差异:不同版本的 sysstat 工具,mpstat 的输出字段可能略有不同(例如,旧版本可能没有 %guest 和 %gnice 字段)。请使用 mpstat -V 查看版本。

获取更多Linux学习资料请关注“阿成学长工具包”,对话框中输入2647获取

http://www.jsqmd.com/news/1112967/

相关文章:

  • AI的灵感创作
  • 大模型轻量化推理技术选型与实践指南
  • 4K60 over IP 网线延长pcba芯片方案
  • 鸿蒙NEXT原生开发实战:用ArkTS+ArkUI从零构建智能礼物推荐应用
  • 基于鸿蒙NEXT的AI健康管家应用开发全解析:从零构建离线智能健康推荐引擎
  • 多模型路由网关实战:Node.js安全接入Claude与GPT-4o
  • MuleSoft实现企业级AI编排:LLM与ERP/CRM/SAP的可靠集成
  • DeepSeek V4本地部署三步落地:GGUF量化、API代理与中文Tokenizer实战
  • 5个大模型写Todo List实测:前端代码生成能力深度拆解
  • Kimi K2.5:可调度AI协作者系统如何驱动工作模式变革
  • JMeter邮件服务器压测实战:SMTP/POP3协议性能瓶颈定位与优化
  • php路由 if路由
  • 基于Python的重庆市图书馆管理系统
  • 【新闻】英特尔亮相第四届链博会,AI PC生态伙伴艾为电子以全链路芯片点亮 AI PC 新升级
  • utshell核心功能解析:如何实现Bash、Korn和C shell的完美整合
  • 偏度与峰度:数据分布的形状罗盘与建模避坑指南
  • OpenClaw 4核8G低内存优化实战:从5.2GB到1.3GB RSS
  • Beyond Compare 5逆向工程破解方案:3种完整软件授权管理工具深度解析
  • AI数据采集实战:从爬虫基础到分布式架构
  • Windows10Debloater完全指南:3步自动化清理Windows系统臃肿,释放系统性能
  • 体制内必须用上的3个AI工具
  • Jakarta Validation 校验注解速查手册
  • 试用duckdb 1.6dev python模块
  • PyTorch 训练稳定性:梯度爆炸前通常有征兆
  • [Android] Utool 高级版-AI视频图片剪辑修改-超清放大
  • 协程本质是函数加状态机——零基础深入浅出 C++20 协程
  • Super IO:Blender剪贴板导入导出插件终极指南,3倍提升3D工作流效率
  • 微信公众号授权登录全流程实战:从OpenID到JWT Token的完整实现
  • 2026佳木斯黄金回收白银回收铂金回收旧料回收怎么选?五家高实价铂金白银线下门店测评清单 + 联系方式
  • C++工程化开发规范、内存泄漏排查、常见报错与高阶实战总结