温馨提示×

debian cpustat为何没数

小樊
41
2026-09-19 23:05:58
栏目: 智能运维

在 Debian 上执行 cpustat没有任何数据(空输出或卡住),通常有以下几种原因和解决办法:


1. 没安装正确的 cpustat

Debian 里有两个容易混淆的东西:

  • cpustat(sysstat 里的不是这个)
  • 真正的 cpustat 来自 cpustat

检查是否安装:

which cpustat
dpkg -l | grep cpustat

正确的包:

sudo apt install cpustat

2. 权限不足(最常见)

cpustat 需要读取 perf / proc / scheduler 统计信息,普通用户经常没权限。

现象:

  • 没报错
  • 输出为空
  • 或只显示表头

解决:

sudo cpustat

或用 root:

su -
cpustat

3. 内核未开启 perf 相关支持

cpustat 依赖:

  • CONFIG_PERF_EVENTS
  • CONFIG_SCHEDSTATS

检查:

zgrep CONFIG_PERF_EVENTS /proc/config.gz
zgrep CONFIG_SCHEDSTATS /proc/config.gz

如果没开,需要换内核或重新编译内核。


4. /proc/schedstat 不存在或为空

cat /proc/schedstat

如果为空,说明内核没开调度统计。


5. 运行时间太短

cpustat 默认需要采样时间,例如:

cpustat 1 5

表示:每 1 秒采样,共 5 次

如果你只敲:

cpustat

它可能:

  • 等待
  • 或只输出 0

6. 容器 / 虚拟机限制

在:

  • Docker
  • LXC
  • 某些云虚拟机

中,cpustat 可能因 namespace 限制读不到数据。


7. 版本 bug

某些旧版 cpustat 在新型内核上有问题。

升级:

sudo apt update
sudo apt install cpustat

快速排查清单 ✅

sudo apt install cpustat
sudo cpustat 1 3
cat /proc/schedstat

如果你愿意,可以把:

  • cpustat 的输出
  • 内核版本(uname -a
  • 是否虚拟机

发出来,我可以直接帮你判断是哪一种原因。

0