在 CentOS 上排查 CPU 使用情况,cpustat 并不是系统默认自带命令(它通常来自 sysstat 包中的 mpstat,或者来自 pcp / pcp-zeroconf 的 cpustat)。下面我分几种常见情况说明:怎么装、怎么用、怎么看、怎么排查问题。
mpstat(最常见)很多人说的其实是:
mpstat
mpstat -P ALL 1
安装:
yum install -y sysstat
cpustat如果是真正的 cpustat 命令:
which cpustat
如果来自:
/usr/bin/cpustat
通常属于:
yum install -y pcp
top
或更好用的:
htop
mpstat -P ALL 1
关键列说明:
%usr:用户态 CPU%sys:内核态 CPU%iowait:IO 等待(高说明磁盘慢)%idle:空闲(低说明 CPU 忙)cpustat 1
常用参数:
cpustat 1 5
(每秒一次,共 5 次)
输出示例:
CPU user sys idle iowait
0 12 5 80 3
top
看:
%CPU 高的进程可能原因:
检查:
mpstat -P ALL 1
cat /proc/interrupts
iostat -x 1
看:
%util 是否接近 100%await 是否很大说明:
解决:
top
mpstat -P ALL 1
iostat -x 1
vmstat 1
你可以直接发我:
mpstat -P ALL 1 的输出top 里 CPU 占用最高的进程我可以帮你精确定位是哪类问题。