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)獲得更好的視覺化呈現。

延伸閱讀