久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux中如何使用ps命令

共計(jì) 6346 個(gè)字符,預(yù)計(jì)需要花費(fèi) 16 分鐘才能閱讀完成。

這篇文章主要介紹 Linux 中如何使用 ps 命令,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

(cpu)使用量,觀察進(jìn)程信息:

  ps auxw|sort -k3 -rn|head -20

linux 上進(jìn)程有 5 種狀態(tài): 

運(yùn)行(正在運(yùn)行或在運(yùn)行隊(duì)列中等待) 

中斷(休眠中,  受阻,  在等待某個(gè)條件的形成或接受到信號(hào)) 

不可中斷(收到信號(hào)不喚醒和不可運(yùn)行,  進(jìn)程必須等待直到有中斷發(fā)生) 

僵死 (進(jìn)程已終止,  但進(jìn)程描述符存在,  直到父進(jìn)程調(diào)用 wait4() 系統(tǒng)調(diào)用后釋放) 

停止(進(jìn)程收到 SIGSTOP, SIGSTP, SIGTIN, SIGTOU 信號(hào)后停止運(yùn)行) 

ps 工具標(biāo)識(shí)進(jìn)程的 5 種狀態(tài)碼:

D  不可中斷  uninterruptible sleep (usually IO) 

R  運(yùn)行  runnable (on run queue) 

S  中斷  sleeping 

T  停止  traced or stopped 

Z  僵死  a defunct (”zombie”) process 

名稱:ps 
使用權(quán)限:所有使用者  
使用方式:ps [options] [–help] 
說明:顯示瞬間行程 (process) 的動(dòng)態(tài)  
參數(shù): 

ps  的參數(shù)非常多,  在此僅列出幾個(gè)常用的參數(shù)并大略介紹含義  

-A  列出所有的行程  

-w  顯示加寬可以顯示較多的資訊  

-au  顯示較詳細(xì)的資訊  

-aux  顯示所有包含其他使用者的行程  

au(x)  輸出格式  : 

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 

USER:  進(jìn)程擁有者  

PID: pid 

%CPU:  占用的  CPU  使用率  

%MEM:  占用的記憶體使用率  

VSZ:  占用的虛擬記憶體大小  

RSS:  占用的記憶體大小  

TTY:  終端的次要裝置號(hào)碼  (minor device number of tty) 

STAT:  該行程的狀態(tài): 

D:  不可中斷的靜止  

R:  正在執(zhí)行中  

S:  靜止?fàn)顟B(tài)  

T:  暫停執(zhí)行  

Z:  不存在但暫時(shí)無法消除  

W:  沒有足夠的記憶體分頁可分配  

:  高優(yōu)先序的行程  

N:  低優(yōu)先序的行程  

L:  有記憶體分頁分配并鎖在記憶體內(nèi)  (即時(shí)系統(tǒng)或捱 A  I/O) 

START:  行程開始時(shí)間  

TIME:  執(zhí)行的時(shí)間  

COMMAND: 所執(zhí)行的指令  

范例: 

ps 

PID TTY TIME CMD 

2791 ttyp0 00:00:00 tcsh 

3092 ttyp0 00:00:00 ps 

% ps -A 

PID TTY TIME CMD 

1 ? 00:00:03 init 

2 ? 00:00:00 kflushd 

3 ? 00:00:00 kpiod 

4 ? 00:00:00 kswapd 

5 ? 00:00:00 mdrecoveryd 

……. 

% ps -aux 

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND 

root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3] 

root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd] 

root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod] 

root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd] 

具體命令解釋如下:

ps a  顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序。 

ps -A  顯示所有程序。 

ps c  列出程序時(shí),顯示每個(gè)程序真正的指令名稱,而不包含路徑,參數(shù)或常駐服務(wù)的標(biāo)示。 

ps -e  此參數(shù)的效果和指定 A 參數(shù)相同。  例如: ps -e|grep sshd 

ps e  列出程序時(shí),顯示每個(gè)程序所使用的環(huán)境變量。 

ps f  用 ASCII 字符顯示樹狀結(jié)構(gòu),表達(dá)程序間的相互關(guān)系。 

ps -H  顯示樹狀結(jié)構(gòu),表示程序間的相互關(guān)系。 

ps -N  顯示所有的程序,除了執(zhí)行 ps 指令終端機(jī)下的程序之外。 

ps s  采用程序信號(hào)的格式顯示程序狀況。 

ps S  列出程序時(shí),包括已中斷的子程序資料。 

ps -t 終端機(jī)編號(hào)  

指定終端機(jī)編號(hào),并列出屬于該終端機(jī)的程序的狀況。 

ps u 

以用戶為主的格式來顯示程序狀況。 

ps x 

顯示所有程序,不以終端機(jī)來區(qū)分。 

最常用的方法是 ps -aux, 然后再利用一個(gè)管道符號(hào)導(dǎo)向到 grep 去查找特定的進(jìn)程, 然后再對(duì)特定的進(jìn)程進(jìn)行操作。 

附:Linux 中 top 與 ps 區(qū)別

一: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  是進(jìn)程的標(biāo)識(shí)號(hào)。 

? TTY  是進(jìn)程所屬的終端控制臺(tái)。 

? TIME  列是進(jìn)程所使用的總的  CPU  時(shí)間。 

? CMD  列列出正在執(zhí)行的命令行。 

使用帶有  -ef  選項(xiàng)的  ps,返回系統(tǒng)中所有用戶的所有進(jìn)程的完整列表。一般將此  ps  命令的結(jié)果傳送到  grep  中,則該結(jié)果更易于查看。例如: 

 

$ 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 :  在命令執(zhí)行后顯示環(huán)境  

-f :  完整顯示輸出  

?  標(biāo)為  C  的列是由  CPU  用于計(jì)算執(zhí)行優(yōu)先級(jí)的因子。 

? STIME  是指進(jìn)程的啟動(dòng)時(shí)間。 

?  問號(hào)表示這些進(jìn)程不屬于任何  TTY,因?yàn)樗鼈兪怯上到y(tǒng)啟動(dòng)的。 

主要參數(shù)說明:

1) 進(jìn)程用戶 ID(UID),
雖然 uid 通常是指數(shù)字型的標(biāo)識(shí),但在第一列下指定的是用戶名,標(biāo)記為 UID
2) 進(jìn)程 ID(PID)
3) 父進(jìn)程 ID(PPID)
  PPID 是父進(jìn)程的標(biāo)識(shí)號(hào)。對(duì)于 Oracle 進(jìn)程,這里的標(biāo)識(shí)號(hào)為 1 — 它是 init 進(jìn)程(所有進(jìn)程的父進(jìn)程)的 id,因?yàn)樵诒鞠到y(tǒng)中安   裝的 Oracle 是作為登錄進(jìn)程的一部分而啟動(dòng)的
4) CPU 調(diào)度情況(C)
  即是是由 CPU 用于計(jì)算執(zhí)行優(yōu)先級(jí)的因子。
5) 進(jìn)程啟動(dòng)的時(shí)間(STIME) 
6) 進(jìn)程共占用 CPU 的時(shí)間(TIME) 
7) 啟動(dòng)進(jìn)程的命令(CMD) 
8)問號(hào)表示這些進(jìn)程不屬于任何 TTY,因?yàn)樗鼈兪怯上到y(tǒng)啟動(dòng)的。 

使用 PS 命令分析系統(tǒng)性能的方法主要有: 
1. 首先,根據(jù)用戶 ID 尋找由同一用戶執(zhí)行的許多相似任務(wù),這些任務(wù)很可能是因?yàn)橛脩暨\(yùn)行的某個(gè)腳本程序在后臺(tái)啟動(dòng)多個(gè)進(jìn)程而造成的。 
2.  接下來,檢查 TIME 域中各進(jìn)程累計(jì)占用 CPU 的時(shí)間,如果有某個(gè)進(jìn)程累計(jì)占用了大量的 CPU 時(shí)間,通常說明該進(jìn)程可能陷入了無限循環(huán),或該京城的某寫邏輯出了錯(cuò)  
3.  找到那些已陷入死鎖的進(jìn)程 ID 后,就可以使用 kill 命令強(qiáng)制終止該進(jìn)程了。 

二:top 命令  
Ps 只為您提供當(dāng)前進(jìn)程的快照。要即時(shí)查看最活躍的進(jìn)程,可使用 top。 
Top 實(shí)時(shí)地提供進(jìn)程信息。它還擁有交互式的狀態(tài),允許用戶輸入命令,如 n 后面跟有 5 或 10 等數(shù)字。其結(jié)果是指示 top 顯示 5 或 10 個(gè)最活躍的進(jìn)程。 Top 持續(xù)運(yùn)行,直到您按 q 退出 top 為止。 

Top 中的幾個(gè)隱含參數(shù):top -help
top 中按 1 鍵和 F 鍵的參數(shù): 
按 1 鍵可以等到多個(gè) cpu 的情況  
按 F(f: 當(dāng)前狀態(tài),可以按相應(yīng)的字母鍵做 top 的定制輸出)后得參數(shù): 
對(duì) F 鍵和 f 鍵的區(qū)別: 
如果進(jìn)入 F 鍵區(qū)可以做進(jìn)程顯示的排序,如果進(jìn)入 f 鍵區(qū)的話則可以選擇顯示的多個(gè)項(xiàng)目: 

* A: PID = Process Id // 進(jìn)程 ID 

 b: PPID = Parent Process Pid // 父進(jìn)程 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 // 優(yōu)先權(quán)  

 i: NI = Nice value // 優(yōu)先級(jí)得值(負(fù)數(shù)代表較高的優(yōu)先級(jí), 正數(shù)是較低的優(yōu)先級(jí).0 標(biāo)志改優(yōu)先級(jí)的值是不會(huì)被調(diào)整的) 

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

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

 l: TIME = CPU Time //cpu 占用時(shí)間  

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

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

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

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

 q: RES = Resident size (kb) // 已經(jīng)使用了的常駐內(nèi)存(Resident size):RES = CODE + DATA 

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

 s: DATA = Data+Stack size (kb) //data+stack: 物理內(nèi)存中非存放代碼的空間, 用于存放數(shù)據(jù)  

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

 u: nFLT = Page Fault count // 內(nèi)存頁錯(cuò)誤的數(shù)量  

 v: nDRT = Dirty Pages count // 臟頁的數(shù)量  

 w: S = Process Status // 進(jìn)程狀態(tài):( R )為運(yùn)行或可執(zhí)行的,( S )為該程序正在睡眠中,( T )正在偵測或者是停止了,( Z )僵尸程序  

 x: COMMAND = Command name/line // 進(jìn)程啟動(dòng)命令行參數(shù)  

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

 z: Flags = Task Flags  sched.h  // 任務(wù)標(biāo)志  

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  sched.h  

* 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) 

以上是“Linux 中如何使用 ps 命令”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-07-20發(fā)表,共計(jì)6346字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒有評(píng)論)
主站蜘蛛池模板: 郴州市| 青铜峡市| 西华县| 南汇区| 台江县| 徐水县| 武强县| 洪泽县| 且末县| 洛浦县| 临海市| 磐石市| 河间市| 孝昌县| 海城市| 贵州省| 襄汾县| 武功县| 北安市| 双牌县| 亚东县| 乌兰浩特市| 梅河口市| 南岸区| 恭城| 丽水市| 石楼县| 卓资县| 沁水县| 宁城县| 玉溪市| 伊宁县| 松潘县| 宜章县| 绥滨县| 噶尔县| 封开县| 顺昌县| 巴楚县| 原阳县| 集贤县|