ps top等命令詳解


1,ps命令

ps命令是一個很強大的命令了,顯示查詢瞬間進程的狀態,參數眾多,僅列幾個常用的和具體參數的含義。

1)基本使用

ps -aux
#顯示詳細的進程信息,進程所有者不限於當前用戶

查詢到的進程有關參數的含義:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER: 進程所有者
PID: 進程ID
%CPU: 占用的 CPU 使用率
%MEM: 占用的內存使用率
VSZ: 占用的虛擬內存大小
RSS: 占用的內存大小
TTY: 終端的次要裝置號碼 (minor device number of tty)
STAT: 進程狀態:
 D 無法中斷的休眠狀態(通常 IO 的進程); 
 R 正在運行,在可中斷隊列中; 
 S 處於休眠狀態,靜止狀態; 
 T 停止或被追蹤,暫停執行; 
 W 進入內存交換(從內核2.6開始無效); 
 X 死掉的進程; 
 Z 僵屍進程不存在但暫時無法消除;
 W: 沒有足夠的記憶體分頁可分配
 WCHAN 正在等待的進程資源;
 <: 高優先級進程
 N: 低優先序進程
 L: 有記憶體分頁分配並鎖在記憶體內 (即時系統或捱A I/O),即,有些頁被鎖進內存
 s 進程的領導者(在它之下有子進程); 
 l 多進程的(使用 CLONE_THREAD, 類似 NPTL pthreads); 
 + 位於后台的進程組;
START: 啟動進程的時間; 
TIME: 進程消耗CPU的時間;
COMMAND:命令的名稱和參數;

2)排序使用

ps -aux --sort=-vsz
#ps命令自帶排序功能,本命令指的是按照vsz的大小降序排列

可排序的項目有:

c cmd   可執行地簡單名稱 
C cmdline   完整命令行 
f flags   長模式標志 
g pgrp   進程地組ID 
G tpgid   控制tty進程組ID 
j cutime   累計用戶時間 
J cstime   累計系統時間 
k utime   用戶時間 
K stime   系統時間 
m min_flt   次要頁錯誤地數量 
M maj_flt   重點頁錯誤地數量 
n cmin_flt 累計次要頁錯誤 
N cmaj_flt 累計重點頁錯誤 
o session   對話ID 
p pid   進程ID 
P ppid   父進程ID 
r rss   駐留大小 
R resident 駐留頁 
s size   內存大小(千字節) 
S share   共享頁地數量 
t tty   tty次要設備號 
T start_time 進程啟動地時間 
U uid   UID
u user   用戶名
v vsize   總地虛擬內存數量(字節) 
y priority 內核調度優先級

3)用標准格式顯示進程的詳細信息(aux命令用的不是標准格式,是BSD格式)

ps -ef

顯示參數含義:

UID    PID  PPID  C STIME TTY      TIME CMD
UID    //用戶ID、但輸出的是用戶名 
PID    //進程的ID 
PPID    //父進程ID 
C      //進程占用CPU的百分比 
STIME  //進程啟動到現在的時間 
TTY    //該進程在那個終端上運行,若與終端無關,則顯示? 若為pts/0等,則表示由網絡連接主機進程。 
CMD    //命令的名稱和參數

4)查看父進程的子進程

pstree -p 1234
#1234指的是pid,能拿到子線程的線程數
top -H -p 1234
#-H按照線程查看 -p指定父進程的pid
cat /proc/1234/status
#查看某個進程的具體信息,數據比較繁雜

5)根據ps打印出來的系統內容排序查看

查看cpu占用率前5的幾個進程

ps -aux | sort -k3,3nr | head -5

#sort中-t是指定的分隔符,默認空格,-k是指定分隔符后的字段順序,-n按照字符串的數值順序比較,-r reverse , -u uniq

查看內存前5的幾個進程

ps -aux | sort -k4,4nr | head -5

 

2,top命令

  top 命令是 Linux 下常用的系統資源占用查看及性能分析工具,能夠實時顯示系統中各個進程的資源(比如cpu、內存的使用)占用狀況,top命令的執行結果是一個動態顯示過程。

用戶可以輸入的參數如下:

d 指定每兩次屏幕信息刷新之間的時間間隔。當然用戶可以使用s交互命令來改變之。
p 通過指定監控進程ID來僅僅監控某個進程的狀態。
q 該選項將使top沒有任何延遲的進行刷新。如果調用程序有超級用戶權限,那么top將以盡可能高的優先級運行。
S 指定累計模式。
s 使top命令在安全模式中運行。這將去除交互命令所帶來的潛在危險。
i 使top不顯示任何閑置或者僵死進程。
c 顯示整個命令行而不只是顯示命令名。
-n :與 -b 搭配,意義是,需要進行幾次 top 的輸出結果。
-p :指定某些個 PID 來進行觀察監測而已。

得到的參數含義:

列名    含義
PID    進程id
PPID    父進程id
RUSER    Realusername
UID    進程所有者的用戶id
USER    進程所有者的用戶名
GROUP    進程所有者的組名
TTY    啟動進程的終端名。不是從終端啟動的進程則顯示為?
PR       優先級
NInice     值。負值表示高優先級,正值表示低優先級
P        最后使用的CPU,僅在多CPU環境下有意義
%CPU    上次更新到現在的CPU時間占用百分比
TIME    進程使用的CPU時間總計,單位秒
TIME+    進程使用的CPU時間總計,單位1/100秒
%MEM    進程使用的物理內存百分比
VIRT    進程使用的虛擬內存總量,單位kb。VIRT=SWAP+RES
SWAP    進程使用的虛擬內存中,被換出的大小,單位kb。
RES    進程使用的、未被換出的物理內存大小,單位kb。RES=CODE+DATA
CODE    可執行代碼占用的物理內存大小,單位kb
DATA    可執行代碼以外的部分(數據段+棧)占用的物理內存大小,單位kb
SHR    共享內存大小,單位kb
nFLT    頁面錯誤次數
nDRT    最后一次寫入到現在,被修改過的頁面數。
S    進程狀態。
D=    不可中斷的睡眠狀態
R=    運行
S=    睡眠
T=    跟蹤/停止
Z=    僵屍進程
COMMAND    命令名/命令行
WCHAN    若該進程在睡眠,則顯示睡眠中的系統函數名

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM