Linux 系統效能監控實戰:用 htop + iotop + nmon 做全面系統診斷

# Linux 系統效能監控實戰:用 htop + iotop + nmon 做全面系統診斷 做 IT 嘅你一定試過呢個場景:server 突然慢到嘔,CPU 飆到 100%,但係你完全唔知邊個 process 搞鬼。今日就同大家分享三個 Linux 效能監控神器,等你可以快速定位問題根源。 ## 點解要學 Linux 效能監控? 無論你係 system admin、DevOps 定係 backe...

Linux 系統效能監控實戰:用 htop + iotop + nmon 做全面系統診斷 - 文章重點速覽 infographic

# Linux 系統效能監控實戰:用 htop + iotop + nmon 做全面系統診斷

做 IT 嘅你一定試過呢個場景:server 突然慢到嘔,CPU 飆到 100%,但係你完全唔知邊個 process 搞鬼。今日就同大家分享三個 Linux 效能監控神器,等你可以快速定位問題根源。

## 點解要學 Linux 效能監控?

無論你係 system admin、DevOps 定係 backend developer,Linux 效能監控都係基本功。當 server 出問題嗰陣,你冇時間慢慢 Google — 你要即刻知道邊度出事。htop、iotop 同 nmon 呢三個工具加埋,可以幫你喺 5 分鐘內鎖定 bottleneck。

## htop:進階版 Process Monitor

htop 係 top 嘅強化版,有彩色介面、滑鼠支援、直覺嘅 process 管理功能。如果你仲用緊 top,係時候 upgrade 啦。

### 安裝 htop

# Ubuntu/Debian
sudo apt install htop -y

# CentOS/RHEL
sudo yum install htop -y

# macOS
brew install htop

### htop 常用快速鍵

F2 / Shift+S  → 進入 Setup 介面,自訂顯示欄位
F3 / /        → 搜尋 process
F4 / \        → 篩選 process(只顯示符合條件嘅)
F5 / t        → 切換樹狀結構顯示(睇 parent-child 關係)
F6 / >        → 排序方式切換(CPU%、MEM%、TIME 等)
F9 / k        → Kill process(可以揀 SIGTERM 定 SIGKILL)
F10 / q       → 退出

### 實戰技巧:揾出食 CPU 嘅 Process

# 啟動 htop 之後:
# 1. 撳 F6,揀 PERCENT_CPU 排序
# 2. 睇最頂嗰幾個 process
# 3. 如果係 MySQL/nginx 食曬 CPU,撳 F9 → SIGTERM 優雅地 kill
# 4. 或者撳 F7/F8 調整 nice value(降低 priority)

**Pro tip:** 撳 `Shift+H` 可以隱藏/顯示 user process threads,對於 debug multi-threaded application 超有用。

## iotop:磁碟 I/O 即時監控

CPU 同 RAM 冇事,但 server 仲係慢?好大機會係 disk I/O bottleneck。iotop 就係用嚟睇邊個 process 瘋狂讀寫硬碟。

### 安裝 iotop

# Ubuntu/Debian
sudo apt install iotop -y

# CentOS/RHEL
sudo yum install iotop -y

### iotop 常用參數

# 基本用法(需要 root)
sudo iotop

# 只顯示有 I/O 活動嘅 process
sudo iotop -o

# Batch mode(適合寫入 log file)
sudo iotop -b -n 10 -d 2

# 只睇特定 process
sudo iotop -p 12345

### 實戰:診斷 Database Server 慢嘅原因

# 1. 先開 iotop -o 睇邊個 process 讀寫最多
sudo iotop -o

# 2. 如果見到 mysqld 嘅 DISK WRITE 好高
#    → 可能係大量 INSERT/UPDATE 或者 index 重建中

# 3. 用 iostat 輔助睇 disk utilization
iostat -x 1

# 4. 如果 %util 接近 100% → 磁碟係 bottleneck
#    解決方案:加 RAM cache、轉 SSD、或優化 query

## nmon:全能型系統監控

nmon(Nigel’s Monitor)係一個 all-in-one 嘅效能監控工具,可以同時睇 CPU、Memory、Disk、Network、Kernel 統計。佢仲可以 export 數據做 spreadsheet 分析。

### 安裝 nmon

# Ubuntu/Debian
sudo apt install nmon -y

# CentOS/RHEL
sudo yum install nmon -y

### nmon 互動模式

# 啟動 nmon
nmon

# 撳以下按鍵切換顯示:
c → CPU 使用率(同時顯示每個 core)
m → Memory 使用情況
d → Disk I/O 圖表
n → Network 流量
k → Kernel 統計
t → Top process(類似 top)
V → Virtual Memory 統計

### nmon 數據收集模式(最重要!)

# 每 30 秒收集一次數據,持續 1 小時(120 個 sample)
nmon -f -s 30 -c 120

# -f  : 輸出 spreadsheet 格式檔案
# -s  : sampling interval(秒)
# -c  : 總共收集幾多個 sample
# 輸出檔名格式:hostname_YYMMDD_HHMM.nmon

# 之後可以用 nmonchart 將 .nmon 轉成 HTML 圖表
nmonchart output.nmon report.html

## 三合一實戰流程

當 server 出事嗰陣,跟住呢個流程做:

# Step 1: 快速 overview(30 秒內)
htop
# → 睇 CPU/RAM 使用率、load average、top process

# Step 2: 如果 CPU 正常但系統慢
sudo iotop -o
# → 檢查係咪 disk I/O bottleneck

# Step 3: 全面診斷(長期監控)
nmon -f -s 10 -c 180
# → 收集 30 分鐘數據,之後慢慢分析

# Step 4: 事後分析
nmonchart hostname_*.nmon analysis.html
# → 生成圖表報告,同 team 分享

## 常見 Bottleneck 速查表

| 症狀 | 可能原因 | 診斷工具 |
|——|———|———|
| CPU 100% | Infinite loop / 大量運算 | htop |
| Load Average 高但 CPU 低 | Disk I/O 等待 | iotop |
| Memory 用盡 | Memory leak | htop (MEM%) |
| Network 慢 | Bandwidth 飽和 | nmon (n) |
| Swap 使用中 | RAM 不足 | htop / nmon (m) |

## 總結

Linux 效能監控唔係火箭科學,關鍵係你要知道咩情況用咩工具。htop 俾你快速睇 process level,iotop 幫你揾 disk I/O 問題,nmon 就係長期監控同數據分析嘅神器。三個工具夾埋用,基本上 90% 嘅 server 效能問題都揾到根源。

🔗 參考資料:NVD NIST 漏洞資料庫

下次 server 出事,唔好再 panic — 打開 terminal,跟住上面個流程,5 分鐘內鎖定問題!