top — 即時監控系統程序與資源使用
即時顯示系統程序列表與 CPU、記憶體使用狀況。
語法
top [選項]
常用選項
| 選項 | 說明 | 範例 |
|---|---|---|
-d 秒數 |
設定更新間隔(預設 3 秒) | top -d 1 |
-n 次數 |
只更新指定次數後自動結束 | top -n 5 |
-u 使用者 |
只顯示指定使用者的程序 | top -u www-data |
-p PID |
只監控指定 PID 的程序 | top -p 1234,5678 |
-b |
批次模式輸出,適合重導向到檔案或管線 | top -b -n 1 > snapshot.txt |
-H |
顯示執行緒(thread)而非程序 | top -H |
使用範例
範例 1:啟動 top
直接執行 top,進入互動式監控畫面,顯示系統概要與程序列表。
$ top
top - 10:30:00 up 5 days, 2:15, 2 users, load average: 0.45, 0.38, 0.32
Tasks: 185 total, 1 running, 184 sleeping
%Cpu(s): 2.3 us, 0.8 sy, 0.0 ni, 96.5 id, 0.4 wa
MiB Mem : 7849.8 total, 512.3 free, 4123.4 used, 3214.1 buff/cache
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1234 mysql 20 0 1024.0m 312.0m 10.0m S 2.5 15.2 1:23.45 mysqld
畫面每 3 秒更新一次,按 q 離開。
範例 2:互動快捷鍵:排序與操作
top 互動模式中常用的快捷鍵(在 top 執行中按下):
$ (在 top 中按以下按鍵)\nM — 依記憶體使用排序\nP — 依 CPU 使用排序\nk — 輸入 PID 傳送訊號(殺程序)\nr — 調整程序 nice 值(優先級)\n1 — 展開顯示每個 CPU 核心\nq — 離開 top
範例 3:批次模式:取一次快照
使用 -b -n 1 取得一次靜態快照,輸出到檔案,適合放入腳本。
$ top -b -n 1 | head -20
top - 10:30:00 up 5 days ...
...
範例 4:監控特定使用者的程序
只顯示 nginx 服務使用者(www-data)的程序,過濾其他雜訊。
$ top -u www-data
(只顯示 www-data 使用者的程序)
常見錯誤與排錯
top 顯示 CPU 使用率長期偏高,找不到是哪個程序
- 原因
- top 預設依 CPU 排序,但有時問題在於大量小程序分散 CPU 使用。
- 解法
- 按 1 展開各 CPU 核心查看,或改用 htop(apt install htop)獲得更好的視覺化呈現。