直接运行top可查看实时cpu和内存占用:第三行%cpu(s)中id值为空闲率,100%减之得实际使用率;第四行avail mem为真正可用内存;按1键展开多核cpu使用率,按m键按内存排序,top -b -n 1可抓取快照。

top 命令怎么看 CPU 和内存占用
直接运行 top 就能看到实时 CPU 和内存使用率,但默认界面里关键指标藏在顶部几行,容易被忽略。
第一行末尾的 load average 是系统负载,不是 CPU 使用率;真正要看的是第三行以 %Cpu(s) 开头的部分,比如 0.7 us, 0.3 sy, 99.0 id —— 这里的 id 是空闲率,100% 减去它才是实际使用率。
第四行 KiB Mem 后面的 used 是已用物理内存,avail Mem 才是真正可用的内存(含可回收缓存),比 free 值更有参考价值。
- 按
1键可展开显示每个 CPU 核心的使用率(多核机器必须按这个才看得清是否单核打满) - 按
M键能按内存占用排序,快速定位吃内存的进程 -
top -b -n 1可用于脚本中一次性抓取快照,避免交互式卡住 - 如果提示
bash: top: 未找到命令,CentOS/RHEL 系统需先执行yum install -y procps-ng
htop 比 top 多了什么,值不值得装
htop 不是 top 的替代品,而是补足它交互短板的工具:颜色、鼠标支持、滚动查看全部进程、树状视图、直接搜索过滤 —— 这些对排查问题效率提升明显。
但它默认不预装,且依赖 EPEL 源(RHEL/CentOS)或第三方仓库(如 Ubuntu 的 universe)。安装后启动,CPU/内存使用率以彩色条形图形式直接显示在顶部,比数字更直观。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- RHEL/CentOS:先
yum install -y epel-release,再yum install -y htop - Ubuntu/Debian:
sudo apt install htop - 启动后按
F3输入进程名即可高亮定位,F4能过滤出匹配项(不是高亮,是只留匹配进程) - 按
F5切换树状视图,一眼看出哪个父进程拉起了大量子线程 - 终端乱码?检查
locale输出是否含UTF-8,否则htop图形符号会显示异常
怎么用 top/htop 快速定位高 CPU 或高内存进程
高 CPU 不等于问题进程一定排在第一行——top 默认按 CPU% 排序,但若某进程刚启动、还没积累足够采样时间,可能暂时排不上去;htop 同理,需确认当前排序列确实是 CPU% 或 MEM%。
更可靠的做法是结合字段筛选和时间维度判断:
-
top中按P(大写)确保按 CPU% 降序,看前 3 个进程的%CPU是否持续 >80% -
htop中按P键或点击CPU%列标题,再按F6确认排序生效 - 内存方面,
top的RES(常驻内存)比VIRT更反映真实压力;htop默认显示MEM%,但注意它基于RES / total memory计算,不含缓存 - 若发现某个进程
%CPU很低但TIME+(累计 CPU 时间)暴涨,说明它长期运行且可能有逻辑缺陷
为什么有时 top 显示 CPU 使用率很低,系统却卡顿
因为 top 和 htop 展示的只是“CPU 时间分配”结果,不是全貌。常见陷阱有:
-
%wa(iowait)高:CPU 在等磁盘 I/O,此时%id可能仍很高,但进程实际被阻塞 —— 需配合iotop或iostat -x 1查看 -
%st(steal time)高:宿主机上其他虚拟机抢走了 CPU,本机看到的%id是虚高的 - 短时脉冲:
top默认 3 秒刷新,突发性 CPU 尖峰可能被平均掉;改用top -d 0.5缩短间隔可捕捉 - 内核线程干扰:默认
top显示所有线程,kthreadd、ksoftirqd等内核线程占 CPU 高,往往指向硬件或驱动问题,而非用户进程
真正卡顿的时候,别只盯着 %CPU 数字,先看 %wa 和 %st 是否异常,再查 I/O 和虚拟化层 —— 这一步跳过,就容易在用户进程里白忙活。










