在 Debian 上执行 cpustat 后没有任何数据(空输出或卡住),通常有以下几种原因和解决办法:
cpustatDebian 里有两个容易混淆的东西:
cpustat(sysstat 里的不是这个)cpustat 来自 cpustat 包检查是否安装:
which cpustat
dpkg -l | grep cpustat
正确的包:
sudo apt install cpustat
cpustat 需要读取 perf / proc / scheduler 统计信息,普通用户经常没权限。
现象:
解决:
sudo cpustat
或用 root:
su -
cpustat
cpustat 依赖:
CONFIG_PERF_EVENTSCONFIG_SCHEDSTATS检查:
zgrep CONFIG_PERF_EVENTS /proc/config.gz
zgrep CONFIG_SCHEDSTATS /proc/config.gz
如果没开,需要换内核或重新编译内核。
cat /proc/schedstat
如果为空,说明内核没开调度统计。
cpustat 默认需要采样时间,例如:
cpustat 1 5
表示:每 1 秒采样,共 5 次
如果你只敲:
cpustat
它可能:
在:
中,cpustat 可能因 namespace 限制读不到数据。
某些旧版 cpustat 在新型内核上有问题。
升级:
sudo apt update
sudo apt install cpustat
sudo apt install cpustat
sudo cpustat 1 3
cat /proc/schedstat
如果你愿意,可以把:
cpustat 的输出uname -a)发出来,我可以直接帮你判断是哪一种原因。