跳转到内容

htop

htop 是 Linux/Unix 下的一个交互式系统监控工具,是 top 的增强版,用于查看系统资源(CPU、内存、交换区)使用情况及运行中的进程状态,具备彩色界面、鼠标操作、进程树视图和灵活的排序筛选功能。

Terminal window
htop [选项]

htop 默认直接运行就会进入交互界面,实时显示系统资源和进程信息。选项用于启动时过滤、排序或调整显示方式。

启动 htop 后,如下图所示:

htop界面.png

整个界面被分成了三个部分:

+-------------------------------------------------+
| 顶部资源监控条 |
+-------------------------------------------------+
| 进程列表区 |
| |
| |
+-------------------------------------------------+
| 底部快捷键提示栏 |
+-------------------------------------------------+

这部分占据界面顶部一块区域,主要是对系统整体资源使用状态的概览。

资源监控条.png

1. CPU 使用条

通常显示多条,每条对应一个 CPU 核心(多核情况下),上图中 0-5 代表 6 个 CPU 核心,颜色区分不同类型的 CPU 时间:

  • 绿色(user):用户空间进程占用 CPU 时间
  • 红色(system):内核空间进程占用 CPU 时间
  • 黄色(iowait):CPU 等待磁盘 I/O 的时间
  • 蓝色(nice):低优先级进程占用 CPU 时间
  • 紫色(irq/softirq):硬件中断和软件中断时间

2. Mem 使用条

显示物理内存使用状态,颜色区分不同的 Mem:

  • 绿色:已用内存
  • 蓝色:缓存/缓冲区(可以回收)

3. Swap 使用条

类似内存条,显示交换分区的使用情况:

  • 绿色:已用 swap

4. Tasks 栏

Tasks 栏位的 26, 22 thr; 1 running 表示目前总共 26 个进程,这些进程中一共存在 22 个线程,其中 1 个线程正在运行。线程的状态包括:running、sleeping、stopped、zombie。

5. Load average 栏

系统负载均值,显示过去 1 分钟、5 分钟、15 分钟的负载(数值越低,系统越空闲)。

6. Uptime 栏

表示系统运行时间。

这部分是 htop 最核心的区域,显示当前系统中所有(或者经过过滤的)进程详细信息。

进程列表区.png

1. 列标题栏

默认显示以下列(可以自定义):

列名 说明
PID 进程 ID
USER 进程所属用户
PRI 进程优先级
NI nice 值,优先级调整参数
VIRT 虚拟内存使用量
RES 常驻内存使用量
SHR 共享内存量
S 进程状态(R=运行,S=睡眠,Z=僵尸)
CPU% CPU 使用率
MEM% 内存使用率
TIME+ 累计 CPU 时间
Command 启动命令及参数

2. 交互功能

  • 支持上下键移动选中进程
  • 支持鼠标点击选择、排序
  • 可按字段排序(F6),过滤(F4)或搜索(F3)
  • 可以切换成树形视图(F5),显示进程的父子关系

一行简洁明了的快捷键说明,方便快速操作。

htop快捷提示栏.png

常用快捷键和交互操作

快捷键 功能说明
Up / Down 上下移动光标,选择进程
Left / Right 左右切换排序列
F1 或 h 打开帮助页面
F2 打开设置界面(可自定义显示列、颜色方案等)
F3 搜索指定进程(支持模糊搜索)
F4 过滤进程(只显示符合关键字的进程)
F5 显示进程树视图(父子进程关系树)
F6 选择排序字段(按 CPU、内存、PID 等排序)
F7 增加选中进程的优先级(nice 值减 1)
F8 减少选中进程的优先级(nice 值加 1)
F9 发送信号给选中进程(kill、terminate 等)
F10 或 q 退出 htop
Space 选中/取消选中进程(多进程操作)
Mouse Click 用鼠标选择进程、点击菜单
选项 作用 示例
-d <delay> 设置刷新间隔,单位为 0.1 秒(默认 10,即 1 秒) htop -d 20,每 2 秒刷新一次
-u <user> 只显示指定用户的进程 htop -u root
-p <pid[,pid2,...]> 只显示指定 PID 的进程(多个 PID 用逗号分隔) htop -p 1234,5678
-C 或 --no-color 禁用彩色显示(改为纯文本显示) htop -C
-s <column> 按某一列排序启动,可以用 -s help 列出支持的列 htop -s PERCENT_CPU
--tree 启动时默认显示进程树 htop --tree
--filter <string> 启动时直接过滤显示包含该字符串的进程 htop --filter nginx
Terminal window
# 启动 htop(默认显示所有进程)
htop
# 只查看 root 用户的进程
htop -u root
# 按 CPU 使用率排序启动
htop -s PERCENT_CPU
# 启动时以进程树视图显示
htop --tree
# 设置刷新间隔为 2 秒
htop -d 20
# 只监控指定 PID 的进程
htop -p 1234,5678