top是Linux較為常用的命令,可以監(jiān)控服務(wù)器的CPU、內(nèi)存、進程的運行情況,話不多說,直接操作。
輸入top即可啟動:

top運行界面
下面我們就來逐一介紹top向我們展示的內(nèi)容。
第一行:系統(tǒng)概況
top - 19:39:14 up 20 days, 7:48, 1 user, load average: 0.00, 0.01, 0.05
-
19:39:14 up 20 days:系統(tǒng)運行時間 -
1 user:用戶數(shù) -
load average: 0.00, 0.01, 0.05:1分鐘、5分鐘、15分鐘的平均負載
第二行:進程概況
Tasks: 69 total, 2 running, 67 sleeping, 0 stopped, 0 zombie
-
69 total:總進程數(shù) -
2 running:運行態(tài)進程數(shù) -
67 sleeping:睡眠態(tài)進程數(shù) -
0 stopped:停止態(tài)進程數(shù) -
0 zombie:僵尸態(tài)進程數(shù)
第三行:CPU概況
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
-
us:用戶進程CPU使用占比 -
sy:系統(tǒng)進程CPU使用占比 -
ni:用戶進程中改變了優(yōu)先級的進程CPU使用占比 -
id:空閑CPU占比 -
wa:等待IO的CPU時間占比 -
hi:硬中斷占用CPU百分比 -
si:軟終端占用CPU百分比
默認情況下顯示的是所有CPU的平均值,如果想看每個CPU具體值,則按下『1』即可:
%Cpu0 : 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu1 : 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu2 : 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.3 us, 0.3 sy, 0.0 ni, 99.0 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
第四五行:內(nèi)存概況
在Linux中,內(nèi)存一共分為兩塊:物理內(nèi)存 和 交換區(qū)。
物理內(nèi)存是真正的內(nèi)存,而內(nèi)存資源畢竟有限,因此當物理內(nèi)存不夠的時候,根據(jù)LRU置換算法,那些很長時間沒被使用的數(shù)據(jù)將會被存入交換區(qū)。交換區(qū)其實是硬盤,并非內(nèi)存。當交換區(qū)存在數(shù)據(jù)時說明物理內(nèi)存不夠了。
KiB Mem : 1883724 total, 300584 free, 646088 used, 937052 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 1062956 avail Mem
-
Mem 1883724 total:物理內(nèi)存的總量 -
Mem 300584 free:物理內(nèi)存的空閑量 -
Mem 646088 used:物理內(nèi)存使用量 -
Mem 937052 buff/cache:物理內(nèi)存內(nèi)核緩存使用量 -
Swap 0 total:交換區(qū)總量 -
Swap 0 free:交換區(qū)空閑量 -
Swap 0 used:交換區(qū)使用量 -
Swap 1062956 avail Mem:虛擬內(nèi)存總量
PS:buff/cache雖然占用物理內(nèi)存,但當內(nèi)存不夠時也可以直接使用,因此物理內(nèi)存的可使用空間為:free + buff/cache。
第六行:進程詳情
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1784 root 20 0 2072440 73204 8768 S 0.7 3.9 108:58.75 java
1182 root 20 0 46540 2624 1988 S 0.3 0.1 11:06.20 AliYunDunUpdate
-
PID:進程ID -
USER:進程所有者 -
RES:進程所占物理內(nèi)存大小(kb) -
SHR:進程所占共享內(nèi)存大?。╧b) -
VIRT:進程所占虛擬內(nèi)存大????? -
%CPU:CPU占用百分比 -
%MEM:物理內(nèi)存占用百分比 -
PR:進程優(yōu)先級 -
NI:nice值 -
TIME+:上次更新到現(xiàn)在進程使用的CPU時間總計 -
COMMAND:啟動該進程的命令
小技巧
1. 間隔刷新
進入top后按下d,即可設(shè)置間隔刷新時間,默認是3秒。
2. 添加進程監(jiān)控字段
進入top后按下f,即可添加/減少需要監(jiān)控的進程信息。
* PID = Process Id vMn = Minor Faults delta
* USER = Effective User Name USED = Res+Swap Size (KiB)
* PR = Priority nsIPC = IPC namespace Inode
* NI = Nice Value nsMNT = MNT namespace Inode
* VIRT = Virtual Image (KiB) nsNET = NET namespace Inode
* RES = Resident Size (KiB) nsPID = PID namespace Inode
* SHR = Shared Memory (KiB) nsUSER = USER namespace Inode
* S = Process Status nsUTS = UTS namespace Inode
* %CPU = CPU Usage
* %MEM = Memory Usage (RES)
* TIME+ = CPU Time, hundredths
* COMMAND = Command Name/Line
PPID = Parent Process pid
UID = Effective User Id
RUID = Real User Id
RUSER = Real User Name
SUID = Saved User Id
SUSER = Saved User Name
GID = Group Id
GROUP = Group Name
PGRP = Process Group Id
前面有*的說明已經(jīng)顯示了。
3. 保存設(shè)置
對top進行設(shè)置后,默認是不保存配置的,只有按了大寫的W后才會保存。
4. 監(jiān)控結(jié)果輸出到文件
top -d 1 -n 3 > top.log