htop 是 top 命令的增强版,交互式界面,更直观。主要用来实时查看系统进程、资源占用情况。
1. 核心显示区域
启动 htop 后,主要关注以下几个区域:
- 1.1 CPU/内存/交换分区 使用情况:
- 顶部是CPU核心使用率条(每个核心一条)。
- 紧接着是内存(Mem)和交换分区(Swp)的使用量和总量。
- 1.2 系统平均负载 (Load Average):
- 通常在右上角,显示三个数值,分别代表过去1分钟、5分钟、15分钟的系统平均负载。
- 解读核心: 负载值应与CPU核心数比较。
- 负载 <= CPU核心数: 系统运行良好或轻载。
- 负载 > CPU核心数: 系统过载,CPU资源不足,任务需要排队等待处理。
- 1.3 进程列表:
- 主体区域,列出当前所有运行的进程。
- 关键列:PID (进程ID), USER (用户), CPU% (CPU使用率), MEM% (内存使用率), TIME+ (进程已运行的CPU时间), Command (启动命令)。
2. 常用操作 (通过功能键 F1-F10)
界面底部有功能键提示。
- F1 (Help): 查看帮助文档。
- F2 (Setup): 自定义 htop 界面。可以增删显示的列、调整颜色方案等。
- F3 (Search): 在进程列表中搜索。输入进程名或部分字符,htop 会定位到匹配的进程。再次按F3查找下一个。
- F4 (Filter): 按关键词过滤进程列表。输入后,只显示包含该关键词的进程。清空过滤内容则恢复。
- F5 (Tree View): 切换树状视图。清晰展示进程间的父子关系,有助于追踪进程来源。再按一次切换回列表。
- F6 (Sort): 选择排序依据。按F6会弹出可选的排序列,如 CPU%, MEM%, PID 等。再次操作可改变升降序。
- F9 (Kill): 向选中的进程发送信号,默认为 SIGTERM (15),通常用于终止进程。需要相应权限。可选择不同信号。
- 方向键 (↑ ↓ ← →): 在进程列表中上下移动选择进程,左右滚动查看更多列。
- Enter 键: (在旧版或某些配置下)标记进程,或与某些操作配合。通常使用strace或lsof进行更深入的进程分析(见下文)。
3. 问题排查思路
- 3.1 定位高资源消耗进程:
- 使用 F6 按 CPU% 或 MEM% 排序,最顶部的通常是当前资源消耗大户。
- 观察其 Command 和 USER,判断是否为预期进程。
- 3.2 理解系统负载:
- 对照1.2中的负载解读。如果负载持续高于CPU核心数,说明CPU瓶颈。
- 结合高CPU消耗进程,判断是哪个进程导致。
- 3.3 检查内存与交换分区:
- MEM% 高的进程是内存消耗大户。
- 如果Swap开始被大量使用,说明物理内存不足,系统性能会因此下降(磁盘I/O远慢于内存)。
- 3.4 使用树状视图 (F5):
- 如果发现某个异常进程,用树状视图查看它的父进程,有助于理解其启动链路。
- 3.5 深入分析 (htop外部工具):
htop 主要用于概览和快速定位。对特定进程的深入诊断,通常需要结合其他命令:- strace -p <PID>: 跟踪进程的系统调用,了解它在做什么。
- lsof -p <PID>: 查看进程打开了哪些文件和网络连接。
- gdb -p <PID>: (高级) 附加到进程进行调试。
4. 一些技巧
- 自定义显示 (F2 Setup):
- 根据需要添加或移除“Meters”(顶部的CPU/内存条)和“Columns”(进程列表的列)。比如可以添加 IO_READ_RATE, IO_WRITE_RATE 来观察磁盘I/O。
- 用户态与内核态CPU时间:
- 在CPU使用率条中,不同颜色代表不同类型的CPU时间。通常蓝色代表低优先级用户态(nice),绿色代表普通用户态,红色代表内核态,黄色代表中断,青色代表虚拟化(steal/guest)。关注红色(内核态)过高的情况,可能表示I/O瓶颈或驱动问题。
总结
htop 是Linux系统管理员和开发者进行实时性能监控和初步问题诊断的得力工具。掌握其基本操作和解读方法,能显著提升排查效率。
发表回复