首先介紹top中一些字段的含義:
公司主營(yíng)業(yè)務(wù):成都做網(wǎng)站、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)建站推出廉江免費(fèi)做網(wǎng)站回饋大家。 VIRT:virtual memory usage 虛擬內(nèi)存
1、進(jìn)程“需要的”虛擬內(nèi)存大小,包括進(jìn)程使用的庫(kù)、代碼、數(shù)據(jù)等
2、假如進(jìn)程申請(qǐng)100m的內(nèi)存,但實(shí)際只使用了10m,那么它會(huì)增長(zhǎng)100m,而不是實(shí)際的使用量
RES:resident memory usage 常駐內(nèi)存
1、進(jìn)程當(dāng)前使用的內(nèi)存大小,但不包括swap out
2、包含其他進(jìn)程的共享
3、如果申請(qǐng)100m的內(nèi)存,實(shí)際使用10m,它只增長(zhǎng)10m,與VIRT相反
4、關(guān)于庫(kù)占用內(nèi)存的情況,它只統(tǒng)計(jì)加載的庫(kù)文件所占內(nèi)存大小
SHR:shared memory 共享內(nèi)存
1、除了自身進(jìn)程的共享內(nèi)存,也包括其他進(jìn)程的共享內(nèi)存
2、雖然進(jìn)程只使用了幾個(gè)共享庫(kù)的函數(shù),但它包含了整個(gè)共享庫(kù)的大小
3、計(jì)算某個(gè)進(jìn)程所占的物理內(nèi)存大小公式:RES – SHR
4、swap out后,它將會(huì)降下來(lái)
DATA
1、數(shù)據(jù)占用的內(nèi)存。如果top沒(méi)有顯示,按f鍵可以顯示出來(lái)。
2、真正的該程序要求的數(shù)據(jù)空間,是真正在運(yùn)行中要使用的。
top 運(yùn)行中可以通過(guò) top 的內(nèi)部命令對(duì)進(jìn)程的顯示方式進(jìn)行控制。內(nèi)部命令如下:
s – 改變畫(huà)面更新頻率
l – 關(guān)閉或開(kāi)啟第一部分第一行 top 信息的表示
t – 關(guān)閉或開(kāi)啟第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 關(guān)閉或開(kāi)啟第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的順序排列表示進(jìn)程列表
P – 以 CPU 占用率大小的順序排列進(jìn)程列表
M – 以內(nèi)存占用率大小的順序排列進(jìn)程列表
h – 顯示幫助
n – 設(shè)置在進(jìn)程列表所顯示進(jìn)程的數(shù)量
q – 退出 top
s – 改變畫(huà)面更新周期
序號(hào) 列名 含義
a PID 進(jìn)程id
b PPID 父進(jìn)程id
c RUSER Real user name
d UID 進(jìn)程所有者的用戶id
e USER 進(jìn)程所有者的用戶名
f GROUP 進(jìn)程所有者的組名
g TTY 啟動(dòng)進(jìn)程的終端名。不是從終端啟動(dòng)的進(jìn)程則顯示為 ?
h PR 優(yōu)先級(jí)
i NI nice值。負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)
j P 最后使用的CPU,僅在多CPU環(huán)境下有意義
k %CPU 上次更新到現(xiàn)在的CPU時(shí)間占用百分比
l TIME 進(jìn)程使用的CPU時(shí)間總計(jì),單位秒
m TIME+ 進(jìn)程使用的CPU時(shí)間總計(jì),單位1/100秒
n %MEM 進(jìn)程使用的物理內(nèi)存百分比
o VIRT 進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
p SWAP 進(jìn)程使用的虛擬內(nèi)存中,被換出的大小,單位kb。
q RES 進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
r CODE 可執(zhí)行代碼占用的物理內(nèi)存大小,單位kb
s DATA 可執(zhí)行代碼以外的部分(數(shù)據(jù)段+棧)占用的物理內(nèi)存大小,單位kb
t SHR 共享內(nèi)存大小,單位kb
u nFLT 頁(yè)面錯(cuò)誤次數(shù)
v nDRT 最后一次寫(xiě)入到現(xiàn)在,被修改過(guò)的頁(yè)面數(shù)。
w S 進(jìn)程狀態(tài)。(D=不可中斷的睡眠狀態(tài),R=運(yùn)行,S=睡眠,T=跟蹤/停止,Z=僵尸進(jìn)程)
x COMMAND 命令名/命令行
y WCHAN 若該進(jìn)程在睡眠,則顯示睡眠中的系統(tǒng)函數(shù)名
z Flags 任務(wù)標(biāo)志,參考 sched.h
默認(rèn)情況下僅顯示比較重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列??梢酝ㄟ^(guò)下面的快捷鍵來(lái)更改顯示內(nèi)容。
通過(guò) f 鍵可以選擇顯示的內(nèi)容。按 f 鍵之后會(huì)顯示列的列表,按 a-z 即可顯示或隱藏對(duì)應(yīng)的列,最后按回車(chē)鍵確定。
按 o 鍵可以改變列的顯示順序。按小寫(xiě)的 a-z 可以將相應(yīng)的列向右移動(dòng),而大寫(xiě)的 A-Z 可以將相應(yīng)的列向左移動(dòng)。最后按回車(chē)鍵確定。
按大寫(xiě)的 F 或 O 鍵,然后按 a-z 可以將進(jìn)程按照相應(yīng)的列進(jìn)行排序。而大寫(xiě)的 R 鍵可以將當(dāng)前的排序倒轉(zhuǎn)。
top使用方法:
使用格式:
top [-] [d] [p] [q] [c] [C] [S] [s] [n]
參數(shù)說(shuō)明:
d:指定每?jī)纱纹聊恍畔⑺⑿轮g的時(shí)間間隔。當(dāng)然用戶可以使用s交互命令來(lái)改變之。
p:通過(guò)指定監(jiān)控進(jìn)程ID來(lái)僅僅監(jiān)控某個(gè)進(jìn)程的狀態(tài)。
q:該選項(xiàng)將使top沒(méi)有任何延遲的進(jìn)行刷新。如果調(diào)用程序有超級(jí)用戶權(quán)限,那么top將以盡可能高的優(yōu)先級(jí)運(yùn)行。
S:指定累計(jì)模式。
s:使top命令在安全模式中運(yùn)行。這將去除交互命令所帶來(lái)的潛在危險(xiǎn)。
i: 使top不顯示任何閑置或者僵死進(jìn)程。
c: 顯示整個(gè)命令行而不只是顯示命令名。
常用命令說(shuō)明:
Ctrl+L:擦除并且重寫(xiě)屏幕
K:終止一個(gè)進(jìn)程。系統(tǒng)將提示用戶輸入需要終止的進(jìn)程PID,以及需要發(fā)送給該進(jìn)程什么樣的信號(hào)。一般的終止進(jìn)程可以使用15信號(hào);如果不能正常結(jié)束那就使用信號(hào)9強(qiáng)制結(jié)束該進(jìn)程。默認(rèn)值是信號(hào)15。在安全模式中此命令被屏蔽。
i:忽略閑置和僵死進(jìn)程。這是一個(gè)開(kāi)關(guān)式命令。
q:退出程序
r:重新安排一個(gè)進(jìn)程的優(yōu)先級(jí)別。系統(tǒng)提示用戶輸入需要改變的進(jìn)程PID以及需要設(shè)置的進(jìn)程優(yōu)先級(jí)值。輸入一個(gè)正值將使優(yōu)先級(jí)降低,反之則可以使該進(jìn)程擁有更高的優(yōu)先權(quán)。默認(rèn)值是10。
S:切換到累計(jì)模式。
s:改變兩次刷新之間的延遲時(shí)間。系統(tǒng)將提示用戶輸入新的時(shí)間,單位為s。如果有小數(shù),就換算成m s。輸入0值則系統(tǒng)將不斷刷新,默認(rèn)值是5 s。需要注意的是如果設(shè)置太小的時(shí)間,很可能會(huì)引起不斷刷新,從而根本來(lái)不及看清顯示的情況,而且系統(tǒng)負(fù)載也會(huì)大大增加。
f或者F:從當(dāng)前顯示中添加或者刪除項(xiàng)目。
o或者O:改變顯示項(xiàng)目的順序
l:切換顯示平均負(fù)載和啟動(dòng)時(shí)間信息。
m:切換顯示內(nèi)存信息。
t:切換顯示進(jìn)程和CPU狀態(tài)信息。
c:切換顯示命令名稱和完整命令行。
M:根據(jù)駐留內(nèi)存大小進(jìn)行排序。
P:根據(jù)CPU使用百分比大小進(jìn)行排序。
T:根據(jù)時(shí)間/累計(jì)時(shí)間進(jìn)行排序。
W:將當(dāng)前設(shè)置寫(xiě)入~/.toprc文件中。
提升你top命令的知識(shí)
嘗試找出你的機(jī)器正在運(yùn)行什么程序,以及哪個(gè)進(jìn)程耗盡了內(nèi)存導(dǎo)致系統(tǒng)非常非常慢 —— 這是 top 命令所能勝任的工作。
top 是一個(gè)非常有用的程序,其作用類(lèi)似于 Windows 任務(wù)管理器或 MacOS 的活動(dòng)監(jiān)視器。在 *nix 機(jī)器上運(yùn)行 top 將實(shí)時(shí)顯示系統(tǒng)上運(yùn)行的進(jìn)程的情況。
$ top
取決于你運(yùn)行的 top 版本,你會(huì)看到類(lèi)似如下內(nèi)容:
top - 08:31:32 up 1 day, 4:09, 0 users, load average: 0.20, 0.12, 0.10 Tasks: 3 total, 1 running, 2 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.5 us, 0.3 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 4042284 total, 2523744 used, 1518540 free, 263776 buffers KiB Swap: 1048572 total, 0 used, 1048572 free. 1804264 cached Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 21964 3632 3124 S 0.0 0.1 0:00.23 bash 193 root 20 0 123520 29636 8640 S 0.0 0.7 0:00.58 flask 195 root 20 0 23608 2724 2400 R 0.0 0.1 0:00.21 top