在 CentOS 上执行 cpustat 时输出为空(没有任何数据),通常有以下几种原因。先说明一点:cpustat 不是 CentOS 自带命令,常见来源有两个:
mpstat / sar(不是叫 cpustat)cpustat(由 erikdubois / colin990 / brendangregg 等实现,通常是 Go 写的性能工具)下面分别说明“为空”的常见原因和解决办法。
cpustat?先确认一下:
which cpustat
cpustat --help
这是最常见的“空输出”情况。
cpustat 需要读取 /proc 和 perf 数据,普通用户经常看不到进程。
✅ 解决:
sudo cpustat
有些 cpustat 默认只显示:
如果系统几乎空闲,就可能一行都没有。
✅ 解决(示例):
sudo cpustat -s 0 # 显示所有进程
sudo cpustat -u 0.1 # 降低阈值
cpustat 依赖 perf_event
检查:
ls /proc/sys/kernel/perf_event_paranoid
cat /proc/sys/kernel/perf_event_paranoid
如果是 -1 或 1 问题不大;某些云厂商内核会禁用。
✅ 临时放开:
sudo sysctl kernel.perf_event_paranoid=1
➡ 根本读不到 CPU 事件
cpustat 是系统命令,其实没有CentOS 默认 没有 cpustat
✅ 正确命令是:
mpstat 1
sar -u 1
top
htop
例如:
yum install sysstat -y
mpstat 1 5
# 1. 是否真的有 cpustat
which cpustat
# 2. 用 root 试
sudo cpustat
# 3. 看帮助
cpustat -h
# 4. 系统是否空闲
top
# 5. 用标准工具验证
mpstat 1
which cpustat 输出cpustat 的完整命令cat /etc/redhat-release)我可以根据你的环境精确定位。