温馨提示×

cpustat为何无法运行

小樊
53
2026-08-14 01:40:18
栏目: 编程语言

cpustat 无法运行的原因有很多,常见情况和排查思路如下。你可以对照看看属于哪一种。


一、命令不存在(最常见)

现象

cpustat: command not found

原因

cpustat 不是系统自带命令,常见于:

  • 未安装
  • 安装了但不在 PATH

解决方法

1️⃣ 确认是否安装

which cpustat
type cpustat

2️⃣ 安装(不同系统)

  • Ubuntu / Debian
sudo apt update
sudo apt install cpustat
  • RHEL / CentOS / Rocky
sudo yum install cpustat
# 或
sudo dnf install cpustat
  • Arch
sudo pacman -S cpustat

如果仓库里没有 cpustat,可能是第三方工具(如 stress-ngsysstat 套件中的工具)。


二、权限不足

现象

Permission denied

Operation not permitted

原因

cpustat 通常需要读取 /proc、调度统计或 perf 数据。

解决方法

sudo cpustat

或赋予 CAP 权限(高级用法):

sudo setcap cap_sys_admin,cap_sys_ptrace+ep /usr/bin/cpustat

三、内核不支持 / 缺少 perf 子系统

现象

No permission or perf event not supported

原因

  • 内核未开启 CONFIG_PERF_EVENTS
  • 运行在容器 / 虚拟化环境中
  • 云服务器禁用了 perf

排查

ls /proc/sys/kernel/perf_event_paranoid

查看限制:

cat /proc/sys/kernel/perf_event_paranoid

临时放宽(需 root):

sudo sysctl -w kernel.perf_event_paranoid=-1

四、运行在容器中(Docker / Kubernetes)

现象

  • 命令存在
  • 一运行就失败或没输出

原因

容器通常 没有足够的内核权限 访问 CPU 调度信息。

解决

  • 宿主机 运行
  • 或给容器特权(不推荐生产环境):
docker run --privileged

五、版本不兼容 / 动态链接错误

现象

cpustat: error while loading shared libraries

原因

缺少依赖库

排查

ldd $(which cpustat)

安装缺失库即可。


六、你用的其实是“伪 cpustat”

有些系统里:

cpustat

其实是 脚本或别名,而不是真正的工具。

检查:

type cpustat

七、快速自检清单 ✅

你可以直接跑这几条命令,把结果贴出来我帮你判断:

which cpustat
type cpustat
sudo cpustat
uname -r
cat /proc/sys/kernel/perf_event_paranoid

如果你愿意,可以告诉我:

  • 使用的 系统版本(Ubuntu 20.04 / CentOS 7 / 容器?)
  • 报错 完整信息
  • 是否是 云服务器

我可以给你更精确的解决方案。

0