USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.1 0.1 2032 644 ? Ss 21:55 0:01 init [3]
root 2 0.0 0.0 0 0 ? S 21:55 0:00 [migration/0]
root 3 0.0 0.0 0 0 ? SN 21:55 0:00 [ksoftirqd/0]
Tasks: 72 total, 1 running, 71 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 373320k total, 88600k used, 284720k free, 9956k buffers
Swap: 514072k total, 0k used, 514072k free, 45092k cached
3217 root 15 0 2160 976 788 R 1 0.3 0:00.07 top
1 root 15 0 2032 644 552 S 0 0.2 0:01.55 init
2 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/0
3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0
4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0
5 root RT 0 0 0 0 S 0 0.0 0:00.02 migration/1
6 root 39 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/1
7 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/1
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:運行進程所使用的命令。進程名稱(命令名/命令行)
l – 關閉或開啟第一部分第一行 top 信息的表示
t – 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的順序排列表示進程列表
P – 以 CPU 占用率大小的順序排列進程列表
M – 以內存占用率大小的順序排列進程列表
h – 顯示幫助
n – 設置在進程列表所顯示進程的數量
q – 退出 top
s – 改變畫面更新周期
-
第一點
-ef
是System V展示風格,而aux
是BSD風格。
字段含義:
USER:用戶名稱
PID:進程號
%CPU:進程占用CPU的百分比
%MEM:進程占用物理內存的百分比
VSZ:進程占用的虛擬內存大小(單位:KB)
RSS:進程占用的物理內存大小(單位:KB)
TT:終端名稱(縮寫),若為?,則代表此進程與終端無關,因為它們是由系統啟動的
STAT:進程狀態,其中S-睡眠,s-表示該進程是會話的先導進程,N-表示進程擁有比普通優先級更低的優先級,R-正在運行,D-短期等待,Z-僵死進程,T-被跟蹤或者被停止等等
STARTED:進程的啟動時間
TIME:CPU時間,即進程使用CPU的總時間
COMMAND:啟動進程所用的命令和參數,如果過長會被截斷顯示 -
字段含義:
UID:用戶ID
PID:進程ID
PPID:父進程ID
C:CPU用於計算執行優先級的因子。數值越大,表明進程是CPU密集型運算,執行優先級會降低;數值越小,表明進程是I/O密集型運算,執行優先級會提高
STIME:進程啟動的時間
TTY:完整的終端名稱
TIME:CPU時間
CMD:完整的啟動進程所用的命令和參數 -
第二點
COMMADN列如果過長,aux
會截斷顯示,而ef
不會
綜上:
如果想查看進程的CPU占用率和內存占用率,可以使用aux
如果想查看進程的父進程ID和完整的COMMAND命令,可以使用ef