top足够快且默认预装,启动后先看顶部load average是否超cpu核心数×1.5、wa是否超20%、available内存是否接近0,再查进程res和time+;htop需安装,支持鼠标、f6排序、线程视图和安全信号操作。

直接看 CPU 和内存是否吃紧,top 足够快、默认就有;想快速定位问题进程或需要鼠标操作,htop 更省力——但得先装。
top 命令启动后第一眼该盯什么
别急着翻进程列表,先扫顶部五行:
-
load average三个值(1/5/15 分钟)如果持续高于 CPU 核心数 × 1.5,说明系统在排队等资源,不是单个进程的问题,而是整体过载 -
%Cpu(s)行里wa(I/O wait)高过 20%,大概率是磁盘卡住,us高说明用户程序在狂算,sy高可能是内核路径异常(比如驱动或锁竞争) - 内存行看
available,不是free;available接近 0 才真危险,buff/cache高是 Linux 正常行为,不用清 - 进程列表里优先看
RES(实际物理内存占用),比VIRT更反映真实压力;TIME+突然飙升的进程,可能在死循环
htop 安装和启动时容易卡住的点
htop 不是所有系统都预装,安装命令因发行版而异,且依赖源配置:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- Ubuntu/Debian:
sudo apt install htop,但若提示 “Unable to locate package”,先运行sudo apt update - CentOS/RHEL 7:
sudo yum install epel-release && sudo yum install htop,缺epel-release就装不上 - AlmaLinux/RHEL 8+:
sudo dnf install htop,用yum会报错 - 启动后界面乱码?检查终端字符集:
echo $LANG应为en_US.UTF-8或类似 UTF-8 编码,否则颜色和符号显示异常
按 CPU 占用排序的实际操作差异
top 和 htop 都能排序,但触发方式和效果不同:
-
top:启动后直接按P(大写 P),再按一次恢复默认;注意它只对当前屏幕可见进程排序,不刷新全量列表 -
htop:按F6→ 方向键选cpu%→ 回车;支持滚动查看全部进程,且排序结果实时保持 - 两者默认都不显示线程,
htop按H可切出线程视图,Java 或 Go 程序里单个进程占满 CPU 时,必须开这个才能看到是哪个 LWP 在作怪 -
top的P排序后,%CPU列显示的是采样周期内的平均值;htop默认刷新更快(通常 1 秒),瞬时峰值更易捕捉
终止进程时权限和信号的区别
杀错进程会导致服务中断,操作前务必确认 PID 和用户上下文:
-
top按k后需手动输入 PID 和信号编号,默认15(SIGTERM);输错 PID 没提示,直接发信号 -
htop按方向键选中进程后按F9,弹出菜单可选SIGTERM、SIGKILL、SIGSTOP等,误操作成本更低 - 非 root 用户无法 kill 其他用户的进程,
htop会静默失败,top会显示 “Operation not permitted” 错误信息 - 真正要查“谁在偷偷吃资源”,别只盯
%CPU;配合pidstat -u 1看每秒变化,避免被 top 的 3 秒平均值平滑掉尖峰
最常被忽略的是负载平均值(load average)和 CPU 核心数的关系——很多人看到 load 是 4 就以为没事,却没意识到自己跑在双核机器上;还有就是把 free 当可用内存,其实 available 才是关键数字。










