關於linux查看進程ps top區別

來源:文萃谷 2.32W

linux是很多計算機學習者喜歡的,下面小編為大家整理了關於linux查看進程ps top區別的文章,希望能為你提供幫助:

關於linux查看進程ps top區別

  一:ps命令

以下是 ps 的最簡單形式:

$ ps

PID TTY TIME CMD

3884 pts/1 00:00:00 bash

3955 pts/2 00:00:00 more

3956 pts/5 00:00:05 sqlplus

• PID 是進程的標識號。

• TTY 是進程所屬的終端控制枱。

• TIME 列是進程所使用的總的 CPU 時間。

• CMD 列列出正在執行的命令行。

使用帶有 -ef 選項的 ps,返回系統中所有用户的所有進程的完整列表。一般將此 ps 命令的結果傳送到 grep 中,則該結果更易於查看。例如:

$ ps -ef | grep oracle

UID PID PPID C STIME TTY TIME CMD

oracle 1633 1 0 13:58 ?00:00:00 ora_pmon_ora1

oracle 1635 1 0 13:58 ?00:00:00 ora_dbw0_ora1

oracle 1637 1 0 13:58 ?00:00:01 ora_lgwr_ora1

oracle 1639 1 0 13:58 ?00:00:02 ora_ckpt_ora1

oracle 1641 1 0 13:58 ?00:00:02 ora_smon_ora1

oracle 1643 1 0 13:58 ?00:00:00 ora_reco_ora1

oracle 1645 1 0 13:58 ?00:00:00 ora_cjq0_ora1

oracle 1647 1 0 13:58 ?00:01:18 ora_qmn0_ora1

oracle 1649 1 0 13:58 ?00:00:00 ora_s000_ora1

oracle 1651 1 0 13:58 ?00:00:00 ora_d000_ora1

-e : 在命令執行後顯示環境

-f : 完整顯示輸出

• 標為 C 的列是由 CPU 用於計算執行優先級的因子。

• STIME 是指進程的啟動時間。

• 問號表示這些進程不屬於任何 TTY,因為它們是由系統啟動的。

主要參數説明:

1) 進程用户ID(UID),

雖然 uid 通常是指數字型的標識,但在第一列下指定的是用户名,標記為 UID

2) 進程ID (PID)

3) 父進程ID (PPID)

PPID 是父進程的標識號。對於 Oracle 進程,這裏的標識號為 1 — 它是 init 進程(所有進程的父進程)的 id,因為在本系統中安裝的 Oracle 是作為登錄進程的一部分而啟動的

4) CPU 調度情況 (C)

即是是由 CPU 用於計算執行優先級的因子。

5) 進程啟動的時間 (STIME)

6) 進程共佔用CPU的時間(TIME)

7) 啟動進程的命令 (CMD)

8)問號表示這些進程不屬於任何 TTY,因為它們是由系統啟動的。

使用PS命令分析系統性能的方法主要有:

1) 首先,根據用户ID尋找由同一用户執行的.許多相似任務,這些任務很可能是因為用户運行的某個腳本程序在後台啟動多個進程而造成的。

2) 接下來,檢查TIME域中各進程累計佔用CPU的時間,如果有某個進程累計佔用了大量的CPU時間,通常説明該進程可能陷入了無限循環,或該京城的某寫邏輯出了錯

3) 找到那些已陷入死鎖的進程ID後,就可以使用kill命令強制終止該進程了。

  二:top命令

Ps 只為您提供當前進程的快照。要即時查看最活躍的進程,可使用 top。

Top 實時地提供進程信息。它還擁有交互式的狀態,允許用户輸入命令,如 n 後面跟有 5 或 10 等數字。其結果是指示 top 顯示 5 或 10 個最活躍的進程。Top 持續運行,直到您按 "q" 退出 top 為止。

Top中的幾個隱含參數:

top中按1鍵和F鍵的參數:

按1鍵可以等到多個cpu的情況

按F(f:當前狀態,可以按相應的字母鍵做top的定製輸出)後得參數:

對F鍵和f鍵的區別:

如果進入F鍵區可以做進程顯示的排序,如果進入f鍵區的話則可以選擇顯示的多個項目:

* A: PID = Process Id //進程ID

b: PPID = Parent Process Pid //父進程ID

c: RUSER = Real user name //真正的(Real)所屬用户名稱

d: UID = User Id //用户ID

e: USER = User Name //用户名稱

f: GROUP = Group Name //組名稱

g: TTY = Controlling Tty //控制

h: PR = Priority //優先權

i: NI = Nice value //優先級得值(負數代表較高的優先級,正數是較低的優先級.0標誌改優先級的值是不會被調整的)

j: #C = Last used cpu (SMP) //隨後使用的cpu比率

k: %CPU = CPU usage //cpu使用比率

l: TIME = CPU Time //cpu佔用時間

m: TIME+ = CPU Time, hundredths //cpu%比

n: %MEM = Memory usage (RES) //內存使用率

o: VIRT = Virtual Image (kb) //虛擬鏡像(VIRT = SWAP + RES:所有進程使用的虛擬內存值,包括所有的代碼,數據,共享庫已經被swapped out的)

p: SWAP = Swapped size (kb) //交換空間大小(所有虛擬內存中的鏡像)

q: RES = Resident size (kb) //已經使用了的常駐內存(Resident size):RES = CODE + DATA

r: CODE = Code size (kb) //分配給執行代碼的物理內存

s: DATA = Data+Stack size (kb) //data+stack:物理內存中非存放代碼的空間,用於存放數據

t: SHR = Shared Mem size (kb) //共享內存大小.放映了一個task的潛在可以供別人使用的內存的大小

u: nFLT = Page Fault count //內存葉錯誤的數量

v: nDRT = Dirty Pages count //髒頁的數量

w: S = Process Status //進程狀態:( R )為運行或可執行的,( S )為該程序正在睡眠中,( T )正在偵測或者是停止了,( Z )殭屍程序

x: COMMAND = Command name/line //進程啟動命令行參數

y: WCHAN = Sleeping in Function //在睡眠中

z: Flags = Task Flags //任務標誌

Note1:

If a selected sort field can't be shown due to screen width or your field order, the '<' and '>' keys

will be unavailable until a field within viewable range is chosen.

Note2:

Field sorting uses internal values, not those in column display. Thus, the TTY & WCHAN fields will violate strict ASCII collating sequence. (shame on you if WCHAN is chosen)

Current Fields: AEHIOQTWKNMbcdfgjplrsuvyzX for window 1:Def

Toggle fields via field letter, type any other key to return

* A: PID = Process Id

* E: USER = User Name

* H: PR = Priority

* I: NI = Nice value

* O: VIRT = Virtual Image (kb)

* Q: RES = Resident size (kb)

* T: SHR = Shared Mem size (kb)

* W: S = Process Status

* K: %CPU = CPU usage

* N: %MEM = Memory usage (RES)

* M: TIME+ = CPU Time, hundredths

b: PPID = Parent Process Pid

c: RUSER = Real user name

d: UID = User Id

f: GROUP = Group Name

g: TTY = Controlling Tty

j: #C = Last used cpu (SMP)

p: SWAP = Swapped size (kb)

l: TIME = CPU Time

r: CODE = Code size (kb)

s: DATA = Data+Stack size (kb)

u: nFLT = Page Fault count

v: nDRT = Dirty Pages count

y: WCHAN = Sleeping in Function

z: Flags = Task Flags

* X: COMMAND = Command name/line

Flags field:

0x00000001 PF_ALIGNWARN

0x00000002 PF_STARTING

0x00000004 PF_EXITING

0x00000040 PF_FORKNOEXEC

0x00000100 PF_SUPERPRIV

0x00000200 PF_DUMPCORE

0x00000400 PF_SIGNALED

0x00000800 PF_MEMALLOC

0x00002000 PF_FREE_PAGES (2.5)

0x00008000 debug flag (2.5)

0x00024000 special threads (2.5)

0x001D0000 special states (2.5)

0x00100000 PF_USEDFPU (thru 2.4)

熱門標籤