top命令属procps-ng包,缺失时需按系统安装对应包;%cpu(s)中us和sy分别代表用户态和内核态cpu占比,二者之和近似实际计算负载;按1键可查看各cpu核心独立使用率;%cpu是瞬时采样值,需结合wa、sy、st等字段及ps快照综合分析。

top 命令本身不需要安装,但缺失时要装 procps-ng
绝大多数 Linux 发行版默认自带 top,它属于 procps-ng 软件包。如果你执行 top 提示 bash: top: 未找到命令,说明该包未安装或被精简过。
常见修复方式:
- Ubuntu/Debian:
sudo apt install procps(注意不是procps-ng,后者是旧名,现统一为procps) - CentOS/RHEL 8+:
sudo dnf install procps-ng - CentOS/RHEL 7:
sudo yum install procps-ng
装完直接运行 top 即可,无需额外配置或启动服务。
%Cpu(s) 行里 us 和 sy 就是用户态和内核态占比
启动 top 后,第三行类似这样:
%Cpu(s): 2.1 us, 0.8 sy, 0.0 ni, 97.1 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
其中:
-
us(user):用户空间进程占用 CPU 的时间百分比,即用户态 -
sy(system):内核空间执行系统调用、中断处理等所占时间,即内核态 - 两者加起来(如本例 2.1 + 0.8 = 2.9%)≈ 实际 CPU 使用率,排除
wa(I/O 等待)等非计算类占用
注意:ni(nice)也属于用户态,只是优先级被调低;hi/si 属于内核态细分,但通常远小于 sy,可忽略不计。
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
单核 vs 多核:按 1 键才能看清是否某核被打满
默认 top 显示的是所有 CPU 核心的平均值。如果某个进程只绑定在单核上跑满 100%,而其他核空闲,平均值可能只有 25%(4 核机器),容易误判负载不高。
解决方法:运行 top 后,直接按 1 键 —— 它会立刻展开显示每个逻辑 CPU 的独立使用率,格式类似:
CPU0: 99.3%us 0.3%sy ...
这时你能一眼看出是哪一核在飙高,对定位绑核、中断亲和性、NUMA 问题至关重要。
别只盯 %CPU 列,注意采样窗口和排序状态
top 默认按 %CPU 排序,但这个值是基于最近两次刷新间隔的瞬时变化率。刚启动的进程可能还没积累足够采样点,暂时排不上前几;而长期运行但周期性休眠的进程,也可能被误认为“不耗 CPU”。
实操建议:
- 确认当前排序列:看顶部进程列表第一列标题是否高亮为
%CPU;如果不是,按P键强制切过去 - 降低刷新间隔观察动态:按
d输入1,设为每秒刷新一次,更容易捕捉短时峰值 - 配合
ps aux --sort=-%cpu | head -n 5做快照交叉验证,避免被交互式界面的视觉延迟误导
真正难判断的,往往不是“哪个进程在用 CPU”,而是“它为什么用——是在做计算、等磁盘、还是陷入内核锁?”这时候要结合 wa(等待 I/O)、sy(内核态偏高)、st(被虚拟机管理器偷走时间)等字段综合看。










