1、什么是 htop
htop 是一款交互式进程查看器,作为经典 top 命令的现代化替代品。
top 是 Linux 自带,但界面简陋、操作不友好;htop 用彩色界面、鼠标支持、快捷键、横向滚动查看长命令行,能直观看到 CPU / 内存负载、进程树,适合快速定位 CPU 打满、内存泄漏、僵死进程。
1.1、htop的核心特点:
- 彩色可视化,CPU 多核分栏展示
- 支持鼠标点击操作
- 进程树视图,快速看父子进程关系
- 支持横向滚动,完整显示超长命令
- 快捷键丰富,支持直接 kill 进程、调整 nice 值
- 可排序、过滤进程
2、界面分区详解
打开 htop 后界面分为 3 大块:顶部资源栏、进程列表、底部快捷键栏
2.1、顶部资源区
CPU[0..N]:每个核心占用率,不同颜色含义- 绿色:用户态 CPU
- 红色:内核态 CPU
- 蓝色:低优先级 (nice) 进程
- 橙色:等待 IO(IO Wait,IO 瓶颈重点看这个)
Mem:内存使用,绿色为已用内存,蓝色 buffer,橙色 cacheSwp:交换分区使用量- 右侧:任务数 Tasks、负载 Load average、系统运行时间 Uptime
2.2、进程列表字段
| 列名 | 含义 |
|---|---|
| PID | 进程 ID |
| USER | 进程所属用户 |
| PRI | 内核优先级 |
| NI | Nice 值,范围 -20~19;数值越小优先级越高 |
| VIRT | 虚拟内存 |
| RES | 物理内存(常驻内存,最常用) |
| SHR | 共享内存 |
| S | 进程状态:R 运行 / S 睡眠 / Z 僵尸 |
| CPU% | CPU 占用百分比 |
| MEM% | 内存占用百分比 |
| TIME+ | 累计 CPU 运行时间 |
| COMMAND | 启动命令 |
2.3、底部快捷键栏
F1帮助 F2设置 F3搜索 F4过滤 F5进程树 F6排序 F7降nice F8升nice F9kill F10退出
3、常用快捷键(最核心)
| 快捷键 | 功能 |
|---|---|
| F1 / h | 打开帮助文档 |
| F2 / S | 设置界面,修改颜色、显示列 |
| F3 / / | 搜索进程,输入关键词高亮匹配进程 |
| F4 | 过滤器,只显示匹配关键词的进程(区别 F3:过滤,不是单纯高亮) |
| F5 | 切换进程树模式,查看父子进程,排查 fork 程序非常有用 |
| F6 | 选择排序字段(CPU% / MEM% / PID / TIME+) |
| F7 | 减少 nice 值,提升进程优先级(需要 root) |
| F8 | 增加 nice 值,降低进程优先级 |
| F9 | 给选中进程发送信号(SIGTERM/SIGKILL 等,kill 进程) |
| F10 / q | 退出 htop |
| 空格 | 标记选中进程,可以批量操作 |
| u | 按用户过滤,只看某个用户进程 |
| H | 隐藏线程,只显示主进程(嵌入式 / 多线程程序必用) |
| M | 按内存占用排序(大写 M) |
| P | 按 CPU 占用排序(大写 P) |
| T | 按时间 TIME + 排序 |
小提示:鼠标可以直接点击表头排序,点击进程选中。
4、实战常用操作
4.1、 查看占用 CPU 最高的进程
启动 htop,按大写P,列表按 CPU% 降序排列。
4.2、查看内存占用最高进程
大写M,按内存 RES 降序,排查内存泄漏。
4.3、 进程树查看父子关系
F5,展开进程树,能看到哪个父进程创建子进程,定位后台 fork、僵尸进程。
4.4、 过滤进程(只看指定程序)
按 F4,输入进程名,例如 nginx、python3,列表只保留匹配进程;按 ESC 取消过滤。
4.5、 杀掉异常进程
方向键选中进程,F9,选择信号:
SIGTERM(15):优雅退出,优先使用SIGKILL(9):强制杀死,进程无法捕获信号,无法清理资源,慎用
4.6、 隐藏线程(多线程程序,减少刷屏)
很多 C++/ 多线程程序会产生大量轻量级线程,htop 默认全部展示,按H隐藏线程,只显示主线程。
4.7、 修改进程优先级 (nice)
选中进程,F7 提高优先级(需要 root),F8 降低优先级。
5、常用启动参数
# 只监控指定PID
htop -p 1234
# 只看指定用户的进程
htop -u root
# 不显示线程
htop -H
# 单色模式(老终端不支持彩色时使用)
htop -C
6、htop vs top 对比
| 特性 | htop | top |
|---|---|---|
| 界面 | 彩色,布局友好 | 黑白,简陋 |
| 鼠标 | 支持 | 不支持 |
| 进程树 | F5 一键切换 | 需要按V,展示差 |
| 长命令 | 横向滚动完整查看 | 截断 |
| 排序操作 | 快捷键丰富 | 操作繁琐 |
| 预装 | 大部分 Linux 不自带 | Linux 默认自带 |
7、常见问题与排查技巧
- CPU 高,但 CPU 颜色大部分是红色 (内核态)
程序在内核态消耗 CPU,大概率系统调用频繁、驱动异常。 - CPU 高,大量橙色 iowait
不是程序 CPU 计算问题,是磁盘 IO 瓶颈,需要搭配iostat进一步排查。 - 看到 Z 状态僵尸进程
僵尸进程本身不占 CPU 内存,是父进程没有 wait 回收子进程,需要修复父进程代码;杀死父进程一般可清理僵尸。 - htop 看不到完整进程命令
左右方向键横向滚动,或者放大终端窗口。
8、总结
htop 是 Linux 性能调试的入门利器,替代 top 做日常监控。
日常排查流程推荐:
- htop 打开,看 CPU / 内存整体状态
- P/M 排序找到占用高进程
- F5 打开进程树看父子关系
- F4 过滤进程,H 隐藏多余线程
- 必要时 F9 发送信号终止异常进程