mpstat 命令详解:Linux 多核 CPU 性能监控与排查实战

发布时间:2026/10/2 13:38:34

mpstat 命令详解:Linux 多核 CPU 性能监控与排查实战 文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载本篇技术指南以 mpstat 命令手册 为核心系统讲解 Linux 下最常用的多 CPU 状态监控工具mpstat的语法、参数、输出字段含义与典型用法。通过学习本文你将掌握如何查看系统整体与单个 CPU 核心的使用率、定位 I/O 等待与中断开销、识别虚拟化环境中的资源抢占steal并能结合压力测试判断当前系统负载的真实来源为容量评估与性能调优提供第一手数据。命令概述面向多 CPU 环境的 CPU 状态查看器mpstatMulti-Processor Statistics是 Linux 下专门面向多 CPU 环境的状态监控命令主要用于查看系统中每个可用 CPU 的运行状态信息。这些状态数据来源于内核维护的/proc/stat文件——Linux 内核会持续统计每个 CPU 在用户态、内核态、中断处理等各类状态上花费的时间mpstat读取并格式化这些计数器后以百分比形式输出。与vmstat、iostat一样mpstat也属于 sysstat 性能分析工具族。在多点群集、双核甚至几十核的高性能服务器上使用mpstat不仅可以查看所有 CPU 的平均状况还能精确查看某一个特定 CPU的信息从而判断负载是均匀分布在整个系统上还是集中在某个或某几个核心上——这是定位多线程程序扩展性问题的关键手段。安装前提mpstat包含在sysstat软件包中。若系统中尚未安装可参照同仓库的 iostat 文档 中给出的安装方式# RedHat / CentOS / Fedora yum install sysstat # Debian / Ubuntu / Linux Mint sudo apt-get install sysstat安装完成后执行mpstat即可开始监控。语法与参数详解语法格式mpstat [选项] [间隔时间 [次数]]选项-P指定 CPU 编号。-P是mpstat最核心的选项取值方式如下-P ALL显示所有 CPU 的统计数据输出中all行表示全局平均值随后每一行对应一个 CPU 核心编号从 0 开始-P 0、-P 1等仅显示指定编号 CPU 的统计数据适合单独观察某个核心不带-P默认仅输出所有 CPU 的平均状态all行。参数间隔时间每次报告的时间间隔单位为秒次数显示报告的总次数。当间隔时间和次数均省略时mpstat输出的是系统从启动以来的累计平均值只有加上间隔时间才能观察到某一段时间内 CPU 的实时使用情况。输出表头字段含义mpstat输出的每一行对应一个采样周期的 CPU 状态各百分比字段含义如下字段含义%user处理用户进程所使用 CPU 的百分比%nice在用户级别处理经 nice 降级的程序所使用 CPU 的百分比%system内核进程使用的 CPU 百分比%iowait等待进行 I/O 所占用 CPU 时间的百分比%irq用于处理系统中断硬中断的 CPU 百分比%soft用于处理软件中断的 CPU 百分比%steal在管理程序Hypervisor为另一个虚拟处理器服务时虚拟的一个或多个 CPU 在非自愿等待中花费的时间百分比%guest一个或多个 CPU 在运行虚拟处理器客户机时所花费的时间百分比%gnice一个或多个 CPU 在运行经 nice 降级后的虚拟处理器时所花费的时间百分比%idleCPU 的空闲时间百分比实际输出的表头中%user会显示为%usr%system显示为%sys。解读时需注意%iowait 高说明 CPU 正在等待磁盘等 I/O 完成通常伴随磁盘瓶颈可结合 iostat 文档 中的r_await、w_await、%util等指标进一步确认%steal 高常见于云服务器和虚拟化环境说明宿主机上其他虚拟机抢占了你所在虚拟机的 CPU 时间属于宿主机资源争抢信号%irq 与 %soft 高说明中断或软中断如网卡收包消耗了大量 CPU需关注网卡队列、中断绑定等配置。实战一不带参数查看系统累计平均值当mpstat不带任何参数时输出的是从系统启动以来的平均值。例如在一台 4 核 CentOS 主机上mpstat Linux 3.10.0-1160.71.1.el7.x86_64 (centos) 08/14/2022 _x86_64_ (4 CPU) 04:28:36 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 04:28:36 PM all 0.03 0.00 0.07 0.00 0.00 0.01 0.00 0.00 0.00 99.89首行输出包含内核版本、主机名、日期与 CPU 数量4 CPUall行即全系统平均值。由于这是长时间累计的平均值系统瞬时波动会被平滑掉因此它只能反映总体状况无法体现短时间内的负载变化——要观察实时变化必须指定间隔时间。实战二按 CPU 核心逐核统计-P ALL下面的命令每 2 秒产生一次全部处理器的统计数据报告共产生 3 个 interval 的信息最后再给出这 3 个 interval 的平均信息mpstat -P ALL 2 3 Linux 3.10.0-1160.71.1.el7.x86_64 (centos) 08/15/2022 _x86_64_ (4 CPU) 09:32:43 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 09:32:45 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:45 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:45 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:45 AM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:45 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:45 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 09:32:47 AM all 0.00 0.00 0.12 0.00 0.00 0.12 0.00 0.00 0.00 99.75 09:32:47 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:47 AM 1 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50 09:32:47 AM 2 0.00 0.00 0.00 0.00 0.00 0.50 0.00 0.00 0.00 99.50 09:32:47 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:47 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 09:32:49 AM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:49 AM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:49 AM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:49 AM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 09:32:49 AM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle Average: all 0.00 0.00 0.04 0.00 0.00 0.04 0.00 0.00 0.00 99.92 Average: 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 Average: 1 0.00 0.00 0.17 0.00 0.00 0.00 0.00 0.00 0.00 99.83 Average: 2 0.00 0.00 0.00 0.00 0.00 0.17 0.00 0.00 0.00 99.83 Average: 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00输出结构解读默认按 CPU 编号排序输出首行all给出 2 秒内所有处理器总的使用情况接下来每行对应一个处理器03每个采样周期对应一个时间戳会重打一次表头所有采样结束后末尾输出Average:段汇总每个 CPU 在全部采样周期内的平均值。注意第二个采样周期中CPU 1 的%sys为 0.50、CPU 2 的%soft为 0.50——这说明瞬时负载集中在特定核心上逐核视角-P ALL能精确暴露这种分布而仅看all行只会看到 0.12 的模糊平均值。实战三带参数与不带参数的结果对比压力测试先对 localhost 进行网络压力测试ping -f localhost然后在另一个终端运行不带参数的mpstatmpstat Linux 3.10.0-1160.71.1.el7.x86_64 (centos) 08/15/2022 _x86_64_ (4 CPU) 09:34:20 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 09:34:20 AM all 0.03 0.00 0.07 0.00 0.00 0.02 0.00 0.00 0.00 99.88如前面所述不带参数时输出的是系统启动以来的平均值因此压力测试带来的瞬时变化完全被稀释看不出任何变化mpstat Linux 3.10.0-1160.71.1.el7.x86_64 (centos) 08/15/2022 _x86_64_ (4 CPU) 09:34:40 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 09:34:40 AM all 0.03 0.00 0.07 0.00 0.00 0.02 0.00 0.00 0.00 99.88只有加上间隔时间才能显示某一段时间内 CPU 的真实使用情况。在压力测试进行期间执行mpstat 3 10 Linux 3.10.0-1160.71.1.el7.x86_64 (centos) 08/15/2022 _x86_64_ (4 CPU) 09:36:21 AM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 09:36:24 AM all 1.81 0.00 7.03 0.00 0.00 6.37 0.00 0.00 0.00 84.79 09:36:27 AM all 1.82 0.00 6.88 0.00 0.00 5.83 0.00 0.00 0.00 85.47 09:36:30 AM all 1.95 0.00 5.86 0.00 0.00 4.98 0.00 0.00 0.00 87.21 09:36:33 AM all 3.95 0.00 6.50 0.00 0.00 5.46 0.00 0.00 0.00 84.09 09:36:36 AM all 4.05 0.00 6.21 0.00 0.00 5.64 0.00 0.00 0.00 84.10 09:36:39 AM all 4.21 0.00 6.92 0.00 0.00 5.33 0.00 0.00 0.00 83.54 09:36:42 AM all 3.72 0.00 7.17 0.00 0.00 6.05 0.00 0.00 0.00 83.05 09:36:45 AM all 3.97 0.00 6.93 0.00 0.00 6.65 0.00 0.00 0.00 82.46 09:36:48 AM all 4.30 0.00 9.55 0.00 0.00 9.55 0.00 0.00 0.00 76.59 09:36:51 AM all 4.35 0.00 9.31 0.00 0.00 8.79 0.00 0.00 0.00 77.55 Average: all 3.44 0.00 7.28 0.00 0.00 6.52 0.00 0.00 0.00 82.76对比可以发现压力测试期间%sys从 0.07% 升至 7% 左右、%soft从 0.02% 升至 5%9%说明ping -f localhost产生的大量网络软中断成为主要的 CPU 消耗来源是否指定间隔时间直接决定了mpstat反映的是系统启动以来的历史平均值还是当前实时状态要正确反映系统情况必须正确使用命令参数这一点对vmstat和iostat同样适用——三者都是通过指定采样间隔来观察实时变化具体可对照 vmstat 文档 与 iostat 文档。仓库索引与文档检索说明本指南对应的原始手册位于仓库的 command/mpstat.md该文件与仓库内 600 余个命令文档一同维护。mpstat的检索索引记录在 dist/data.json 中n: mpstat、p: /mpstat通过npm install linux-command安装后即可在本地以结构化数据或 Markdown 文本形式获取该命令的完整说明方便集成到内部知识库或工具链中。小结mpstat 使用要点速查使用场景推荐命令关键输出查看系统启动以来平均负载mpstatall行累计百分比实时查看整体 CPU 使用mpstat 3每 3 秒刷新all行实时百分比逐核查看所有 CPU 状态mpstat -P ALL 2 3每个 CPU 独立一行 Average 汇总单独观察某个核心mpstat -P 2 1仅 CPU 2 的数据定位 I/O 瓶颈结合%iowait与 iostat 的%util、r_await判断磁盘是否饱和排查虚拟化资源争抢观察%steal数值判断宿主机是否过载实际监控时建议先用mpstat判断 CPU 层级的瓶颈方向用户态、内核态、I/O 等待还是被抢占再针对性地使用vmstat观察内存与进程队列、使用iostat下钻磁盘、使用sar留存历史采样见 sar 文档形成完整的系统性能分析闭环。赞分享文档教程【免费下载链接】linux-commandLinux命令大全搜索工具内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux项目地址https://gitcode.com/GitHub_Trending/linux/linux-command点击查看免费下载相关推荐Linux iostat 命令详解监控系统 I/O 设备与 CPU 使用率实战指南Linux iostat 命令详解监控系统 I/O 设备与 CPU 使用率实战指南 iostat 是 sysstat 工具包中最常用的系统性能监控命令之一它文档教程taskset 命令速查Linux CPU 亲和性设置与查看实战指南taskset 命令速查Linux CPU 亲和性设置与查看实战指南 本篇指南完整讲解 Linux taskset 命令的核心用法它既可以 查看 运行中进程文档知识库教程开发工具jc mpstat 解析器详解将 mpstat 多核 CPU 利用率与中断统计输出转为结构化 JSONjc mpstat 解析器详解将 mpstat 多核 CPU 利用率与中断统计输出转为结构化 JSON mpstat 是 sysstat 工具包中用于输出每个开发工具上一篇AMD Ryzen硬件调试专家指南5步掌握处理器性能调优下一篇Obsidian AI 自动化指南5 个 Agent Skills 如何让笔记自己跑起来创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/2 13:38:34

2 种方式免费解锁 WeMod Pro:无限时长与 AI 攻略完整指南

2 种方式免费解锁 WeMod Pro:无限时长与 AI 攻略完整指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer WeMod 的 Pro 订阅不便宜&…

2026/10/2 14:38:38

Redis 接入 AI 能力全解析:向量检索、会话管理与多 Agent 协作实践

1. 从一条更新日志说起:Redis 接入 AI 到底意味着什么 前几天刷社区的时候看到一条消息,说 Redis 官方在最新版本里正式把 AI 相关的能力做进了核心链路。第一反应是"又一个蹭热点的营销词",但把更新说明和几个相关提案翻完之后&am…

2026/10/2 14:38:38

6DOF-GraspNet六自由度抓取:从点云到机械臂位姿估计实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/2 14:38:38

RK平台YTPHY驱动移植全流程:解压验包到设备树避坑指南

简介:面向RK3568平台的YT8521S以太网PHY驱动补丁包,主要服务于嵌入式Linux开发者和内核驱动适配工程师,解决YT8521S在RK3568平台上驱动缺失或无法正常识别的问题,省去从零移植和调试的重复工作。压缩包共11个文件,主要…

2026/10/2 14:38:38

RK平台YTPHY PHY驱动移植实战:从拆包、配置到验证

简介:面向RK3568平台的YT8521S以太网PHY驱动补丁,专为嵌入式驱动开发与系统移植工程师设计,重点是解决YT8521S在RK3568平台上的驱动适配与PHY芯片调试问题。资源按kernel4.19与kernel4.4两个内核版本分目录组织,各自包含PHY驱动源…

2026/10/2 14:38:38

舰船卫星图目标检测数据集:VOC格式解析与YOLOv8训练实操

简介:舰船卫星可见光目标检测数据集(第一批)正式发布,面向计算机视觉、遥感图像分析与目标检测算法研究者,可用于模型训练、算法验证与性能评估。数据集提供1000张10241024像素的RGB彩色卫星图像,覆盖舰船与…

2026/10/2 8:16:46

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/1 17:09:46

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/1 10:48:55

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/2 0:02:57

PWN入门:从栈溢出原理到ROP链实战

1. 这不是“学PWN”,是重新理解你每天敲的每一行C代码我第一次在CTF赛场上写出能控制程序流的exp时,手抖得连gdb的c命令都输错三次。那道题只有23行C代码,一个gets()调用,一个printf(),一个return——它甚至没开NX&…

2026/10/2 0:02:57

Windows下cudaMallocHost显存占用之谜:WDDM与TCC模式差异及优化方案

1. 一个反直觉的显存占用现象第一次在 Windows 上看到cudaMallocHost把显存吃掉的时候,我的反应是打开任务管理器反复确认了三遍。明明调用的是主机端锁页内存分配,按 CUDA 文档的说法,这块内存应该落在系统 RAM 里,跟 GPU 的显存…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑