cpustat 本身只是一个查看 CPU 使用情况的工具,正常情况下它不应该长期占用高 CPU。如果你在 CentOS 上发现 cpustat 占用 CPU 很高,通常说明不是 cpustat 本身的问题,而是使用方式或系统环境异常。下面按常见原因给你系统排查一下。
top
# 或
ps -eo pid,ppid,cmd,%cpu --sort=-%cpu | head
确认:
cpustat 本身?例如:
示例问题脚本:
while true; do
cpustat
done
✅ 检查 cron:
crontab -l
cat /etc/crontab
ls /etc/cron.d/
✅ 检查是否有脚本:
ps -ef | grep cpustat
cpustat 默认会持续刷新输出,如果:
都会导致 CPU 升高。
✅ 正确用法(只采样一次):
cpustat 1 1
❌ 错误用法(会一直跑):
cpustat
某些老版本 sysstat / cpustat 在:
下可能出现异常。
✅ 检查版本:
cpustat --version
✅ 升级:
yum update sysstat
有时:
top 显示的是 瞬时采样✅ 用 pidstat 精确定位:
pidstat -u 1
查看整体 CPU 使用:
vmstat 1
iostat -x 1
常见原因:
✅ 执行以下命令快速定位:
ps -ef | grep cpustat
top
pidstat -u 1
重点看:
| 现象 | 原因 |
|---|---|
| cpustat 一直跑 | 没有限制采样次数 |
| cpustat 被反复调用 | cron / 脚本 |
| cpustat 占用 100% | 输出刷屏 / 终端慢 |
| 升级后正常 | 老版本 bug |
| 实际是别的问题 | 系统负载高 |
你可以直接贴出:
ps -ef | grep cpustat
top
或者告诉我:
我可以帮你精确定位是哪一行导致的 CPU 高。