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 {CPU | ALL}` | 指定监控的 CPU 核心(ALL 显示全部) |
-u | 仅显示 CPU 利用率(默认包含此信息) | mpstat -u 1 3 |
`-I {SUM | CPU}` | 统计中断信息(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 时间(如系统调用、中断处理) | 高值可能需排查内核驱动或频繁系统调用 |
%iowait | CPU 等待磁盘 I/O 的时间占比 | 高值需检查磁盘性能或优化 I/O 调度策略 |
%irq | 硬件中断处理时间占比(如网卡收包) | 高值可能需调整中断亲和性或升级硬件 |
%soft | 软中断处理时间占比(如网络协议栈处理) | 高值需优化网络协议栈或启用 RPS/RFS |
%idle | CPU 空闲时间占比 | 持续低值可能需扩容 CPU 或优化任务分配 |
%steal | 虚拟化环境中被其他虚拟机占用的 CPU 时间(物理机无此值) | 高值需调整虚拟机资源配置或迁移负载 |
3. 应用场景
-
多核负载均衡分析
通过
mpstat -P ALL 2
查看各核心利用率,若部分核心长期满载而其他空闲,可优化线程绑定(taskset
)或启用 CPU 亲和性; -
I/O 瓶颈定位
若
%iowait
持续高于 20%,需结合iostat
检查磁盘吞吐量和延迟,可能需升级 SSD 或优化文件系统参数(如noatime
); -
中断优化
使用
mpstat -ICPU
查看各核心中断分布,若某核心%irq
过高,可通过/proc/irq/[IRQ号]/smp_affinity
调整中断绑定; -
虚拟化性能监控
在云服务器中,高%steal
值(如 >10%)表明宿主机资源争用严重,需联系服务商扩容或迁移实例;
4. 实际举例
-
监控CPU核心的实时状态
mpstat -P ALL 1 # 每秒刷新一次,按核心显示
-
分析软中断分布
mpstat -I SCPU 2 5 # 每 2 秒采样一次,共 5 次,按核心显示软中断