cpustat 在 CentOS 上显示 CPU 使用率很高,通常有以下几类原因。这里按最常见 → 较少见给你系统排查思路,并给出对应命令。
比如:
排查:
top
# 或
htop
看:
%us(user)是否很高PID 占 CPU 最多进一步:
ps -p <PID> -o pid,ppid,cmd,%cpu
说明 系统调用、中断、IO、网络 繁忙。
常见原因:
排查:
vmstat 1
iostat -x 1
sar -n DEV 1
重点看:
system 列iowaitCPU 没干活,但在等磁盘。
典型场景:
排查:
iostat -x 1
重点看:
%util 接近 100%await / svctm 大一般由 网卡、磁盘、虚拟化 引起。
排查:
cat /proc/interrupts
mpstat -P ALL 1
常见:
cpustat 默认是瞬时数据,容易误判。
✅ 建议:
cpustat 1 5
例如:
整体看起来不算高,但单核已经打满
排查:
mpstat -P ALL 1
云厂商:
重点看:
top
是否有:
%st (steal)
steal 高 = 宿主机抢资源
CPU 频率变化可能影响统计。
lscpu | grep MHz
CentOS 7 常见:
cpupower frequency-info
top
mpstat -P ALL 1
vmstat 1
iostat -x 1
然后问自己三个问题:
你可以直接把下面信息贴出来(脱敏即可):
top 前 20 行mpstat -P ALL 1 3vmstat 1 5cat /etc/centos-release)我可以帮你直接判断是哪一类问题,以及要不要优化、怎么优化。