Linux系統(tǒng)中查看進(jìn)程信息的命令詳解
Linux系統(tǒng)中查看進(jìn)程信息的命令詳解
Linux系統(tǒng)中有很多進(jìn)程是一直在運(yùn)行的,我們要怎么查看它們的具體狀態(tài)信息呢?下面由學(xué)習(xí)啦小編為大家整理了Linux系統(tǒng)中查看進(jìn)程信息的命令詳解,希望對大家有幫助!
Linux系統(tǒng)中查看進(jìn)程信息的命令詳解:一、靜態(tài)進(jìn)程查看 ps
ps命令格式: ps -aux 查看系統(tǒng)所有進(jìn)程
ps -lA 查看所有系統(tǒng)的數(shù)據(jù)
ps axjf 連通部分進(jìn)程樹狀態(tài)
-A:與-e意思一樣,表列出所有進(jìn)程
-a :不與terminal有關(guān)的進(jìn)程
-u:有效用戶相關(guān)的進(jìn)程
x:通常與a這個參數(shù)一起用,可以列出完整信息
輸出格式: l:較仔細(xì)列出該pid信息
j:工作格式
-f:做一個更為完整的輸出
ps -l:僅查看自己的bash相關(guān)進(jìn)程
[plain] view plain copyzhouyl@ubuntu:~$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 S 1000 20257 20248 0 80 0 - 6067 wait pts/7 00:00:00 bash
0 R 1000 21392 20257 0 80 0 - 2466 - pts/7 00:00:00 ps
F:進(jìn)程標(biāo)志
4:表示權(quán)限為root
1:表示只能復(fù)制,不能執(zhí)行
S:表示進(jìn)程的狀態(tài)(STAT)
R:running表示正在運(yùn)行狀態(tài)
S:sleep表示沉睡狀態(tài),但是可以喚醒
D:表示沉睡狀態(tài),不能喚醒,通常這個進(jìn)程可能在等待I/O的情況
T:stop表示停在狀態(tài),例如暫停的后臺工作或出錯進(jìn)程
Z:僵尸進(jìn)程,進(jìn)程已經(jīng)終止但不能提出內(nèi)存外
UID/PID/PPID:表示用戶的UID/進(jìn)程的PID號碼/此進(jìn)程的父進(jìn)程PID號碼
C:表示CPU的使用率,單位是百分比
PRI/NI:表示此進(jìn)程被CPU執(zhí)行的優(yōu)先級,數(shù)字越小,優(yōu)先級越高
ADDR:支持該進(jìn)程在內(nèi)存的那個部分,若該進(jìn)程正在運(yùn)行這表示為“-”
SZ:表示該進(jìn)程占用了多少內(nèi)存
WCHAN:表示該進(jìn)程是否運(yùn)行,若在運(yùn)行這表示為“-”
TTY:表示登陸終端,若是遠(yuǎn)程登陸表示為pts/h
TIME:表示該進(jìn)程使用CPU的時(shí)間
CMD:command,表示那個命令啟動的該進(jìn)程
下面介紹 ps -aux 查看系統(tǒng)所有進(jìn)程
[plain] view plain copy<span style="font-size:18px">zhouyl@ubuntu:~$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 24564 2444 ? Ss 08:19 0:00 /sbin/init
root 2 0.0 0.0 0 0 ? S 08:19 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 08:19 0:04 [ksoftirqd/0]
</span>
USER:表示該進(jìn)程所屬用戶
PID:該進(jìn)程的PID號
%CPU:表示該進(jìn)程的CPU占用率
%MEM:表示該進(jìn)程的物理內(nèi)存占用率
VSZ:表示該進(jìn)程占用了多少虛擬內(nèi)存量
RSS:表示該進(jìn)程占用了多少固定內(nèi)存量
TTY:表示登陸端口
STAT:和上面介紹的進(jìn)程狀態(tài)一樣(R/S/D/T/Z進(jìn)程)
START:該進(jìn)程觸發(fā)啟動的時(shí)間
TIME:表示該進(jìn)程占用CPU的時(shí)間
COMMAND:表示觸動該進(jìn)程的命令
僵尸進(jìn)程
通常,造成僵尸進(jìn)程的原因是該進(jìn)程應(yīng)該已經(jīng)執(zhí)行完畢,或是因故應(yīng)該要終止了,但是該進(jìn)程的父進(jìn)程卻無法完整將該進(jìn)程結(jié)束掉,而造成那個進(jìn)程一直在內(nèi)存當(dāng)中。如果你發(fā)現(xiàn)某個進(jìn)程的CMD后面接上<defunct>時(shí),就代表該進(jìn)程是僵尸進(jìn)程,例如:
1 2598 2598 2598 ? -1 Ss 0 0:00 /usr/sbin/hcid<defunct>
當(dāng)系統(tǒng)不穩(wěn)定的時(shí)候就容易造成所謂的僵尸進(jìn)程,可能是因?yàn)槌绦驅(qū)懙牟缓茫蛘哂脩舨僮鞑划?dāng)所造成的。如果系統(tǒng)出現(xiàn)很多僵尸進(jìn)程,記得要找出父進(jìn)程,然后好好跟蹤,好好優(yōu)化主機(jī)環(huán)境。如果實(shí)在不行就只有reboot了
Linux系統(tǒng)中查看進(jìn)程信息的命令詳解:二、動態(tài)進(jìn)程:top
top命令格式
[plain] view plain copy<span -bnp]
-d:表示界面刷新時(shí)間,單位秒,默認(rèn)是5秒
-b:以批次的方式進(jìn)行top,還有更多的參數(shù)可以使用
通常會搭配數(shù)據(jù)重定向來講批處理的結(jié)果輸出成為文件
-n:與-b搭配,意思是需要進(jìn)行幾次top的輸出結(jié)果
-p:查看直接進(jìn)程,后面接進(jìn)程號
?:顯示在top當(dāng)中可以輸入的按鍵命令
P:以cpu使用率來排名
M:以內(nèi)存的使用率來排名
N:以PID來排名
T:以進(jìn)程使用CPU時(shí)間累加排名
k:給予某個PID一個信號
r:給予某個PID重新制定一個nice值
q:退出離開 </span>
[plain] view plain copy<span style="font-size:18px">zhouyl@ubuntu:~$ top
top - 10:44:15 up 2:24, 6 users, load average: 2.09, 2.70, 2.98
Tasks: 209 total, 3 running, 206 sleeping, 0 stopped, 0 zombie
Cpu(s): 29.9%us, 17.4%sy, 0.0%ni, 52.4%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
Mem: 5046272k total, 4752156k used, 294116k free, 1291300k buffers
Swap: 262140k total, 16k used, 262124k free, 1516100k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2813 zhouyl 20 0 1269m 200m 41m R 28 4.1 33:49.24 compiz
1478 root 20 0 247m 130m 18m S 18 2.6 25:49.51 Xorg
3972 zhouyl 20 0 1707m 71m 35m S 10 1.5 14:19.49 vlc
3218 zhouyl 20 0 806m 158m 49m S 6 3.2 16:19.85 chrome
3607 zhouyl 20 0 985m 130m 27m S 6 2.6 2:05.07 chrome </span>
這里有六行
第一行:表示現(xiàn)在時(shí)間,系統(tǒng)開機(jī)到現(xiàn)在的時(shí)間,多少登陸用戶。負(fù)載均衡,在1、5、15分鐘系統(tǒng)平均運(yùn)行幾個進(jìn)程的意思,越小代表系統(tǒng)越閑置,若高于1得注意你的系統(tǒng)壓力是否太過繁復(fù)了
第二行:表示系統(tǒng)共運(yùn)行了多少進(jìn)程,他們分別的運(yùn)行狀態(tài),注意后面的zombie一般為0如果為其他數(shù),就要注意了,看看到是那個進(jìn)程是僵尸進(jìn)程
第三行:表示當(dāng)下CPU整體負(fù)載,需要特別注意的是%wa,這個選項(xiàng)代表的是I/Owait,通常你的系統(tǒng)會變慢都是I/O產(chǎn)生的問題比較大,如果你是多核設(shè)備可以按“1”切換查看不同的CPU負(fù)載情況
下面是我們在 top 命令看到的 CPU 占用率信息及各項(xiàng)值含義:
Cpu(s): 29.9%us, 17.4%sy, 0.0%ni, 52.4%id, 0.0%wa, 0.0%hi, 0.3%si, 0.0%st
us: User time 用戶時(shí)間(User time):表示 CPU 執(zhí)行用戶進(jìn)程的時(shí)間,包括 nices 時(shí)間。通常期望用戶空間 CPU 越高越好。
sy: System time 系統(tǒng)時(shí)間(System time):表示 CPU 在內(nèi)核運(yùn)行時(shí)間,包括 IRQ 和 softirq 時(shí)間。系統(tǒng) CPU 占用率高,表明系統(tǒng)某部分存在瓶頸。通常值越低越好。
ni: Nice time Nice 時(shí)間(Nice time):系統(tǒng)調(diào)整進(jìn)程優(yōu)先級所花費(fèi)的時(shí)間。
id: Idle time 空閑時(shí)間(Idle time):系統(tǒng)處于空閑期,等待進(jìn)程運(yùn)行。
wa: Waiting time 等待時(shí)間(Waiting time):CPI 在等待 I/O 操作完成所花費(fèi)的時(shí)間。系統(tǒng)部應(yīng)該花費(fèi)大量時(shí)間來等待 I/O 操作,否則就說明 I/O 存在瓶頸。
hi: Hard Irq time 硬中斷處理時(shí)間(Hard Irq time):系統(tǒng)處理硬中斷所花費(fèi)的時(shí)間。
si: SoftIrq time 軟中斷處理時(shí)間(SoftIrq time):系統(tǒng)處理軟中斷中斷所花費(fèi)的時(shí)間。
st: Steal time 丟失時(shí)間(Steal time):被強(qiáng)制等待(involuntary wait)虛擬 CPU 的時(shí)間,此時(shí) hypervisor 在為另一個虛擬處理器服務(wù)。
第四行與第五行:表示物理內(nèi)存與虛擬內(nèi)存使用的情況,swap的使用要越低越好,如果swap使用率較高表示物理內(nèi)存不足
第六行及以下:
PID:是進(jìn)程ID
USER:該進(jìn)程所屬用戶
PR:priority的縮寫,進(jìn)程的優(yōu)先級,值越小優(yōu)先級越高
NI:nice的縮寫,與priority有關(guān),值越小優(yōu)先級越高
%CPU:CPU的使用率
%MEM:內(nèi)存使用率
TIME+:CPU使用時(shí)間的累加
值得注意的是:在top中輸入h或者?,可以顯示幫助
Linux系統(tǒng)中查看進(jìn)程信息的命令詳解:三、查看進(jìn)程樹命令:pstree
pstree命令格式
[plain] view plain copypstree [-A|U] [-up]
-A:各進(jìn)程間連接用ASCII字符連接
-U:該進(jìn)程之間連接用utf8字符連接
-p:同時(shí)顯示PID
-u:同時(shí)列出每個進(jìn)程的所屬賬號名稱
zhouyl@ubuntu:~$ pstree -Aup
init(1)-+-NetworkManager(1344)-+-dhclient(1707)
| |-dnsmasq(2560,nobody)
| |-dnsmasq(2645,nobody)
| |-{NetworkManager}(1374)
| `-{NetworkManager}(1708)
|-accounts-daemon(2184)---{accounts-daemon}(2185)
|-acpid(1417)
|-atd(1429,daemon)
|-avahi-daemon(1331,avahi)---avahi-daemon(1332)
|-bamfdaemon(2892,zhouyl)---{bamfdaemon}(2896)
|-bluetoothd(1319)
|-chrome(3218,zhouyl)-+-chrome(3313)
| |-chrome(3690)-+-{chrome}(3693)
| | |-{chrome}(3694)
| | `-{chrome}(3695)
| |-chrome(3718)-+-{chrome}(3719)
| | |-{chrome}(3720)
| | `-{chrome}(3721)
[plain] view plain copy<pre></pre><pre></pre><pre></pre><pre></pre><pre></pre><pre></pre><pre></pre><pre></pre>