Ubuntu 上 cpustat 常见问题排查与解决
一 快速自检与修复
- 确认是否已安装:运行 cpustat -V 或 which cpustat。若未安装,执行:sudo apt update && sudo apt install sysstat。
- 若命令找不到或不在 PATH:常见二进制路径为 /usr/bin/cpustat,可直接执行 /usr/bin/cpustat;必要时执行 source /etc/profile 刷新环境。
- 权限不足:遇到权限错误时,使用 sudo cpustat。
- 显示异常(乱码、颜色异常):尝试 sudo cpustat --no-color。
- 版本或组件异常:执行 sudo apt update && sudo apt upgrade sysstat;必要时重装 sudo apt-get install --reinstall sysstat。
- 仍未解决:保留并分析完整报错信息,便于进一步定位。
二 高频问题对照表
| 症状 |
可能原因 |
快速修复 |
| 命令未找到 |
未安装 sysstat 或 PATH 未包含二进制路径 |
sudo apt install sysstat;用 /usr/bin/cpustat 验证 |
| 权限被拒绝 |
普通用户无法读取部分统计或受安全策略限制 |
使用 sudo cpustat;检查 /proc/stat 权限;排查 AppArmor/SELinux |
| 输出空白或异常 |
终端颜色兼容、内核/统计项不匹配、版本过旧 |
–no-color;升级 sysstat;必要时重装 |
| 指标含义不清 |
不熟悉各列含义 |
关注 %usr、%sys、%idle、%iowait、%steal 等关键列 |
| 采样频率过高卡顿 |
刷新间隔过小(如 -i 0.1) |
适当增大间隔(如 -i 0.5~2.0)或缩短采集次数 |
三 正确使用与关键指标解读
- 常用命令
- 每 2 秒刷新一次,共 5 次:sudo cpustat -i 2 -n 5
- 查看每颗 CPU:sudo cpustat -P ALL
- 高频率定位瞬时抖动:sudo cpustat -i 0.5(短时采样,注意终端负载)
- 输出到文件便于复盘:sudo cpustat -i 5 > cpu_usage.log &
- 关闭颜色:sudo cpustat --no-color
- 关键指标
- %usr:用户态占用高,多为应用计算密集
- %sys:内核态占用高,可能与 I/O、网络、锁竞争 相关
- %idle:空闲低说明 CPU 持续繁忙
- %iowait:I/O 等待高,排查磁盘/文件系统/后端存储
- %steal:虚拟化环境被宿主机“偷走”的时间,宿主机资源紧张时需关注
四 安全策略与系统限制排查
- 检查安全模块:AppArmor/SELinux 可能限制对 /proc/stat 等资源的访问。可临时停用策略做验证(如 sudo setenforce 0 对 SELinux;AppArmor 调整相应配置),确认后再恢复为合规的安全策略。
- 文件权限:确认 /proc/stat 等统计文件可读(通常对所有用户可读,但在受限环境可能被策略收紧)。
- 以 root 验证:必要时 su - 后运行,排除普通用户权限边界问题。
五 仍未解决时的高效求助方式
- 提供以下关键信息,便于快速定位:
- Ubuntu 版本:lsb_release -a
- cpustat 与 sysstat 版本:cpustat -V;apt policy sysstat
- 完整命令与输出(含报错)
- 是否使用 sudo、是否在容器/虚拟化环境
- 相关系统改动(安全策略、内核参数、容器平台等)