前五行是系統整體的統計信息,稱為匯總區(Summary Area)。
第一行是時間相關和任務隊列信息,同 uptime 命令的執行結果。
16:07:48 當前時間 up 442 days, 2:51 系統運行的總時長,單位分 3 users 當前登錄用戶數 load average: 0.00, 0.01, 0.05 系統負載,即任務隊列的平均長度。三個數值分別為最近 1 分鍾、5 分鍾、15 分鍾的平均值。
第二行是進程信息統計數據。
217 total 總的進程數 1 running 正在運行的進程數 216 sleeping 睡眠的進程數 0 stopped 停止的進程數 0 zombie 僵屍進程數
第三行是 CPU 統計數據。
0.6 us 用戶空間占用CPU百分比 0.3 sy 內核空間占用CPU百分比 0.0 ni 用戶進程空間內改變過優先級的進程占用CPU百分比 99.1 id 空閑CPU百分比 0.0 wa 等待輸入輸出的CPU時間百分比 0.0 hi 硬中斷(Hardware IRQ)占用CPU百分比 0.0 si 軟中斷(Software IRQ)占用CPU百分比 0.0 st 虛擬機(虛擬化技術)占用百分比
第四行為物理內存的統計數據。
15140452 total 物理內存總量 598296 free 空閑內存總量 383764 used 已使用的物理內存總量 14158392 buff/cache 用作內核緩存的內存量
第五行為交換分區(即虛擬內存)的統計數據。
2104508 total 交換區總量 1550372 free 空閑交換區總量 554136 used 已使用的交換區總量 12974597 avail Mem 實際可用物理內存總量
這里要說明的是不能用 Windows 的內存概念來理解這些數據,如果按 Windows 的方式來理解,此服務器共只剩下 598MB 的內存,實際上系統可用的物理內存遠不止這些。free 內存表示尚未被內核占用的空閑內存,但是被內核占用用於 buffer 和 cache 的內存,實際上是可以被進程使用的,內核並不把這些可被重新使用的內存算到 free 中,因此在 Linux 上 free 內存會越來越少,但不用為此擔心。
第六行是空行。從第七行開始,顯示了各個進程的狀態信息,稱為任務區(Task Area)。各列含義如下:
PID 進程id USER 進程所有者 PR 進程優先級,范圍為0-31,數值越低,優先級越高 NI nice值。范圍-20到+19,用於調整進程優先級,新的進程優先級 PR(new)=PR(old)+nice,所以nice負值表示高優先級,正值表示低優先級 VIRT 進程使用的虛擬內存總量,單位 KB RES Resident Memory Size,進程使用的、未被換出的物理內存大小,單位 KB SHR 共享內存大小,單位 KB S 進程狀態。D=不可中斷的睡眠狀態 R=運行 S=睡眠 T=停止 t=跟蹤 Z=僵屍進程 %CPU 上次更新到現在的 CPU 時間占用百分比。注意,在多核或多 CPU 環境中,如果進程是多線程的,而 top 不是在線程模式下運行的,該值由多個核的值累加,可能會大於 100% %MEM 進程使用的物理內存百分比 TIME+ 進程使用的 CPU 時間總計,單位 1/100 秒 COMMAND 進程名稱(命令名/命令行)
top 可輸出的全部進程指標可以使用命令top -O
查看,其它指標的介紹這里不再贅述,具體可參見 top manual。top -O
輸出結果如下:
PID PPID UID USER RUID RUSER SUID SUSER GID GROUP PGRP TTY TPGID SID PR NI nTH P %CPU TIME TIME+ %MEM VIRT SWAP RES CODE DATA SHR nMaj nMin nDRT S COMMAND WCHAN Flags CGROUPS SUPGIDS SUPGRPS TGID ENVIRON vMj vMn USED nsIPC nsMNT nsNET nsPID nsUSER nsUTS