top命令詳解 .

火星人 @ 2014-03-03 , reply:0
←手機掃碼閱讀

top命令詳解 .

top命令詳解 .




    Linux中常用top命令來查看系統當前的負載及load等情況,其實對於top命令而言裡面有非常豐富的內容,本文將對其中具體的欄位及含義做個介紹。
$ top
top命令顯示信息介紹
view plaincopyprint?
01.top - 16:44:36 up 113 days, 36 min,  1 user,  load average: 0.10, 0.04, 0.00  
02.Tasks: 111 total,   2 running, 108 sleeping,   1 stopped,   0 zombie  
03.Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st  
04.Mem:   5242880k total,  4403900k used,   838980k free,   285712k buffers  
05.Swap:  2097144k total,      112k used,  2097032k free,  3127936k cached  
06.  
07.  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                      
08.    1 root      15   0 10348  640  544 S  0.0  0.0   0:00.13 init                                                                                                                                          
09.    2 root      RT  -5     0    0    0 S  0.0  0.0   0:01.82 migration/0                                                                                                                                   
10.    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                                                                                                                   
11.    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0     
top - 16:44:36 up 113 days, 36 min,  1 user,  load average: 0.10, 0.04, 0.00
Tasks: 111 total,   2 running, 108 sleeping,   1 stopped,   0 zombie
Cpu(s):  0.0%us,  0.0%sy,  0.0%ni, 99.9%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   5242880k total,  4403900k used,   838980k free,   285712k buffers
Swap:  2097144k total,      112k used,  2097032k free,  3127936k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                                                    
    1 root      15   0 10348  640  544 S  0.0  0.0   0:00.13 init                                                                                                                                       
    2 root      RT  -5     0    0    0 S  0.0  0.0   0:01.82 migration/0                                                                                                                                 
    3 root      34  19     0    0    0 S  0.0  0.0   0:00.00 ksoftirqd/0                                                                                                                                 
    4 root      RT  -5     0    0    0 S  0.0  0.0   0:00.00 watchdog/0         

運行top命令后,會顯示如下的內容,具體各內容的含義如下:
【第一行】:      
16:44:36 ----表示當前系統的時間;
up 113 days, 36 min ----表示該機器已經啟動了多長時間;
1 user ----當前連接到該機器的有一個用戶;
load average: 0.10, 0.04, 0.00 ----分別對應1、5、15分鐘內cpu的平均負載;
關於該參數的詳細說明:該叄數是平常監控機器的運行狀況的一個主要指標,我們知道每個cpu都會維護一個"運行隊列",這裡存放待執行的進程,只要不是在等待IO或者主動的wait就是可運行的進程,就會出現在這個隊列里,如果這樣的進程越來越多,cpu就需要花很長的時間來處理這些進程。這樣cpu的負載其實就是指正在執行的進程以及處於運行隊列中的進程的總和,平均負載就是在某段時間負載的平均值。           


【第二行】----進程的運行情況
各個參數的具體含義分別是:總進程數,正在執行的進程數,休眠的進程數,停止運行的進程數,殭屍進程數。
Tasks: 111 total ----進程總數;
2 running ---- 正在運行的進程數;
108 sleeping ---- 睡眠的進程數;
1 stopped ---- 停止的進程數;
0 zombie ---- 殭屍進程數;


【第三行】----cpu的利用率
Cpu(s):  0.0%us ---- 用戶空間佔用CPU百分比;
0.0%sy ----  內核空間佔用CPU百分比;
0.0%ni ---- 用戶進程空間內改變過優先順序的進程佔用CPU百分比;
99.9%id ---- 空閑CPU百分比;
0.0%wa ---- 等待輸入輸出的CPU時間百分比;
0.0%hi,  0.0%si,  0.0%st ---- 不常用,不做介紹;


【第四行】----物理內存的使用情況
Mem:   5242880k total ---- 物理內存的總量;
   4403900k used ---- 已經使用的物理內存的總理;
   838980k free ---- 空閑內存總量;
   285712k buffers  ---- 用作內核緩存的內存量


【第五行】 ---- 交換區的使用情況
Swap:  2097144k total ---- 交換區的總量;
   112k used ---- 已經使用的交換區的量;
   2097032k free ---- 空閑交換區的量;
   3127936k cached ---- 緩衝的交換區總量。
內存中的內容被換出到交換區,而後又被換入到內存,但使用過的交換區尚未被覆蓋,該數據即為這些內容已經存在於內存中的交換區的大小。相應的內存再次被換出時不必再對交換區寫入。


【第六行】 ---- 空格


【第七行】 ---- 進程信息區
進行信息區的信息詳細的描述了各個進程目前的運行狀況:
序號 列名 含義
a PID----進程id
b PPID----父進程id
c RUSER----Real user name
d UID----進程所有者的用戶id
e USER----進程所有者的用戶名
f GROUP----進程所有者的組名
g TTY----啟動進程的終端名。不是從終端啟動的進程則顯示為 ?
h PR----優先順序
i NI----nice值。負值表示高優先順序,正值表示低優先順序
j P----最後使用的CPU,僅在多CPU環境下有意義
k %CPU----上次更新到現在的CPU時間佔用百分比
l TIME----進程使用的CPU時間總計,單位秒
m TIME+ ----進程使用的CPU時間總計,單位1/100秒
n %MEM ----進程使用的物理內存百分比
o VIRT ----進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
p SWAP ----進程使用的虛擬內存中,被換出的大小,單位kb。
q RES ----進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
r CODE ----可執行代碼佔用的物理內存大小,單位kb
s DATA ----可執行代碼以外的部分(數據段+棧)佔用的物理內存大小,單位kb
t SHR ----共享內存大小,單位kb
u nFLT ----頁面錯誤次數
v nDRT ----最後一次寫入到現在,被修改過的頁面數。
w S ----進程狀態。
D=不可中斷的睡眠狀態
R=運行
S=睡眠
T=跟蹤/停止
Z=殭屍進程
x COMMAND ----命令名/命令行
y WCHAN ----若該進程在睡眠,則顯示睡眠中的系統函數名

z Flags ----任務標誌
    默認情況下僅顯示的信息包括:  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND 。可以通過如下的快捷方式來更改顯示的內容:
•通過【f】鍵可選擇顯示的內容,按f後會顯示列的列表,按a-z即可顯示或隱藏對應的列,按回車確定。
•通過【o】鍵可改變列的顯示順序。按小寫的a-z可以將相應的列向右移動,按大寫的A-Z可以將相應的列向左移動,按回車確定。
•按【F】或【O】,按a-z可將進程按相應的列進行排序,按【R】可將當前的排序倒轉。   
命令的使用方法
top [-]
•d ---- 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變。
•p ---- 通過指定監控進程 ID來僅僅監控某個進程的狀態;
•s ---- 使top命令在安全模式下運行,這將免出人意料交互命令所帶來的潛在風險;
•S ----指定累積模式;
•i  ---- 使top不顯示任何閑置或僵死的進程;
•c ---- 顯示整個命令行而不僅僅是顯示命令名。
top的一些交互命令
•h或者? ---- 顯示幫助畫面,給出一些簡短的命令總結說明。
•k ---- 終止一個進程,系統提示輸入一個PID及需要發送給該進程的信號。一般終止進程用15信號,如果不能正常結束就使用9信號。 在安全模式下該命令被屏蔽。
•i ---- 忽略閑置和僵死的進程,這是一個開關式命令;
•q ---- 退出程序;
•r ---- 重新安排一個進程的優先順序別。系統提示用戶輸入需要改變的進程PID及需要設置的進程優先順序的值。輸入一個正值使優先順序降低,反之則使進程擁有高優先順序,默認是10;
•S ---- 切換到累積模式;
•s ---- 改變兩次刷新之間的延遲時間,系統提示用戶輸入新的時間,單位為s。輸入0則系統不斷刷新,默認值是5。
•n ---- 顯示的進程數,系統會提示輸入需要顯示的進程數目;
•f 或F ---- 從當前顯示項目中添加或刪除項目;
•o或O ---- 改變當前顯示項目的順序;
•l ---- 切換顯示平均負載和啟動時間的信息;
•m ---- 切換顯示內存信息;
•t ---- 切換顯示進程和CPU狀態信息;
•c ---- 切換命令名稱和完整命令行;
•M ---- 根據駐留內存大小進行排序;
•P ---- 根據CPU使用百分比大小進行排序;
•T ---- 根據時間/累積時間進行排序。
《解決方案》

謝謝分享
《解決方案》

普及~~~
《解決方案》

這命令我好久沒用了,幾乎忘了,感謝分享..
《解決方案》

PR 下面的 RT是什麼意思?
《解決方案》

寫得不錯。比較詳細!:victory:
《解決方案》

:victory:
《解決方案》

學習了
《解決方案》

看似簡單的東西 其實有很多學問




[火星人 via ] top命令詳解 .已經有330次圍觀

http://www.coctec.com/docs/service/show-post-611.html