| 參數 | 說明 |
-b | 批處理模式(配合重定向輸出到文件) |
-c | 顯示完整命令行 |
-d 秒數 | 刷新間隔(預設 3 秒) |
-n 次數 | 循環次數後退出 |
-u 用戶 | 僅顯示指定用戶進程 |
-p PID | 僅監控指定 PID |
-H | 顯示線程 |
二、輸出界面逐行拆解(以實例為例)
top - 14:06:23 up 70 days, 16:44, 2 users, load average: 1.25, 1.32, 1.35
Tasks: 206 total, 1 running, 205 sleeping, 0 stopped, 0 zombie
%Cpu(s): 5.9 us, 3.4 sy, 0.0 ni, 90.4 id, 0.0 wa, 0.0 hi, 0.2 si, 0.0 st
MiB Mem : 32176 total, 14073 used, 18103 free, 165 buff/cache
MiB Swap: 31996 total, 0 used, 31996 free, 3528 avail Mem
第 1 行:任務隊列
load average:1/5/15 分鐘平均負載。負載 > 邏輯 CPU 核心數 × 0.7 持續高位 → 需關注
第 2 行:任務統計
zombie 僵屍進程 > 0 表明父進程未正確 wait() 回收
第 3 行:CPU 佔用分解
| 縮寫 | 全稱 | 含義 |
| us | user | 用戶態佔用 |
| sy | system | 內核態佔用 |
| ni | nice | 改變優先級的進程佔用 |
| id | idle | 空閒 |
| wa | iowait | 等待 I/O(高則磁盤瓶頸) |
| hi | hardware interrupt | 硬中斷 |
| si | software interrupt | 軟中斷 |
| st | steal | 虛擬機被宿主機搶佔 |
第 4-5 行:內存與 Swap
- 可用內存近似公式:
free + buffers + cached(或直接看 avail Mem)
- 關鍵指標:
Swap used 持續增長/波動 → 物理內存不足,頻繁換頁
進程列欄位(第 7 行起)
| 欄位 | 含義 |
| PID | 進程 ID |
| USER | 擁有者 |
| PR | 調度優先級 |
| NI | Nice 值(-20 高 ~ 19 低) |
| VIRT | 虛擬內存 = SWAP + RES |
| RES | 常駐物理內存 = CODE + DATA |
| SHR | 共享內存 |
| S | 狀態:D(不可中斷睡眠) R(運行) S(睡眠) T(跟蹤/停止) Z(僵屍) |
| %CPU | 最近一個間隔佔用 |
| %MEM | 物理內存佔比 |
| TIME+ | 累計 CPU 時間(百分之一秒) |
| COMMAND | 命令名/參數 |
三、交互熱鍵(運行時按鍵)
| 鍵 | 功能 |
| P | 按 %CPU 排序(預設) |
| M | 按 %MEM 排序 |
| T | 按 TIME+ 排序 |
| N | 按 PID 排序 |
| 1 | 切換顯示所有 CPU 核心佔用 |
| H | 切換顯示線程 |
| c | 切換顯示完整命令行 |
| k | 殺死進程(輸入 PID + 信號) |
| r | 重設 Nice 值 |
| d | 修改刷新間隔 |
| W | 寫入配置文件(~/.toprc) |
| q | 退出 |
四、批處理模式記錄歷史
top -b -n 10 -d 2 > top_log.txt
# 每 2 秒採樣 10 次,適合腳本分析

copyright ©
萬盛學電腦網 all rights reserved