htop
- htop explained
- 内存
- VIRT/VSZ - Virtual Image - 虚拟镜像
- VIRT = SWAP + RES
- 意义不大
- 所用到的虚拟内存,包含所有代码、数据、共享包、交换区页、映射但未使用页
- 应用申请 1GB 但只用 1MB 也会计算为 1G。
- 如果 mmap 1G 的文件,但未使用,也算 1G。
- RES/RSS - Resident size - 常驻内存
- RES = CODE + DATA
- 未被交换的物理内存
- 不包含在交换区的内存
- 部分内存可能与其他进程共享
- 例如一个 1GB 的 进程 fork 后,新的进程也会占用 1G,但实际只用到了 1G。Linux 会对内存 写时复制。
- SHR - Shared Mem size - 共享内存
- 进程用到的共享内存
- 内存可能被共享,但不一定已经被其他进程共享使用。
- VIRT/VSZ - Virtual Image - 虚拟镜像
- 单位为 kb
- 配置文件
- ~/.config/htop/htoprc
- ~/.htoprc
Key | 功能说明 |
---|---|
F1 , h , ? | 帮助 (Help):显示帮助屏幕,列出所有可用的快捷键及其功能。 |
F2 , S | 设置 (Setup):进入设置菜单,可以自定义界面顶部的仪表(Meters)、显示选项、配色方案、列的显示与排序等。 |
F3 , / | 搜索 (Search):输入字符,htop 会向前(向下)搜索匹配的进程命令行。按 F3 会继续查找下一个匹配项。 |
F4 , \ | 过滤 (Filter):输入字符,htop 会只显示命令行中包含这些字符的进程。再次按 F4 取消过滤。 |
F5 , t | 树状视图 (Tree View):切换进程列表为树状结构,显示进程间的父子关系。再次按下可切换回默认的排序列表视图。 |
F6 , > , . | 排序 (Sort):通过选定的列进行排序。重复按下 F6 或使用左右箭头可以选择不同的列进行排序。 |
F7 , ] | 降低 Nice 值 (Decrease Nice value):将选中进程的 Nice 值减小(增加优先级)。通常需要 root 权限。 |
F8 , [ | 提高 Nice 值 (Increase Nice value):将选中进程的 Nice 值增大(降低优先级)。可以作用于自己拥有的进程。 |
F9 , k | 杀死进程 (Kill process):向选中的进程发送信号(默认为 SIGTERM,可选择其他信号如 SIGKILL)。通常用于终止进程。 |
F10 , q | 退出 (Quit):关闭 htop 。 |
Space | 标记/取消标记进程 (Tag/Untag process):标记一个或多个进程,可以对标记的进程批量执行操作(如 F9 Kill)。 |
U | 取消所有标记 (Untag all):取消所有已标记的进程。 |
u | 按用户过滤 (Filter by User):从列表中选择一个用户,只显示该用户的进程。 |
H | 切换显示用户线程 (Toggle User Threads):切换是否显示用户级进程的线程。关闭时只显示主进程。 |
K | 切换显示内核线程 (Toggle Kernel Threads):切换是否显示内核级别的线程。 |
P | 按 CPU 排序 (Sort by CPU%):快速切换到按 CPU 使用率排序。 |
M | 按内存排序 (Sort by MEM%):快速切换到按内存使用率排序。 |
T | 按时间排序 (Sort by TIME+):快速切换到按累计 CPU 时间排序。 |
F | 跟踪进程 (Follow Process):当光标选中一个进程时按下 F ,视图会保持该进程被选中,即使列表滚动或排序改变。 |
I | 反转排序顺序 (Invert Sort Order):将当前排序列的排序顺序反转(升序 <-> 降序)。 |
+ , - | 展开/折叠子树 (Expand/Collapse Subtree):在树状视图 (t ) 下,展开或折叠选中进程的子进程树。 |
p | 显示完整路径 (Show full Path):(如果可用) 切换是否在 Command 列显示程序的可执行文件的完整路径。 |
e | 显示环境变量 (Show Environment):显示选中进程的环境变量列表。 |
l | 显示打开的文件 (Show Open Files via lsof):显示选中进程当前打开的文件列表 (需要安装 lsof 并且 htop 有权限运行它)。 |
s | 跟踪系统调用 (Trace Syscalls via strace):对选中的进程附加 strace ,实时显示其进行的系统调用 (需要安装 strace 并且有相应权限)。 |
[ , ] | 同 F7 和 F8 。 |
Enter | (通常用于确认操作,如在 Kill 菜单中确认信号) |
Arrow Keys | 导航 (Navigation):上/下箭头滚动进程列表,左/右箭头在列之间移动(当可以选择排序列时)。 |
PgUp /PgDn | 翻页 (Page Up/Down):快速向上或向下翻页。 |
Home /End | 到顶部/底部 (Home/End):快速跳转到进程列表的开头或结尾。 |
Column | Description |
---|---|
PID | 进程 ID (Process ID):系统为每个进程分配的唯一数字标识符。 |
USER | 用户名 (User Name):启动该进程的用户。 |
PRI | 优先级 (Kernel Priority):内核调度进程时使用的内部优先级。数值越低,优先级通常越高。 |
NI | Nice 值 (Nice Value):用户空间可调整的进程优先级,范围从 -20 (最高优先级) 到 +19 (最低优先级)。 |
VIRT , VSZ | 虚拟内存大小 (Virtual Memory Size):进程使用的总虚拟地址空间大小。 |
RES , RSS | 物理内存大小 / 常驻内存大小 (Resident Set Size):进程当前实际占用的物理内存(RAM)大小。衡量实际内存占用的常用指标。 |
SHR | 共享内存大小 (Shared Memory Size):RES 中可能与其他进程共享的部分内存。 |
S | 进程状态 (Process Status):表示进程当前的运行状态。 |
CPU% | CPU 使用率 (%):进程使用的 CPU 时间百分比。多核系统上可能超过 100%。 |
MEM% | 内存使用率 (%):进程使用的物理内存 (RES ) 占系统总物理内存的百分比。 |
TIME+ | CPU 时间 (CPU Time):进程自启动以来累计使用的 CPU 时间总量。 |
Command | 命令 (Command):启动进程的命令及其参数(可能截断)。 |
- S - 进程状态 (Process Status):表示进程当前的运行状态。常见状态包括:
R
:运行中 (Running) 进程正在使用 CPU,处于活跃执行状态。S
:睡眠中 (Sleeping) 进程正在等待某个事件(如 I/O、信号),可被唤醒。大多数进程通常处于此状态。D
:不可中断睡眠 (Uninterruptible Sleep) 进程正在等待内核事件(如磁盘 I/O),无法被信号中断,常见于等待硬件响应。Z
:僵尸进程 (Zombie) 进程已终止但其父进程尚未回收资源(wait),会占用进程号但不消耗系统资源。需父进程处理后消失。T
:停止 (Stopped) 进程被信号(如 SIGSTOP/SIGTSTP)暂停,或被调试器挂起。可通过 SIGCONT 恢复运行。I
:空闲 (Idle) 仅在多核系统上出现,表示内核线程处于空闲状态。W
:分页中 (Paging) 进程正在等待内存分页(较少见)。<
:高优先级 (High Priority) 进程优先级高于普通进程。N
:低优先级 (Low Priority) 进程优先级低于普通进程。L
:有锁 (Locked) 进程被锁定,通常与内存锁定相关。+
:前台进程组 (Foreground Process Group) 进程属于前台进程组,通常与终端交互。
进程状态可组合显示,如
Ss
表示睡眠且为会话首进程。实际状态取决于内核调度和进程行为。