1. 程式人生 > >【linux】top命令詳解

【linux】top命令詳解

1、引數詳解
$ top -help
  procps-ng version 3.3.9
Usage:
  top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]

-b:列印所有程式
-c:以命令列的形式顯示程式名
-d:設定重新整理間隔時間
-h:顯示幫助
-H:執行緒切換
-i:不顯示空閒程序
-n:設定重新整理幀數,重新整理n幀後退出
-p:指定程序號PID,可以指定多個,最多20個,-pN1 -pN2 …或-pN1,N2 [,…]
-s:安全模式,不能使用互動命令
-u:監控使用者,匹配有效ID或使用者名稱,如監控root使用者,top -uroot;
-U:監控使用者,匹配真實、有效、儲存、檔案所屬ID或使用者名稱
-v:列印版本號

2、互動命令

常用命令說明:
Enter:按回車會重新整理螢幕;
h:顯示互動命令幫助資訊

互動式命令的幫助
Help for Interactive Commands - procps-ng version 3.3.9
視窗1:Def:累計模式關閉。系統:延遲3.0秒;安全模式。
Window 1:Def: Cumulative mode Off.  System: Delay 3.0 secs; Secure mode Off.

  Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scale
  l,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info
  0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix mode
  f,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-width

  L,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/right
  R,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justify
  c,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justify
  x,y     . Toggle highlights: 'x' sort field; 'y' running tasks
  z,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')
  u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criteria
  n,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)
  C,...   . Toggle scroll coordinates msg for: up,down,left,right,home,end

  k,r       Manipulate tasks: 'k' kill; 'r' renice
  d or s    Set update interval
  W,Y       Write configuration file 'W'; Inspect other output 'Y'
  q         Quit
          ( commands shown with '.' require a visible task display window ) 
Press 'h' or '?' for help with Windows,
Type 'q' or <Esc> to continue 

Z:設定顏色,進入設定顏色視窗後,a和w用來切換顏色設定,Enter提出

Help for color mapping - procps-ng version 3.3.9
current window: 1:Def

   color - 04:25:44 up 8 days, 50 min,  7 users,  load average:
   Tasks:  64 total,   2 running,  62 sleeping,   0 stopped,
   %Cpu(s):  76.5 user,  11.2 system,   0.0 nice,  12.3 idle
    Nasty Message!   -or-  Input Prompt
     PID TTY     PR  NI %CPU    TIME+   VIRT SWAP S COMMAND    
   17284 pts/2    8   0  0.0   0:00.75  1380    0 S /bin/bash   
    8601 pts/1    7 -10  0.4   0:00.03   916    0 R color -b -z
   11005 ?        9   0  0.0   0:02.50  2852 1008 S amor -sessi
   available toggles: B =disable bold globally (Off),
       z =color/mono (On), b =tasks "bold"/reverse (On)

1) Select a target as an upper case letter, current target is  T :
   S = Summary Data,  M = Messages/Prompts,
   H = Column Heads,  T = Task Information
2) Select a color as a number, current color is  1 :
   0 = black,  1 = red,      2 = green,  3 = yellow,
   4 = blue,   5 = magenta,  6 = cyan,   7 = white

3) Then use these keys when finished:
   'q' to abort changes to window '1:Def'
   'a' or 'w' to commit & change another, <Enter> to commit and end

E、e:分別切換摘要和任務列表中記憶體的的單位(KiB、MiB、GiB、TiB、PiB、EiB);
l:顯示或隱藏摘要中的平均負載;
t:顯示或隱藏摘要中的cpu統計資料
m:顯示或隱藏摘要中的記憶體統計資料
F、f:視窗欄位管理,上下鍵移動、方向鍵中右鍵選中後可以移動該欄位(左鍵撤銷)、空格或d選擇是否顯示

Fields Management for window 1:Def, whose current sort field is %CPU
  Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
  'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!

* PID     = Process Id             DATA    = Data+Stack (KiB)    
* USER    = Effective User Name    nMaj    = Major Page Faults   
* PR      = Priority               nMin    = Minor Page Faults   
* NI      = Nice Value             nDRT    = Dirty Pages Count   
* VIRT    = Virtual Image (KiB)    WCHAN   = Sleeping in Function
* RES     = Resident Size (KiB)    Flags   = Task Flags <sched.h>
* SHR     = Shared Memory (KiB)    CGROUPS = Control Groups      
* S       = Process Status         SUPGIDS = Supp Groups IDs     
* %CPU    = CPU Usage              SUPGRPS = Supp Groups Names   
* %MEM    = Memory Usage (RES)     TGID    = Thread Group Id     
* TIME+   = CPU Time, hundredths   ENVIRON = Environment vars    
* COMMAND = Command Name/Line      vMj     = Major Faults delta  
 PPID    = Parent Process pid     vMn     = Minor Faults delta  
 UID     = Effective User Id      USED    = Res+Swap Size (KiB) 
 RUID    = Real User Id           nsIPC   = IPC namespace Inode 
 RUSER   = Real User Name         nsMNT   = MNT namespace Inode 
 SUID    = Saved User Id          nsNET   = NET namespace Inode 
 SUSER   = Saved User Name        nsPID   = PID namespace Inode 
 GID     = Group Id               nsUSER  = USER namespace Inode
 GROUP   = Group Name             nsUTS   = UTS namespace Inode 
 PGRP    = Process Group Id    
 TTY     = Controlling Tty     
 TPGID   = Tty Process Grp Id  
 SID     = Session Id          
 nTH     = Number of Threads   
 P       = Last Used Cpu (SMP) 
 TIME    = CPU Time            
 SWAP    = Swapped Size (KiB)  
 CODE    = Code Size (KiB)     

X:設定任務列表之間的寬度
L:搜尋欄位;
&:搜尋下一個欄位;
<、>:顯示上一頁、下一頁
R:升序或降序顯示任務列表;
H:程序和執行緒切換;
V:樹形顯示,(顯示內容沒看懂)
J:欄位左對齊或右對齊切換;
c:程式名和命令列格式切換;
i:空閒程式顯示或隱藏的切換;
x:高亮顯示排序欄位;
y:高亮顯示正在執行的任務;
Toggle: ‘z’ color/mono; ‘b’ bold/reverse (only if ‘x’ or ‘y’)
z:彩色顯示或單色顯示的切換;
b:當設定了x或y,即高亮顯示時,再加上b,就會將高亮的帶背景色;
u、U:過濾有效或任何使用者;
n、#:設定最多顯示的任務數,0表示不限制;
C:顯示座標;
k:殺死指定PID的程序;
r:調整優先順序;
d、s:設定間隔時間;
W:寫入配置檔案;
Y:寫入配置檔案,並重新載入
q:退出

3、顯示資訊詳解
top - 15:00:44 up 6 min,  3 users,  load average: 0.21, 0.48, 0.30
Tasks: 194 total,   1 running, 193 sleeping,   0 stopped,   0 zombie
%Cpu(s): 12.8 us,  5.1 sy,  0.0 ni, 82.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   4046976 total,  1182232 used,  2864744 free,    59872 buffers
KiB Swap:  4191228 total,        0 used,  4191228 free.   462400 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                     
 2308 zet       20   0 1271772 186756  67412 S  7.6  4.6   0:29.29 compiz                                                                      
 1300 root      20   0  373560 108052  31176 S  4.3  2.7   0:08.53 Xorg                                                                        
 2738 zet       20   0  599960  34704  26408 S  4.3  0.9   0:01.74 gnome-terminal                                                              
 1937 zet       20   0  121840   3208   2836 S  0.7  0.1   0:00.96 VBoxClient                                                                  
   97 root      20   0       0      0      0 S  0.3  0.0   0:00.16 kworker/u2:4                                                                
 1960 zet       20   0   40196   3512   2164 S  0.3  0.1   0:00.67 dbus-daemon                                                                 
 2835 zet       20   0   30604   3448   2912 R  0.3  0.1   0:00.05 top                                                                         
    1 root      20   0   33792   4312   2684 S  0.0  0.1   0:01.78 init      

第一行:top - 15:00:44 up 6 min, 3 users, load average: 0.21, 0.48, 0.30
15:00:44 — 當前系統時間
up 6 min — 系統執行時間(在這期間沒有重啟過)
3 users — 當前有3個使用者登入系統, load average: 0.21, 0.48, 0.30
load average: 0.21, 0.48, 0.30 — load average後面的三個數分別是5分鐘、10分鐘、15分鐘的負載情況。
load average資料是每隔5秒鐘檢查一次活躍的程序數,然後按特定演算法計算出的數值。如果這個數除以邏輯CPU的數量,結果高於5的時候就表明系統在超負荷運轉了。

第二行:Tasks: 194 total, 1 running, 193 sleeping, 0 stopped, 0 zombie
Tasks — 任務(程序),系統現在共有194 個程序,其中處於執行中的有1個,193 個在休眠(sleep),stoped狀態的有0個,zombie狀態(殭屍)的有0個。

第三行:%Cpu(s): 12.8 us, 5.1 sy, 0.0 ni, 82.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

12.8 us — 使用者空間佔用CPU的百分比。
5.1 sy — 核心空間佔用CPU的百分比。
0.0 ni — 改變過優先順序的程序佔用CPU的百分比
82.2 id id — 空閒CPU百分比
0.0 wa — IO等待佔用CPU的百分比
0.0 hi — 硬中斷(Hardware IRQ)佔用CPU的百分比
0.0 si — 軟中斷(Software Interrupts)佔用CPU的百分比
0.0 st —超級管理程序佔用CPU的百分比

第四行:KiB Mem: 4046976 total, 1182232 used, 2864744 free, 59872 buffers
記憶體使用情況:
4046976 total — 實體記憶體總量
1182232 used — 使用中的記憶體總量
2864744 free — 空閒記憶體總量
59872 buffers — 快取的記憶體量

第五行:KiB Swap: 4191228 total, 0 used, 4191228 free. 462400 cached Mem
交換分割槽:
4191228 total — 交換區總量
0 used — 使用的交換區總量
4191228 free — 空閒交換區總量
462400 cached — 緩衝的交換區總量

第六行:PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
各個程序的監控情況:
PID— 程序ID
USER— 程序所有者的實際使用者名稱。
PR— 程序的排程優先順序。這個欄位的一些值是’rt’。這意味這這些程序執行在實時態。
NI— 程序的nice值(優先順序)。越小的值意味著越高的優先順序。負值表示高優先順序,正值表示低優先順序
VIRT— 程序使用的虛擬記憶體。程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES
RES— 駐留記憶體大小。駐留記憶體是任務使用的非交換實體記憶體大小。程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA
SHR— SHR是程序使用的共享記憶體。共享記憶體大小,單位kb
S— 這個是程序的狀態。它有以下不同的值:

D - 不可中斷的睡眠態。
R – 執行態
S – 睡眠態
T – 被跟蹤或已停止
Z – 殭屍態

%CPU— 自從上一次更新時到現在任務所使用的CPU時間百分比。
%MEM— 程序使用的可用實體記憶體百分比。
TIME+— 任務啟動後到現在所使用的全部CPU時間,精確到百分之一秒。
COMMAND— 執行程序所使用的命令。程序名稱(命令名/命令列)