Linux性能监控-top-htop-iotop-iftop
Linux 性能监控工具全家桶:top、htop、iotop、iftop
这四个工具名字都带 top,但监控的维度完全不同。它们共同构成了 Linux 系统性能监控的"四件套",分别关注 CPU/内存、进程管理、磁盘 I/O、网络流量。
一、概览对比表
| 工具 | 监控维度 | 核心用途 | 界面风格 | 资源占用 |
|---|---|---|---|---|
top | CPU、内存、进程 | 系统整体负载 + 进程级资源占用 | 经典文本界面,系统自带 | 最低 |
htop | CPU、内存、进程(增强版) | 更友好的进程管理,支持鼠标/键盘交互 | 彩色界面,支持滚动、搜索 | 稍高于 top |
iotop | 磁盘 I/O | 按进程查看磁盘读写速率 | 类似 top 的列表界面 | 中等 |
iftop | 网络流量 | 按连接查看网络收发速率 | 带动态条形图的网络界面 | 较低 |
二、top —— 系统自带的全能监控
定位:Linux 系统最基础的实时进程监控工具,几乎所有发行版都预装。
主要功能:
- 显示系统整体负载(load average)、CPU 使用率、内存占用
- 按进程显示 CPU 和内存占用排行
- 支持对进程发送信号(如 kill)
常用交互按键:
| 按键 | 功能 |
|---|---|
1 | 展开/折叠各 CPU 核心使用情况 |
P | 按 CPU 使用率排序(大写 P) |
M | 按内存使用率排序(大写 M) |
k | 杀死进程 |
q | 退出 |
示例:
top优点:系统自带,无需安装,兼容性最好
缺点:界面相对朴素,操作不够直观
三、htop —— top 的现代化增强版
定位:top 的替代品,提供更友好的彩色界面和交互体验。
主要功能:
- 彩色界面,树形显示进程层级
- 支持鼠标点击和方向键滚动
- 横向/纵向进程列表(可同时看到更多信息)
- 内置搜索(F3)、过滤(F4)、进程树(F5)等
安装:
# Debian/Ubuntu
sudo apt install htop
# RHEL/CentOS
sudo yum install htop常用操作:
| 按键 | 功能 |
|---|---|
F3 | 搜索进程 |
F4 | 过滤进程(只显示匹配的) |
F5 | 切换树形视图 |
F6 | 选择排序字段 |
F9 | 发送信号(杀死进程) |
示例:
htop优点:界面美观,交互友好,功能丰富
缺点:需要额外安装,资源占用略高于 top
四、iotop —— 磁盘 I/O 监控(类似 iotop 的定位)
定位:按进程查看磁盘读写速率的工具,相当于"磁盘版的 top"。
主要功能:
- 显示每个进程的磁盘读速率、写速率
- 显示 I/O 等待百分比(IO Wait)
- 支持显示累积 I/O 总量
安装:
# Debian/Ubuntu
sudo apt install iotop
# RHEL/CentOS
sudo yum install iotop常用参数:
| 参数 | 功能 |
|---|---|
-o | 只显示有 I/O 活动的进程 |
-d 2 | 每 2 秒刷新一次 |
-u user | 只显示指定用户的进程 |
交互按键(运行中):
| 按键 | 功能 |
|---|---|
r | 反向排序 |
o | 只显示有 I/O 的进程(同 -o) |
q | 退出 |
示例:
sudo iotop -o优点:精准定位哪个进程在"写磁盘"
缺点:需要 root 权限,在高 IOPS 环境下资源占用稍高
五、iftop —— 网络流量监控
定位:按连接查看网络收发速率的工具,相当于"网络版的 top"。
主要功能:
- 显示每个网络连接的实时流量速率
- 区分发送(tx)和接收(rx)
- 显示 2秒/10秒/40秒 的平均速率
安装:
# Debian/Ubuntu
sudo apt install iftop
# RHEL/CentOS
sudo yum install iftop常用参数:
| 参数 | 功能 |
|---|---|
-i eth0 | 指定网卡 |
-n | 不解析域名(显示 IP,更快) |
-p | 混杂模式(捕获所有流量) |
交互按键(运行中):
| 按键 | 功能 |
|---|---|
n | 开关 DNS 解析 |
p | 显示/隐藏端口号 |
s | 显示/隐藏源主机 |
d | 显示/隐藏目标主机 |
b | 切换单位(bit / Byte) |
示例:
sudo iftop -i eth0 -n优点:直观显示流量去向,适合分析带宽占用
缺点:不显示进程 PID(只看连接),需要 root 权限
六、使用场景总结
| 场景 | 推荐工具 |
|---|---|
| 快速查看系统负载、CPU、内存 | top 或 htop |
| 需要友好的进程管理(搜索、树形、杀进程) | htop |
| 发现系统卡顿,怀疑磁盘慢 | iotop -o |
| 发现带宽占满,想确认是哪个程序 | nethogs(真正按进程) |
| 想看流量是去了哪个 IP(排查攻击、异常外联) | iftop |
补充:nethogs 的角色
虽然名字里没有 top,但 nethogs 正好填补了 iftop 的不足——按进程显示网络流量。如果你需要像 iotop 那样直接看到"进程名 + 网络速率",nethogs 是更合适的选择。
sudo nethogs eth0这四个工具配合使用,可以覆盖 Linux 性能排查的绝大多数场景。每个都有自己擅长的领域,根据需求选择合适的工具即可。