Linux中ps與top命令
============================================================================
這兩個命令都是查看系統進程信息的命令,可是用處有點兒不一樣
1.ps命令--提供系統過去信息的一次性快照
也就是說ps命令可以查看剛剛系統的進程信息 命令:ps aux或者ps lax
[root@Linux ~]# ps aux
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]
......
解釋以下:
VSZ--進程的虛擬大小
RSS--駐留集的大小,能夠理解爲內存中頁的數量
TTY--控制終端的ID
STAT--也就是當前進程的狀態,其中S-睡眠,s-表示該進程是會話的先導進程,N-表示進程擁有比普通優先級更低的優先級,R-正在運行,D-短時間等待,Z-僵死進程,T-被跟蹤或者被中止等等
START--這個很簡單,就是該進程啓動的時間
TIME--進程已經消耗的CPU時間,注意是消耗CPU的時間
COMMOND--命令的名稱和參數
而]#ps lax 能夠看到父進程,謙讓值以及該進程正在等待的資源等待
2.top命令- top命令反應的是系統進程動態信息,默認10s更新一次
[root@Linux ~]#top
top - 22:30:58 up 35 min, 1 user, load average: 0.12, 0.07, 0.08
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
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
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:進程全部者的實際用戶名。code
PR:進程的調度優先級。這個字段的一些值是'rt'。這意味這這些進程運行在實時態。進程
NI:進程的nice值(優先級)。越小的值意味着越高的優先級。負值表示高優先級,正值表示低優先級內存
VIRT:進程使用的虛擬內存。進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES資源
RES:駐留內存大小。駐留內存是任務使用的非交換物理內存大小。進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATAit
SHR:SHR是進程使用的共享內存。共享內存大小,單位kbio
S:這個是進程的狀態。它有如下不一樣的值:sed
- D - 不可中斷的睡眠態。
- R – 運行態
- S – 睡眠態
- T – 被跟蹤或已中止
- Z – 殭屍態
%CPU:自從上一次更新時到如今任務所使用的CPU時間百分比。終端
%MEM:進程使用的可用物理內存百分比。top
TIME+:任務啓動後到如今所使用的所有CPU時間,精確到百分之一秒。
COMMAND:運行進程所使用的命令。進程名稱(命令名/命令行)
以上就是top命令的部分輸出,能夠看到該命令顯示了較爲詳細的信息
頂部始終顯示的是系統當前最活躍的進程,此時還能夠接受用戶的鍵盤輸入向進程發送信號等待
TOP 功能鍵:
s – 改變畫面更新頻率
l – 關閉或開啓第一部分第一行 top 信息的表示
t – 關閉或開啓第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 關閉或開啓第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的順序排列表示進程列表
P – 以 CPU 佔用率大小的順序排列進程列表
M – 之內存佔用率大小的順序排列進程列表
h – 顯示幫助
n – 設置在進程列表所顯示進程的數量
q – 退出 top
s – 改變畫面更新週期
3.ps和top都是從/proc目錄下讀取進程的狀態信息,內核把當前系統進程的各類有用信息都放在這個僞目錄下。
============================================================================
ps -ef 與 ps aux
-
第一點
-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