Linux中的top命令顯示系統(tǒng)上正在運行的進程。它是系統(tǒng)管理員最重要的工具之一。被廣泛用于監(jiān)視服務(wù)器的負載。在本篇中,我們會探索top命令的細節(jié)。top命令是一個交互命令。在運行top的時候還可以運行很多命令。我們也會探索這些命令。(注:不同發(fā)行版的top命令在各種細節(jié)有不同,如果發(fā)現(xiàn)不同時,請讀你的幫助手冊和命令內(nèi)的幫助。)
1. Top 命令輸出:
首先,讓我們了解一下輸出。top命令會顯示系統(tǒng)的很多信息。我們需要理解不同部分輸出的意義:默認運行時,top命令會顯示如下輸出:
(默認顯示)
前幾行水平顯示了不同系統(tǒng)參數(shù)的概括,接下來是進程和它們在列中的屬性。
1.1 系統(tǒng)運行時間和平均負載:
(顯示運行時間)
top命令的頂部顯示與uptime命令相似的輸出。
這些字段顯示:
當前時間
系統(tǒng)已運行的時間
當前登錄用戶的數(shù)量
相應(yīng)最近5、10和15分鐘內(nèi)的平均負載。
可以使用'l'命令切換uptime的顯示。
1.2 任務(wù):
(任務(wù)概況)
第二行顯示的是任務(wù)或者進程的總結(jié)。進程可以處于不同的狀態(tài)。這里顯示了全部進程的數(shù)量。除此之外,還有正在運行、睡眠、停止、僵尸進程的數(shù)量(僵尸是一種進程的狀態(tài))。這些進程概括信息可以用't'切換顯示。
1.3 CPU 狀態(tài):
(CPU狀態(tài)顯示)
下一行顯示的是CPU狀態(tài)。 這里顯示了不同模式下的所占CPU時間的百分比。這些不同的CPU時間表示:
us, user: 運行(未調(diào)整優(yōu)先級的) 用戶進程的CPU時間
sy,system: 運行內(nèi)核進程的CPU時間
ni,niced:運行已調(diào)整優(yōu)先級的用戶進程的CPU時間
wa,IO wait: 用于等待IO完成的CPU時間
hi:處理硬件中斷的CPU時間
si: 處理軟件中斷的CPU時間
st:這個虛擬機被hypervisor偷去的CPU時間(譯注:如果當前處于一個hypervisor下的vm,實際上hypervisor也是要消耗一部分CPU處理時間的)。
可以使用't'命令切換顯示。
1.4 內(nèi)存使用:
(內(nèi)存使用情況)
接下來兩行顯示內(nèi)存使用率,有點像'free'命令。第一行是物理內(nèi)存使用,第二行是虛擬內(nèi)存使用(交換空間)。
物理內(nèi)存顯示如下:全部可用內(nèi)存、已使用內(nèi)存、空閑內(nèi)存、緩沖內(nèi)存。相似地:交換部分顯示的是:全部、已使用、空閑和緩沖交換空間。
內(nèi)存顯示可以用'm'命令切換。
1.5 字段/列:
(任務(wù)信息列)
在橫向列出的系統(tǒng)屬性和狀態(tài)下面,是以列顯示的進程。不同的列代表下面要解釋的不同屬性。
默認上,top顯示這些關(guān)于進程的屬性:
PID
進程ID,進程的唯一標識符
USER
進程所有者的實際用戶名。
PR
進程的調(diào)度優(yōu)先級。這個字段的一些值是'rt'。這意味這這些進程運行在實時態(tài)。
NI
進程的nice值(優(yōu)先級)。越小的值意味著越高的優(yōu)先級。
VIRT
進程使用的虛擬內(nèi)存。
RES
駐留內(nèi)存大小。駐留內(nèi)存是任務(wù)使用的非交換物理內(nèi)存大小。
SHR
SHR是進程使用的共享內(nèi)存。
S
這個是進程的狀態(tài)。它有以下不同的值:
D - 不可中斷的睡眠態(tài)。
R – 運行態(tài)
S – 睡眠態(tài)
T – 被跟蹤或已停止
Z – 僵尸態(tài)
%CPU
自從上一次更新時到現(xiàn)在任務(wù)所使用的CPU時間百分比。
%MEM
進程使用的可用物理內(nèi)存百分比。
TIME+
任務(wù)啟動后到現(xiàn)在所使用的全部CPU時間,精確到百分之一秒。
COMMAND
運行進程所使用的命令。
還有許多在默認情況下不會顯示的輸出,它們可以顯示進程的頁錯誤、有效組和組ID和其他更多的信息。
2. 交互命令:
我們之前說過top是一個交互命令。上一節(jié)我們已經(jīng)遇到了一些命令。這里我們會探索更多的命令。
2.1 ‘h’: 幫助