htop 详细介绍
htop 是基于 ncurses 开发的交互式、彩色终端系统进程监控工具,作为经典 top 命令的增强替代品,由 Hisham Muhammad 开发,开源项目,支持 Linux、FreeBSD、macOS。
特点
彩色进度条、支持鼠标、可上下左右滚动进程列表、进程树视图、内置快捷键杀进程/改优先级,不需要手动输入 PID。
运维场景
- 服务器CPU飙升:打开htop,默认按CPU排序,定位占用最高进程;F5看进程树,确认子进程。
- 内存泄漏:
htop -s PERCENT_MEM,查看RES常驻内存持续上涨的程序。 - 僵尸进程排查:F5树视图,找标记Z状态的进程。
- 进程优先级调整:选中进程,F7/F8修改nice值。
- 批量清理进程:空格标记多个进程,F9批量发送信号。
注意:SIGKILL(9)强制杀进程会丢失数据,优先使用 SIGTERM(15)优雅终止。
安装
htop 不是系统自带,需要手动安装:
Debian / Ubuntu
ubuntu一般自带
sudo apt update && sudo apt install -y htop
CentOS7(需要epel源)
sudo yum install -y epel-release && sudo yum install -y htop
CentOS8+/Rocky/Fedora
sudo dnf install -y htop
macOS (brew)
brew install htop
启动
直接终端输入 htop;退出 q。
常用启动参数
htop -s PERCENT_MEM # 启动默认按内存排序
htop -s PERCENT_CPU # 启动默认按CPU排序
htop -u nginx # 只查看nginx用户进程
htop -d 10 # 刷新间隔,单位0.1秒,这里=1秒刷新一次
htop -p 1234,5678 # 只监控指定PID
界面分区解释
界面分为三大部分:顶部资源仪表盘 + 进程列表 + 底部快捷键栏
1. 顶部资源仪表盘
- CPU 进度条:每个核心单独一条彩色条
- 绿色:用户态进程
- 蓝色:低优先级(nice)进程
- 红色:内核态占用
- 橙色:等待IO
- Mem:物理内存使用
- Swp:交换分区使用
- 右侧:
Load average系统1分钟、5分钟、15分钟负载;任务总数、线程数、运行进程数;系统运行时间。
2. 进程列表字段说明
| 字段 | 含义 |
|---|---|
| PID | 进程ID |
| USER | 进程所属用户 |
| PRI | 内核调度优先级 |
| NI | Nice值:范围-20 ~ 19;数值越小优先级越高 |
| VIRT | 虚拟内存(进程申请的总内存,不是实际占用) |
| RES | 常驻内存,进程实际占用物理内存 |
| SHR | 共享内存 |
| S | 进程状态: R运行,S睡眠,D不可中断睡眠(IO阻塞),Z僵尸进程,T暂停 |
| CPU% | CPU使用率(单核心百分比) |
| MEM% | 占物理内存百分比 |
| TIME+ | 进程累计CPU时间 |
| Command | 启动进程完整命令 |
3. 底部快捷键栏(核心)
| 快捷键 | 别名 | 功能 |
|---|---|---|
| F1 | h | 帮助文档 |
| F2 | S | Setup设置:修改仪表盘、增加/删除显示列、配色方案 |
| F3 | / | 搜索进程(按名字查找) |
| F4 | \ | 过滤器,只显示匹配关键词的进程 |
| F5 | t | 切换进程树视图,展示父子进程关系,排查僵尸进程非常好用 |
| F6 | > | 选择排序列:按CPU、内存、时间等排序 |
| F7 | - | 减小nice值 → 提高进程优先级(需要root) |
| F8 | + | 增大nice值 → 降低进程优先级 |
| F9 | k | 给选中进程发送信号,常用: SIGTERM(15)优雅退出;SIGKILL(9)强制杀死 |
| F10 | q | 退出htop |
额外常用快捷键:
- 空格:标记/选中多个进程,可以批量杀进程
- u:只看指定用户的进程
- H:隐藏/显示用户线程
- K:隐藏/显示内核线程
- P:直接按CPU排序;M:直接按内存排序;T:按运行时间排序
htop vs top
| top | htop |
|---|---|
| 系统自带,无需安装 | 需要单独安装 |
| 黑白界面,不支持鼠标 | 彩色,支持鼠标点击操作 |
| 只能上下滚动,不能横向看长命令 | 支持上下、左右滚动,完整查看长命令行 |
| 杀进程需要手动输入PID | 选中进程,F9直接发信号 |
| 没有原生进程树 | F5一键切换进程树 |
| 自定义项较少 | F2可视化自定义界面、字段、配色 |
