mpstat可精确查看各cpu核心实时使用率:需先安装sysstat包,用mpstat -p all 1分核监控,mpstat -p all 0.5 10捕获峰值,配合sysstat服务实现历史数据归档分析。

如果您需要在Linux系统中精确查看每个CPU核心的实时使用率,则mpstat工具能提供比top或vmstat更细致的多核统计信息。以下是使用mpstat查看CPU占用的具体操作步骤:
一、安装sysstat工具包
mpstat命令属于sysstat软件包,多数Linux发行版默认未预装,需手动安装。该工具包还包含iostat、sar等系统性能分析命令。
1、在基于Debian/Ubuntu的系统中,执行:sudo apt-get update && sudo apt-get install sysstat
2、在基于RHEL/CentOS/Rocky Linux的系统中,执行:sudo yum install sysstat(CentOS 7及更早)或 sudo dnf install sysstat(RHEL 8+ / Rocky 9)
3、安装完成后,可运行 mpstat -V 验证版本信息,确认安装成功。
二、使用mpstat查看整体CPU使用率
mpstat默认输出单行汇总统计,反映所有CPU核心的平均使用情况,适合快速掌握系统整体负载水平。
1、在终端中输入:mpstat,按回车执行(无参数时显示自系统启动以来的平均值)
2、观察输出中“%usr”、“%sys”、“%idle”等列:其中%usr表示用户态CPU时间占比,%sys为内核态占比,%idle为空闲占比;三者之和接近100%
3、若需实时刷新,默认间隔为1秒,可直接运行:mpstat 1
三、使用mpstat查看各CPU核心独立使用率
通过指定-p all参数,mpstat可分别列出每个逻辑CPU(包括超线程核心)的详细占用数据,便于定位单核过载问题。
1、执行命令:mpstat -P ALL 1(-P等价于-p,ALL必须大写)
2、输出首行为全局平均值(CPU字段显示为all),其后每行对应一个CPU编号(如CPU 0、CPU 1…),各列含义与整体模式一致
3、持续观察时,若某CPU的%usr + %sys长期高于90%,而其他核心处于低负载状态,可能表明存在线程绑定或调度不均问题
四、使用mpstat捕获指定时段峰值数据
结合计数参数可限制采样次数,用于短时高精度监控,避免日志无限增长,适用于故障复现期间的数据抓取。
1、执行:mpstat -P ALL 0.5 10,表示每500毫秒采集一次,共采集10次(即覆盖5秒窗口)
2、输出末尾将追加一行“Average:”,显示该时段内各CPU的算术平均值
3、重点关注“%iowait”列:若某核心该值显著偏高(如>20%),说明该CPU正大量等待I/O完成,需同步检查磁盘或存储子系统响应
五、启用sysstat服务实现历史数据记录
mpstat本身不保存历史数据,但sysstat包附带的sa1/sa2服务可定时采集并归档CPU、内存、IO等指标,支持后续用sar回溯分析。
1、启用服务(以systemd为例):sudo systemctl enable --now sysstat
2、验证服务状态:sudo systemctl status sysstat,应显示active (running)
3、默认配置下,每10分钟执行一次数据采集,原始文件存于/var/log/sa/saXX(XX为当前日期),可用sar -u 1 5调取最近内存中的实时数据,或用sar -u -f /var/log/sa/sa29读取3月29日的归档记录










