top 是一个非常经典的 Linux/Unix 系统监控工具,它以动态、全屏的方式显示系统中各个进程的资源占用情况。

除了 top 之外,还有许多功能类似或更强大的命令和工具,下面我将它们分为几类,并详细介绍它们的特点和用法。
经典替代品 (与 top 最相似)
这些命令是 top 的直接替代品,提供了不同的界面或功能。
htop - 强烈推荐!
htop 可以看作是 top 的增强版,它的界面更现代化、更人性化,交互性也更强。
-
主要特点:
(图片来源网络,侵删)- 彩色界面: 用不同颜色区分不同类型的进程和状态,一目了然。
- 垂直和水平滚动: 可以查看所有进程(不只是前几个),也可以水平滚动查看完整的命令行。
- 鼠标支持: 可以用鼠标点击选择进程和排序。
- 快捷键操作: 按
F9可以直接杀死进程,按F2可以进入设置界面。 - 树状视图: 按
t键可以将进程列表以树状结构显示,能清晰地看到父子进程关系。 - 显示线程: 按
H键可以切换是否显示线程。
-
如何安装:
- Debian/Ubuntu:
sudo apt install htop - CentOS/RHEL/Fedora:
sudo yum install htop或sudo dnf install htop - macOS (使用 Homebrew):
brew install htop
- Debian/Ubuntu:
-
使用示例:
htop
atop - 全能型系统与进程监控
atop 是一个非常强大的工具,不仅能监控进程,还能监控整个系统的资源使用情况(CPU、内存、磁盘、网络等),并且可以将数据保存下来用于后续分析。
-
主要特点:
(图片来源网络,侵删)- 资源覆盖广: 全面监控 CPU、内存、磁盘、网络、文件系统、卷组、Logical Volume Manager (LVM) 等。
- 历史数据记录: 可以将监控数据写入文件,用于分析过去某个时间段系统发生了什么。
- 进程树视图: 可以查看进程的父子关系。
- 交互式筛选: 可以按用户、程序名等进行筛选。
-
如何安装:
- Debian/Ubuntu:
sudo apt install atop - CentOS/RHEL/Fedora:
sudo yum install atop
- Debian/Ubuntu:
-
使用示例:
# 实时监控 atop # 后台运行,记录数据到文件 atop -a -w /var/log/atop.log # 从文件中读取历史数据 atop -r /var/log/atop.log
特定领域监控工具
这些工具专注于监控特定的系统资源,比 top 更深入。
ps - 进程快照
ps (Process Status) 是最基础的进程查看命令,它不像 top 那样持续更新,而是提供一个当前进程的“快照”。
-
主要特点:
- 静态视图: 显示某一时刻的进程状态。
- 灵活组合: 可以通过不同的选项组合出非常详细或非常简洁的列表。
-
常用组合:
ps aux: 显示所有进程的详细信息,非常经典。ps -ef: 另一种显示所有进程的方式,格式稍有不同。ps -eo pid,ppid,user,%cpu,%mem,cmd: 自定义输出列,精确控制显示内容。
-
使用示例:
# 查找所有名为 "java" 的进程 ps aux | grep java
glances - 终端下的系统监控仪表盘
glances 是一个功能极其丰富的跨平台监控工具,它能将所有关键信息(CPU、内存、磁盘、网络、进程、文件系统等)整合在一个屏幕上。
-
主要特点:
- 信息集中: 一个界面看遍所有系统状态。
- 可扩展性强: 支持插件,可以监控 Docker、GPU、Hadoop 等。
- 多种模式: 支持服务器-客户端模式(
-s和-c选项),可以在一台机器上监控另一台。 - 智能警报: 可以设置阈值,当资源使用过高时发出警报。
-
如何安装:
- 推荐使用 Python 的 pip 安装:
pip install glances - 或者使用包管理器:
sudo apt install glances
- 推荐使用 Python 的 pip 安装:
-
使用示例:
glances
nethogs - 按进程监控网络流量
当需要知道哪个进程占用了大量网络带宽时,nethogs 是不二之选。
-
主要特点:
- 按进程统计: 直接显示每个进程的下载和上传速度。
- 识别流量大户: 能快速定位出消耗网络资源的“元凶”。
-
如何安装:
- Debian/Ubuntu:
sudo apt install nethogs - CentOS/RHEL/Fedora:
sudo yum install nethogs
- Debian/Ubuntu:
-
使用示例:
# 监控所有网络接口 sudo nethogs # 只监控特定接口,如 eth0 sudo nethogs eth0
iotop - 按进程监控磁盘 I/O
iotop 类似于 nethogs,但它监控的是磁盘 I/O,告诉你哪个进程在疯狂地读写硬盘。
-
主要特点:
- 按进程统计: 显示每个进程的磁盘读取和写入速度。
- 实时显示 I/O 优先级: 帮助理解 I/O 调度情况。
-
如何安装:
- Debian/Ubuntu:
sudo apt install iotop - CentOS/RHEL/Fedora:
sudo yum install iotop
- Debian/Ubuntu:
-
使用示例:
# 需要 root 权限运行 sudo iotop
图形化界面工具
如果你更喜欢图形界面,这些工具非常强大且直观。
gnome-system-monitor - GNOME 桌面环境自带
这是 GNOME 桌面环境自带的系统监视器,功能非常全面。
-
主要特点:
- 资源图表: 实时显示 CPU、内存和网络的历史使用图表。
- 进程管理: 可以查看、搜索、结束进程,并能看到进程的依赖关系。
- 文件系统信息: 显示各个分区的使用情况。
-
如何启动:
- 在应用菜单中搜索“系统监视器”。
- 或者在终端输入:
gnome-system-monitor
KSysGuard - KDE 桌面环境自带
KDE 桌面环境下的系统监视器,功能极其强大和高度可定制。
-
主要特点:
- 传感器和工作表: 可以像配置仪表盘一样,自由组合各种传感器(如 CPU 频率、温度、网络连接数等)。
- 远程监控: 可以连接到其他运行
ksysguardd的机器进行监控。 - 高度灵活: 界面和监控项都可以深度定制。
-
如何启动:
- 在应用菜单中搜索“系统守护进程”。
- 或者在终端输入:
ksysguard
htop 的图形界面版本
还有一些工具,如 Task Manager (Gnome), LXTask (LXDE), KSysGuard (KDE) 等,它们提供了图形化的进程管理界面,功能和 ps 或 htop 类似,但更直观。
总结与对比
| 工具名 | 主要特点 | 适用场景 |
|---|---|---|
top |
经典、预装在几乎所有系统、资源占用低 | 快速查看系统整体进程状况,紧急情况下的第一选择 |
htop |
彩色、可滚动、鼠标支持、树状视图 | 日常系统监控的首选,强烈推荐 |
atop |
全能型、记录历史、监控资源广 | 长期系统监控、性能问题排查、分析历史数据 |
ps |
静态快照、灵活筛选 | 脚本处理、一次性查看特定进程信息 |
glances |
信息高度集中、可扩展、支持客户端/服务器 | 需要在一个界面掌握全局系统状态的场景 |
nethogs |
按进程统计网络流量 | 定位网络带宽占用的“元凶” |
iotop |
按进程统计磁盘 I/O | 定位磁盘 I/O 占用高的“元凶” |
| 图形化工具 | 直观、图表化、易于操作 | 喜欢图形界面的用户,需要长期观察系统趋势 |
建议:
- 如果你的系统没有
htop,请立即安装它,它会极大提升你排查问题的效率。 - 当
htop无法满足需求时,再考虑使用atop进行深度分析,或使用nethogs/iotop进行专项诊断。
