🐧 Linux 監控工具全比較:top / htop / Glances / nmon / dstat 實務應用與效能分析指南
想有效掌握 Linux 系統效能狀況,最常使用的就是 CPU、記憶體、Disk I/O、網路等即時監控工具。
傳統的 top 雖然已經很好用,但面對複雜的工作負載、容器環境或持續效能瓶頸分析時,工具越齊全,你的維運效率越高。
本文以實務角度比較 top、htop、Glances、nmon、dstat 的功能差異,並提供如何在常見情境中選用最佳工具。
一、監控工具概覽比較表
| 工具 | 即時監控 | CPU/Memory | I/O | 網路 | 歷史紀錄 | UI 介面 | 適用情境 |
|---|---|---|---|---|---|---|---|
| top | ✔ | ✔ | ▲(有限) | ▲ | ✘ | CLI | 快速查看、所有系統預設有 |
| htop | ✔ | ✔ | ✔ | ✔ | ▲(有限) | 互動式彩色 UI | 直覺查看 CPU/Threads、Kill Process |
| Glances | ✔ | ✔ | ✔ | ✔ | ✔(可匯出) | Web/CLI | 全方位統整、遠端監控、高度擴充 |
| nmon | ✔ | ✔ | ✔(Disk 非常強) | ✔ | ✔(CSV 匯出) | CLI + 圖表分析工具 | 性能瓶頸調查、大規模效能記錄 |
| dstat | ✔ | ✔ | ✔(I/O 超完整) | ✔ | ✔(CSV) | CLI | 觀察 I/O、Network、Context Switch 變化 |
二、top:Linux 內建、最基本的即時監控工具
top 幾乎在所有 Linux 發行版中都已預設安裝。它適合:
- 快速排查 CPU 最高的程序
- 觀察整體 Load Average、記憶體壓力
- 快速找出卡住的 Process
# 啟動 top
top
# 常用熱鍵
P 依 CPU 排序
M 依 Memory 排序
k Kill process
1 顯示每一顆 CPU 的使用率
top 的侷限
- 介面不夠直覺
- I/O 監控有限
- 沒有歷史紀錄功能
三、htop:top 的強化版,介面友好且互動性高
htop 被視為 top 的高階版,具有更美觀的彩色介面、Process Tree 樹狀圖、滑鼠操作支援。
# 安裝 htop
sudo apt install htop # Debian/Ubuntu
sudo dnf install htop # RHEL/CentOS/Rocky
# 執行
htop
htop 優點
- 顯示 CPU 個別核心使用率(含 logical cores)
- 可視化記憶體條、Swap 負載條
- Tree View 方便找出父子程序
- 按一下 F9 即可 Kill Process
htop 的侷限
- 缺乏深入 I/O、Network 分析
- 無法詳細記錄長期效能
四、Glances:全方位統整的效能儀表板(支援 Web UI)
Glances 是 Python 寫的跨平台系統監控工具,最大亮點是提供「全項目即時監控」: CPU、Memory、Disk、Network、Sensors、Docker、Systemd、Processes、Load、I/O… 全部整合在同一畫面。
安裝 Glances
sudo apt install glances # Debian/Ubuntu
sudo dnf install glances # RHEL 9+
pip install glances # 通用方式
啟動方式
glances # 本地監控
glances -w # 啟動 Web UI(預設 port 61208)
glances --export csv # 將監控資料匯出
Glances 優點
- 全項目整合,不需切視窗或執行多工具
- 支援 Web UI,可遠端監控
- 支援匯出到 InfluxDB、Prometheus、CSV
- 插件架構能顯示 Docker、sensor 等高階資訊
Glances 缺點
- 佔用資源比 top/htop 多一些
- 對純 CLI 使用者可能覺得畫面較複雜
五、nmon:IBM 開發、企業級效能調校神器
nmon(Nigel’s Monitor)在企業中被廣泛用於效能分析,尤其適合:
- Disk I/O 深度分析
- CPU 上千核心的大型機性能記錄
- 長時間記錄(以 CSV 輸出供分析)
- 搭配 nmon Analyser 轉成 Excel 圖表
安裝
sudo apt install nmon
sudo dnf install nmon
啟動與常用按鍵
nmon
CPU → c
Disk → d
Network → n
Memory → m
Load → l
Top processes → t
長期記錄模式(perf 分析最常用)
# 每 10 秒記錄一次,共持續 1 小時
nmon -f -s 10 -c 360
輸出會生成一個 .nmon 檔,可用 nmon analyser 產生圖表化報表。
六、dstat:最全面的 I/O 與 Network 分析工具
dstat 非常適合排查下列問題:
- I/O 是否爆量?是否被某程序佔滿?
- 磁碟延遲是否異常?
- Network 流量是否突增?
- 是否有 context switch 突然飆高?
安裝
sudo apt install dstat
sudo dnf install dstat
常用範例
# 查看 CPU + Disk + Network + Page Faults
dstat -cdngy
# 每 1 秒記錄,並輸出到 CSV
dstat -cdngy --output log.csv
dstat 優點
- 完整 I/O 與網路監控,勝過 top/htop
- 清楚顯示 bottleneck 發生的時序
- 可匯出 CSV 做圖表分析
七、實務情境:到底該用哪一個?
1. CPU 飆高(不明原因)
- 首選:htop(清楚查看 Threads、樹狀關係)
- 補充:top(快速找 process)
2. I/O 讀寫異常、延遲變高
- 首選:dstat(I/O 變化曲線最完整)
- 補充:nmon(Disk 分析更深入)
3. Network 流量突增
- 首選:dstat
- 補充:Glances(可同時看多指標)
4. 高負載(Load Average 過高)
- 首選:Glances(一次看 CPU、IO、Memory、Wait)
5. 長時間效能記錄 & 報表輸出
- 首選:nmon(含分析工具)
- 補充:Glances(可匯出 InfluxDB / CSV)
6. Docker / 容器環境監控
- 首選:Glances(原生支援 Docker 資源監控)
八、五大工具總結:如何挑選?
一句話總結:
- top:最基本,每台都有、最安全
- htop:最好用的日常監控工具
- Glances:最全能的效能儀表板
- nmon:最適合效能瓶頸深度調查
- dstat:最適合 I/O & Network 時序分析
建議默默安裝全部,視情境使用不同工具,維運體驗會提升非常多。
🧭 行動清單(可直接照做)
sudo apt install htop glances nmon dstat
htop # 日常用
glances # 全方位監控
dstat -cdngy # I/O + Network 分析
nmon -f -s 10 -c 360 # 長時間效能記錄
🔗 延伸閱讀
- 🐧 Linux 伺服器從安裝到 Hardening:完整入門到安全強化
- 📜 Systemd + Logrotate 管理與整合
- 🛡 Linux 安全強化:SELinux / AppArmor / Auditd / Fail2Ban
- 📊 GoAccess 日誌分析教程:Nginx/Apache 即時流量可視化
- 🐧 Linux 檔案系統深入比較:ext4 / XFS / Btrfs / ZFS
— WWFandy・Linux 效能觀察筆記
沒有留言: