前言
在 Linux 系統中,無論是 CPU、記憶體、磁碟、鍵盤、滑鼠還是使用者,一切皆檔案。掌握系統監控指令是確保系統穩定運行的關鍵。本文詳細介紹兩大核心指令:df(磁碟空間檢視)與 top(即時效能監控)。
一、df 指令:檔案系統磁碟空間使用情況
1. 基本語法
df [選項] [檔案/目錄...]
2. 常用參數
| 參數 | 說明 |
-h | 人類可讀格式顯示(KB、MB、GB),最常用 |
-T | 顯示檔案系統類型(ext4、xfs、vfat 等) |
-i | 顯示 inode 使用量而非區塊使用量 |
-a | 包含虛擬檔案系統(如 proc、sysfs) |
-k | 以 1024 位元組為單位顯示 |
-P | POSIX 輸出格式,適合腳本解析 |
3. 輸出欄位說明
檔案系統 類型 容量 已用 可用 已用% 掛載點
/dev/sda1 ext4 50G 20G 28G 42% /
/dev/sdb1 xfs 200G 50G 150G 25% /data
tmpfs tmpfs 8G 100M 7.9G 2% /run
- 容量:總大小
- 已用:已使用空間
- 可用:一般使用者可用空間(已扣除保留給 root 的 5%)
- 已用%:使用率
- 掛載點:檔案系統在目錄樹中的位置
4. 進階應用範例
# 查看所有檔案系統類型與使用率
df -hT
# 僅顯示特定掛載點
df -h /home
# 檢查 inode 是否耗盡(大量小檔案情境)
df -hi
5. 根分區保留空間機制
Linux 預留約 5% 空間給 root 使用,避免磁碟滿時系統管理員無法登入修復。可用 tune2fs -m 1 /dev/sda1 調整保留比例(ext4)。
二、top 指令:即時程序與系統資源監控
1. 基本語法
top [選項]
2. 常用參數
| 參數 | 說明 |
-d 秒數 | 指定更新間隔(預設 3 秒) |
-n 次數 | 更新指定次數後退出 |
-b | 批次模式,適合重導向至檔案 |
-u 使用者 | 僅顯示指定使用者的程序 |
-p PID | 僅監控指定 PID |
3. 介面欄位詳細解讀
摘要區(前 5 行)
- 當前時間、系統運行時間、登入使用者數、負載平均(1/5/15 分鐘)
- 任務統計:總數、運行中、睡眠中、停止、殭屍
- CPU 使用率:us(用戶)、sy(系統)、ni(優先級)、id(閒置)、wa(I/O 等待)、hi(硬中斷)、si(軟中斷)、st(虛擬機偷取)
- 記憶體:total、used、free、buff/cache
- Swap:total、used、free、avail Mem
程序清單區欄位
| 欄位 | 說明 |
PID | 程序識別碼 |
USER | 擁有者使用者名稱 |
PR | 優先級 |
NI | Nice 值(負值優先級高) |
VIRT | 虛擬記憶體總量 |
RES | 常駐記憶體(實際佔用物理記憶體) |
SHR | 共享記憶體 |
S | 狀態:R(運行)、S(睡眠)、D(不可中斷睡眠)、Z(殭屍)、T(停止) |
%CPU | CPU 使用率 |
%MEM | 記憶體使用率 |
TIME+ | 累計 CPU 時間 |
COMMAND | 啟動指令名稱 |
4. 互動熱鍵(執行 top 時按下)
| 熱鍵 | 功能 |
P | 依 CPU 使用率排序(預設) |
M | 依記憶體使用量排序 |
T | 依累計時間排序 |
c | 切換顯示完整指令路徑 |
u | 輸入使用者名稱過濾 |
k | 輸入 PID 發送訊號(預設 SIGTERM) |
r | 重新設定 PID 的 nice 值 |
W | 將目前設定寫入 ~/.toprc |
q | 離開 top |
Space | 立即重繪 |
5. 實戰範例
# 每 2 秒更新一次,共更新 10 次後退出
top -d 2 -n 10
# 批次模式輸出至檔案,供事後分析
top -b -n 5 > /tmp/top_snapshot.txt
# 僅監控 nginx 使用者程序
top -u nginx
三、效能監控最佳實務
- 建立基準線:在系統正常時記錄
top、df 輸出,異常時對比。
- 關注關鍵指標:負載平均 > CPU 核心數、%CPU 長期高、%MEM 持續增長、Swap 頻繁讀寫、inode 耗盡。
- 搭配其他工具:
vmstat、iostat、pidstat、htop(增強版 top)、glances(全方位監控)。
- 自動化告警:結合 Prometheus + Node Exporter + Grafana 或 Zabbix 進行持續監控與告警。
總結
df 掌握磁碟空間健康度,top 掌握 CPU/記憶體/程序即時狀態。熟練運用兩者並理解各欄位含義,是 Linux 系統管理員的基本功。建議平時多在測試環境操作互動熱鍵,遇到線上效能問題時才能快速定位瓶頸。