cpustat 在 CentOS 上没有数据,通常是工具未正确安装、使用方式不对,或系统环境不支持导致的。下面按最常见原因 → 排查方法 → 解决方案给你一个完整排查清单。
cpustatcpustat 不是 CentOS 自带的核心工具,最常用的是两种:
sysstat 包里的 sar / mpstat(很多人误叫 cpustat)CentOS 官方常用,但没有直接叫 cpustat 的命令。
rpm -qa | grep sysstat
如果没有:
yum install -y sysstat
然后看 CPU 数据:
mpstat -P ALL 1
sar -u 1 3
✅ 有数据说明系统没问题,只是你误以为叫 cpustat
这是第三方的:
cpustat
如果你装的是这个:
which cpustat
如果没有:
cpustat
cpustat 需要读取 /proc 和 /sys,普通用户经常没数据
sudo cpustat
✅ 解决:加 sudo
cpustat 1 1
如果只跑 1 秒,有时看不到数据
✅ 建议:
cpustat 1 5
systemd-detect-virt
如果是:
⚠️ 容器里 /proc 可能是受限的
✅ 解决:
--privilegedcpustat 默认可能只显示有负载的 CPU
top
如果 CPU idle 很高,cpustat 看起来像“没数据”
✅ 建议:
stress -c 2
再开一个窗口跑 cpustat
老内核可能缺少某些 /proc/stat 字段
uname -r
✅ 建议:
sysstat# 1. 是否是 root
whoami
# 2. 是否能看到 CPU 数据
cat /proc/stat
# 3. sysstat 是否正常
mpstat -P ALL 1 2
# 4. cpustat 是否存在
which cpustat
# 5. 运行方式
sudo cpustat 1 5
| 场景 | 建议 |
|---|---|
| 只想看 CPU 使用率 | ✅ top / mpstat / sar |
| 想要 cpustat 那种输出 | ✅ sudo cpustat |
| 在 Docker / K8s | ❌ 不建议用 cpustat |
| 老 CentOS | ✅ 用 sysstat |
如果你愿意,可以把下面信息发我,我可以精确判断:
cat /etc/centos-release)uname -r)我可以直接告诉你为什么没数据。