【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— 執行程序所使用的命令。程序名稱(命令名/命令列)