cpustat 是 sysstat 工具包中的一个实用程序,用于按进程展示 CPU 使用率,和 top / htop 类似,但更偏向统计和排查 CPU 热点。下面按常见用法说明。
一、安装 cpustat(Debian / Ubuntu)
sudo apt update
sudo apt install sysstat
安装完成后,cpustat 通常位于:
/usr/bin/cpustat
如果找不到,可尝试:
dpkg -L sysstat | grep cpustat
二、基本用法
1️⃣ 查看当前 CPU 使用情况(按进程)
sudo cpustat
示例输出(简化):
PID %USR %SYS %CPU COMMAND
1234 10.2 2.1 12.3 java
5678 5.1 1.0 6.1 mysqld
含义:
%USR:用户态 CPU%SYS:内核态 CPU%CPU:总 CPU 使用率COMMAND:进程名
2️⃣ 指定刷新间隔(秒)
sudo cpustat 2
每 2 秒刷新一次。
3️⃣ 限制显示进程数量
sudo cpustat -n 10
只显示 CPU 使用最多的前 10 个进程。
4️⃣ 显示所有 CPU(多核)
sudo cpustat -c
- 显示 每个 CPU 核心 的使用情况
5️⃣ 显示线程(而非进程)
sudo cpustat -t
适合排查 多线程程序(如 Java、数据库)。
6️⃣ 显示累计 CPU 使用时间
sudo cpustat -C
显示自系统启动以来的累计 CPU 时间。
三、常用组合示例
✅ 实时查看最耗 CPU 的进程(推荐)
sudo cpustat 1 -n 15
- 每秒刷新
- 显示前 15 个进程
✅ 排查 Java / Python 程序 CPU 飙高
sudo cpustat -t 1
结合线程 ID(TID)定位问题线程。
✅ 输出到文件(分析用)
sudo cpustat 1 10 > cpustat.log
记录 10 次采样(每秒一次)。
四、常见参数速查表
| 参数 | 说明 |
|---|---|
-n N |
显示前 N 个进程 |
-t |
显示线程 |
-c |
显示每个 CPU |
-C |
累计 CPU 时间 |
-p PID |
指定进程 |
interval |
刷新间隔(秒) |
五、cpustat vs top / htop
| 工具 | 适合场景 |
|---|---|
top |
交互式实时查看 |
htop |
更友好的交互 |
cpustat |
快速统计、脚本、排查 CPU 热点 |
六、常见问题
❓ 为什么需要 sudo?
因为 cpustat 需要读取 /proc 中的进程信息,普通用户可能受限。
❓ Debian 没有 cpustat?
确认是否安装的是完整版 sysstat:
apt show sysstat
如果你愿意,可以告诉我:
- 你是 排查 CPU 飙高 还是 做性能统计
- 是 服务器 / 容器 / 桌面
我可以给你更针对性的用法示例。
