一、 经典基石:top
top 是 Linux 系统监控的“开山鼻祖”,几乎存在于所有发行版中。它的强大之处在于其普适性和稳定性。当你 SSH 登录到一台陌生的、设置最简单的服务器时,top 几乎是你唯一可以确信存在的实时监控工具。
我的常用命令与交互操作:
启动 top 后,其界面分为系统概览和进程列表。我习惯先关注几个关键指标:
- 负载平均值(load average):三个数值分别代表过去1、5、15分钟的系统平均负载。这是一个宏观健康度指标。
- CPU 使用率(%Cpu(s)):这里细分为用户态(us)、系统态(sy)、空闲(id)等。如果
wa(I/O 等待)持续偏高,往往意味着磁盘可能成为瓶颈。 - 内存与交换空间(MiB Mem/Swap):关注
used 和 avail。交换空间(swap)如果被频繁使用,说明物理内存已紧张。
在进程列表中,默认按 CPU 使用率排序。我常用的一些交互命令:
M:按内存使用率排序。查找内存消耗大户时非常有用。1:展开显示所有逻辑 CPU 核心的使用情况,而不是一个汇总。Shift + f:进入字段管理,可以自定义显示哪些列以及排序依据。比如,我可以增加 PPID(父进程ID)或 CODE(内存代码段大小)列。
设置点滴:
虽然 top 本身设置不多,但可以通过 ~/.toprc 文件保存个人设置。比如,我将默认刷新间隔设置为2秒,并固定了显示的列:
$ cat ~/.toprc
RCfile for "top with windows" # shameless braggin'
Id:a, Mode_altscr=0, Mode_irixps=1, Delay_time=2.0, Curwin=0
Def fieldscur=AEHIOQTWKNMbcdfgjplrsuvyzX
winflags=32569, sortindx=0, maxtasks=0
summclr=1, msgsclr=1, headclr=3, taskclr=1
这个设置是通过在 top 运行时按 Shift + W 保存生成的。
适用场景:
- 编写脚本时,因其输出格式相对稳定,便于用
awk、grep 解析。
二、 直观高效:htop
如果说 top 是可靠的“老爷车”,那 htop 就是配备了全液晶仪表盘的“现代座驾”。它提供了彩色界面、更直观的横向柱状图,并全面支持鼠标操作,大大提升了交互体验。
我的常用操作:
htop 开箱即用,界面信息量更丰富:
- CPU、内存、交换空间使用率 以彩色进度条显示,一目了然。
- 可以直接用鼠标点击表头进行排序,点击进程选择操作。
- 树状视图(按
F5)可以清晰展示进程父子关系,对于分析由某个父进程派生出的整个进程组非常方便。
强大的交互与过滤:
F3 或 /:搜索进程。输入进程名的一部分即可快速定位。F4:过滤进程。比如输入 java 只显示所有 Java 进程,这在复杂的 Java 应用服务器上排查问题时极其高效。F9:发送信号。选中进程后按 F9,会弹出信号列表(如 TERM, KILL, HUP等),用方向键选择即可,比 top 的 k 命令更直观防护。F2:进入设置界面。这里可以灵活设置显示哪些仪表、列及其颜色。我通常会添加“IO 读取速率”和“IO 写入速率”列,以便观察磁盘 I/O 密集型进程。
设置示例:
htop 的设置保存在 ~/.config/htop/htoprc。一个实用的设置是启用“详细CPU时间”和调整颜色方案,让不同状态的进程更易区分。
适用场景:
三、 全景仪表盘:glances
glances 是一位“全能型选手”。它在一个屏幕上集成了几乎所有的系统关键指标,并具备 C/S 模式和 Web 模式,堪称监控仪表盘的集大成者。
核心特性与使用:
安装 glances 后,直接运行 glances,你会看到一个信息密度极高的界面,通常包括:
- 网络 I/O:分接口显示发送/接收速率,对于排查网络流量异常至关重要。
高级功能:
- 客户端/服务器模式:这是 glances 的一大亮点。在一台机器上启动服务端:
glances -s -B 0.0.0.0,然后在另一台机器上用 glances -c <服务器IP> 连接。这为集中查看多台服务器状态提供了轻量级方案。 - Web 服务器模式:运行
glances -w,即可通过浏览器访问 http://<主机>:61208 查看监控页面,非常适合在桌面浏览器上常开一个监控窗口。 - 导出数据:glances 可以将数据导出到多种外部系统,如 CSV、InfluxDB、Prometheus 等,便于集成到更庞大的监控体系中。比如,输出为 CSV 格式:
glances --export csv --export-csv-file /tmp/glances.csv。 - 告警机制:glances 内置了阈值告警功能,当 CPU、内存、磁盘等使用率超过预设阈值时,相关数值会以红色高亮显示,非常醒目。
适用场景:
总结与选择建议
经过多年的实践,我对这三款工具形成了这样的使用习惯:
- 求稳与通用,首选
top。它是我的“保底”工具,任何环境下都能用,脚本化能力强。 - 交互与排查,深爱
htop。它是我日常在终端里使用频率最高的工具,直观的界面和强大的过滤功能让问题定位事半功倍。 - 全景与集成,青睐
glances。当我想一眼看清系统的所有关键指标,或者需要快速建立一个临时监控点时,glances 是不二之选。
它们并非相互替代,而是相辅相成。一个成熟的运维工程师,应当根据具体场景灵活切换。比如,我可能先用 glances 发现某台服务器网络流量异常,然后通过 htop 的过滤功能快速定位到产生流量的具体进程,最后如果需要写一个监控脚本,则用 top 的命令行输出来提取关键指标。
工具的价值,最终在于使用它的人。希望我的这些经验分享,能帮助你在运维道路上,更从容地驾驭系统性能的波澜起伏。记住,最好的工具,永远是那个你最熟悉、最能解决当下问题的工具。
👨💻 运维老兵经