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

mpstat指令介绍

文章目录

    • 1. 功能介绍
    • 2. 语法介绍
    • 3. 应用场景
    • 4. 实际举例

1. 功能介绍

mpstat 英文全称( Multi-Processor Statistics),多处理器统计信息的含义。

下面大致说一下功能作用:

  • 多核性能监控
    • 可实时监控每个 CPU 核心的利用率、中断频率、上下文切换等指标,适用于多核/多线程系统的性能分析
  • 精细化统计维度
    • 支持按用户态(%usr)、内核态(%sys)、I/O 等待(%iowait)、中断(%irq)等多维度统计 CPU 使用情况,帮助定位性能瓶颈
  • 动态采样与历史数据结合
    • 默认显示系统启动以来的平均数据,也可设置采样间隔(如 mpstat 2 5 表示每 2 秒采样一次,共 5 次),用于实时监控和趋势分析

2. 语法介绍

语法结构:

mpstat [选项] [间隔时间] [采样次数]

选项举例说明:

参数作用示例
`-P {CPUALL}`指定监控的 CPU 核心(ALL 显示全部)
-u仅显示 CPU 利用率(默认包含此信息)mpstat -u 1 3
`-I {SUMCPU}`统计中断信息(SUM 汇总,CPU 分核心)
-N {节点}显示 NUMA 架构下指定节点的 CPU 状态mpstat -N 0
-o JSON输出 JSON 格式数据,便于自动化分析mpstat -o JSON
-V显示版本信息mpstat -V

输出字段说明:

root@root:~$ mpstat 
Linux 5.15.73 (root)    04/17/25        _aarch64_       (8 CPU)14:39:09     CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
14:39:09     all    7.81    0.00    9.25    0.01    1.29    0.16    0.00    0.00   81.48
字段说明优化方向
%usr用户空间程序占用的 CPU 时间(不含低优先级进程)高值可能表示计算密集型任务需优化算法
%sys内核空间占用的 CPU 时间(如系统调用、中断处理)高值可能需排查内核驱动或频繁系统调用
%iowaitCPU 等待磁盘 I/O 的时间占比高值需检查磁盘性能或优化 I/O 调度策略
%irq硬件中断处理时间占比(如网卡收包)高值可能需调整中断亲和性或升级硬件
%soft软中断处理时间占比(如网络协议栈处理)高值需优化网络协议栈或启用 RPS/RFS
%idleCPU 空闲时间占比持续低值可能需扩容 CPU 或优化任务分配
%steal虚拟化环境中被其他虚拟机占用的 CPU 时间(物理机无此值)高值需调整虚拟机资源配置或迁移负载

3. 应用场景

  1. 多核负载均衡分析

    通过 mpstat -P ALL 2 查看各核心利用率,若部分核心长期满载而其他空闲,可优化线程绑定(taskset)或启用 CPU 亲和性;

  2. I/O 瓶颈定位

    %iowait 持续高于 20%,需结合 iostat 检查磁盘吞吐量和延迟,可能需升级 SSD 或优化文件系统参数(如 noatime);

  3. 中断优化

    使用 mpstat -ICPU 查看各核心中断分布,若某核心 %irq 过高,可通过 /proc/irq/[IRQ号]/smp_affinity 调整中断绑定;

  4. 虚拟化性能监控
    在云服务器中,高 %steal 值(如 >10%)表明宿主机资源争用严重,需联系服务商扩容或迁移实例;

4. 实际举例

  1. 监控CPU核心的实时状态

    mpstat -P ALL 1  # 每秒刷新一次,按核心显示
    
  2. 分析软中断分布

    mpstat -I SCPU 2 5  # 每 2 秒采样一次,共 5 次,按核心显示软中断
    

相关文章:

  • [Java]Map和Set
  • AIBOX集成接口协议 V1.0
  • Sysstat学习入门
  • 一台 Master 多节点玩转 Kubernetes:sealos 一键部署实践
  • Proxmox VE 用户与权限管理命令大全
  • 2025年4月16日华为笔试第一题100分
  • MATLAB基础应用精讲-【数模应用】使用 TCP/IP 接口进行数据的写入和读取(附MATLAB和python代码实现)
  • uniapp通过uni.addInterceptor实现路由拦截
  • 条款07:为多态基类声明一个virtual析构函数
  • SL1680 SoC本地运行DeepSeek R1 1.5B大模型
  • vue将“00:00:09“的时间转换为秒,将时分秒hh:mm:ss的格式转换为秒,
  • 搭建 vue 项目环境详细步骤
  • qt+mingw64+cmake+libqrencode项目编译和搭建成功记录
  • Jsp技术入门指南【四】详细讲解jsp与Servlet的对比和Jsp生命周期和工作原理
  • VBA技术资料MF293:不打开工作簿获取值
  • 【运维学习】lvs + keepalived + 主从dns 项目搭建
  • 运筹学之指派问题(原始匈牙利算法以及KM算法)
  • 深度学习 从入门到精通 day_02
  • Google Test 与 Google Mock:C++ 测试与模拟的完美结合
  • 于 Jupyter 天地,借 NumPy 之手编织数据锦缎
  • 见证历史与未来共舞:上海西岸“蝶变共生”对话讲坛圆满举行
  • “五一”假期首日国铁郑州局迎大客流,预计发送旅客逾95万人次
  • 美乌矿产协议签署被曝“临门一脚”时生变,美方提附加条件
  • 世界黄金协会:一季度全球黄金投资需求同比增170%
  • ​关键词看中国经济“一季报”:韧,长期向好看底气
  • 中介在网上非法贩婴“一个孩子8.5万元”?丹阳警方介入