进程监控工具——htop

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,橙色 cache
  • Swp:交换分区使用量
  • 右侧:任务数 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、常见问题与排查技巧

  1. CPU 高,但 CPU 颜色大部分是红色 (内核态)
    程序在内核态消耗 CPU,大概率系统调用频繁、驱动异常。
  2. CPU 高,大量橙色 iowait
    不是程序 CPU 计算问题,是磁盘 IO 瓶颈,需要搭配iostat进一步排查。
  3. 看到 Z 状态僵尸进程
    僵尸进程本身不占 CPU 内存,是父进程没有 wait 回收子进程,需要修复父进程代码;杀死父进程一般可清理僵尸。
  4. htop 看不到完整进程命令
    左右方向键横向滚动,或者放大终端窗口。

8、总结

htop 是 Linux 性能调试的入门利器,替代 top 做日常监控。

日常排查流程推荐:

  1. htop 打开,看 CPU / 内存整体状态
  2. P/M 排序找到占用高进程
  3. F5 打开进程树看父子关系
  4. F4 过滤进程,H 隐藏多余线程
  5. 必要时 F9 发送信号终止异常进程
相关推荐
深圳恒讯2 小时前
海外服务器延迟高怎么解决?从线路到TCP协议的6层排查清单
运维·服务器·tcp/ip
夏虫不可与之言冰2 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
小羊没烦恼!2 小时前
jQuery1.5的改进细节
java·服务器·开发语言·前端·c#
北龙云海2 小时前
AI驱动数据库运维变革:北龙云海智能巡检平台实践与展望
运维·数据库·人工智能
AI职业加油站3 小时前
AI 校招现状:大模型应用工程师证书,助力简历能力证明
大数据·运维·人工智能·学习·职场发展
春涧草茶3 小时前
慢就是快12-12手动抛出异常
java·linux·前端
Lsetea4 小时前
curl报58 unable to set private key file:客户端证书与私钥加载排查
运维·https·ssl证书·openssl·curl
天远Date Lab4 小时前
零信任架构实战:基于天远学籍核验三要素构建自动化竞赛资格审查网关
运维·人工智能·架构·自动化
KING-WU5124 小时前
Linux 工具之Make 与 Makefile
java·linux·服务器