linux top 命令詳細介紹(示例、參數、快捷鍵)

火星人 @ 2014-03-08 , reply:0


在linux下top是一個最基礎的命令,它可以將當前系統的運行狀況最直觀地告訴使用者.Top命令的輸出的信息很豐富,功能很強大,本篇我就詳細介紹一下它.

首先看一個top輸出的例子:


第一行給出當前伺服器時間,啟動時間,當前登錄用戶,以及系統負載情況.需要注意的是linux的系統負載是以1分鐘、3分鐘和15分鐘內的平均值來衡量的.

第二行列出系統進程情況,總共97個進程,1個進程處於運行狀態,96個空閑,0個停止,另外有0個殭屍進程.殭屍進程指的是子進程退出後父進程並沒有處理子進程的退出信號,導致子進程變為殭屍進程.

第三行給出當前CPU的工作情況,%us(user)指的是cpu用在用戶態程序上的時間;%sy(sys)指的是cpu用在內核態程序上的時間;%ni(nice)指的是用在nice優先順序調整過的用戶態程序上的時間;%id(idle)指的是cpu空閑時間;%wa(iowait)指的是 cpu等待系統io的時間;%hi指的是cpu處理硬體中斷的時間;%si指的是cpu處理軟中斷的時間;%st(steal)用於有虛擬cpu的情況,用來指示被虛擬機偷掉的cpu時間.通常idle值可以反映一個系統cpu的閑忙程度.

第四行和第五行給出真實內存的使用情況,包括內存總量,使用量,空閑量,以及交換分區的總量,使用量和空閑量.此外關於buffers和 cached的區別需要說明一下,buffers指的是塊設備的讀寫緩衝區,cached指的是文件系統本身的頁面緩存.它們都是linux操作系統底層的機制,目的就是為了加速對磁碟的訪問.

第六行往後是進程列表,常見的這幾列的意義分別為:PID(進程號), USER(運行用戶),PR(優先順序),NI(任務nice值),VIRT(虛擬內存用量),RES(物理內存用量),SHR(共享內存用量),S(進程狀態),%CPU(CPU佔用比),%MEM(內存佔用比),TIME (累計CPU佔用時間).



除了這些信息之外,top還提供了很多命令能幫我更好的解讀這些信息,例如按”M”鍵可以按內存用量進行排序;按”P”可以按CPU使用量進行排序,這樣一來對於分析系統瓶頸很有幫助;此外,按“f”可以進入交互頁面,選擇指定的列顯示,例如可以按“b”選擇顯示PPID,再按一次“b”即可取消顯示.”r”可以改變一個進程的nice值;”k”可以向一個進程發信號;”z”可以使用彩色顯示. 本人 Linux 是個菜鳥 但對於一些簡單的命令還是知道些

對於top 命令的參數只是一知半解,今天看到 蟲少俠的一篇關於linux 的top 文章感覺不錯 很是詳細

轉載過來,坐下備忘:
示例

root@ubuntu910:~# top
top – 01:06:48 up 1:22, 1 user, load average: 0.06, 0.60, 0.48
Tasks: 29 total, 1 running, 28 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.3% us, 1.0% sy, 0.0% ni, 98.7% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 191272k total, 173656k used, 17616k free, 22052k buffers
Swap: 192772k total, 0k used, 192772k free, 123988k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND
1379 root 16 0 7976 2456 1980 S 0.7 1.3 0:11.03 sshd
14704 root 16 0 2128 980 796 R 0.7 0.5 0:02.72 top
1 root 16 0 1992 632 544 S 0.0 0.3 0:00.90 init
2 root 34 19 0 0 0 S 0.0 0.0 0:00.00 ksoftirqd/0
3 root RT 0 0 0 0 S 0.0 0.0 0:00.00 watchdog/0
統計信息區

前五行是系統整體的
統計信息.第一行是任務隊列信息,同 uptime 命令的執行結果.其內容如下:

01:06:48 當前時間
up 1:22 系統運行時間,格式為時:分
1 user 當前登錄用戶數
load average: 0.06, 0.60, 0.48 系統負載,即任務隊列的平均長度.


三個數值分別為 1分鐘、5分鐘、15分鐘前到現在的平均值.

第二、三行為進程和CPU的信息.
當有多個CPU時,這些內容可能會超過兩行.內容如下:

Tasks: 29 total 進程總數
1 running 正在運行的進程數
28 sleeping 睡眠的進程數
0 stopped 停止的進程數
0 zombie 殭屍進程數
Cpu(s): 0.3% us 用戶空間佔用CPU百分比
1.0% sy 內核空間佔用CPU百分比
0.0% ni 用戶進程空間內改變過優先順序的進程佔用CPU百分比
98.7% id 空閑CPU百分比
0.0% wa 等待輸入輸出的CPU時間百分比
0.0% hi
0.0% si

兩行為內存信息.
內容如下:

Mem: 191272k total 物理內存總量
173656k used 使用的物理內存總量
17616k free 空閑內存總量
22052k buffers 用作內核緩存的內存量
Swap: 192772k total 交換區總量
0k used 使用的交換區總量
192772k free 空閑交換區總量
123988k 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 任務標誌,參考 sched.h

默認情況下僅顯示比較重要的 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 鍵可以將當前的排序倒轉.


命令使用
1. 工具(命令)名稱

top
2.工具(命令)作用

顯示系統當前的進程和其他狀況; top是一個動態顯示過程,即可以通過用戶按鍵來不斷刷新當前狀態.如果在前台執行該命令,它將獨佔前台,直到用戶終止該程序為止. 比較準確的說,top命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表.該命令可以按CPU使用.內存使用和執行時間對任務進行排序;該命令的很多特性都可以通過互動式命令或者在個人定製文件中進行設定.
3.環境設置

在Linux下使用.
4.使用方法
4.1 使用格式

top [-] [d] [p] [q] [c] [C] [S] [s] [n]
4.2 參數說明

d 指定每兩次屏幕信息刷新之間的時間間隔.當然用戶可以使用s交互命令來改變之.
p 通過指定監控進程ID來僅僅監控某個進程的狀態.
q該選項將使top沒有任何延遲的進行刷新.如果調用程序有超級用戶許可權,那麼top將以儘可能高的優先順序運行.
S 指定累計模式
s 使top命令在安全模式中運行.這將去除交互命令所帶來的潛在危險.
i 使top不顯示任何閑置或者僵死進程.
c 顯示整個命令行而不只是顯示命令名
4.3 其他

下面介紹在top命令執行過程中可以使用的一些交互命令.從使用角度來看,熟練的掌握這些命令比掌握選項還重要一些.這些命令都是單字母的,如果在命令行選項中使用了s選項,則可能其中一些命令會被屏蔽掉.
Ctrl L 擦除並且重寫屏幕.
h或者? 顯示幫助畫面,給出一些簡短的命令總結說明.
k 終止一個進程.系統將提示用戶輸入需要終止的進程PID,以及需要發送給該進程什麼樣的信號.一般的終止進程可以使用15信號;如果不能正常結束那就使用信號9強制結束該進程.默認值是信號15.在安全模式中此命令被屏蔽.


i 忽略閑置和僵死進程.這是一個開關式命令.
q 退出程序.
r 重新安排一個進程的優先順序別.系統提示用戶輸入需要改變的進程PID以及需要設置的進程優先順序值.輸入一個正值將使優先順序降低,反之則可以使該進程擁有更高的優先權.默認值是10.
S 切換到累計模式.
s 改變兩次刷新之間的延遲時間.系統將提示用戶輸入新的時間,單位為s.如果有小數,就換算成m s.輸入0值則系統將不斷刷新,默認值是5 s.需要注意的是如果設置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,系統負載也會大大增加.
f或者F 從當前顯示中添加或者刪除項目.
o或者O 改變顯示項目的順序.
l 切換顯示平均負載和啟動時間信息.
m 切換顯示內存信息.
t 切換顯示進程和CPU狀態信息.
c 切換顯示命令名稱和完整命令行.
M 根據駐留內存大小進行排序.
P 根據CPU使用百分比大小進行

排序.
T 根據時間/累計時間進行排序.
W 將當前設置寫入~/.toprc文件中.這是寫top配置文件的推薦方法.





[火星人 via ] linux top 命令詳細介紹(示例、參數、快捷鍵)已經有229次圍觀

http://www.coctec.com/docs/linux/show-post-46591.html