Linux進(jìn)程和線程查看以及管理
1.top 命令詳解&進(jìn)程管理
top命令查看系統(tǒng)的資源狀況
load average表示在過去的一段時間內(nèi)有多少個進(jìn)程企圖獨占CPU
zombie 進(jìn)程 :不是異常情況。一個進(jìn)程從創(chuàng)建到結(jié)束在最后那一段時間遍是僵尸。留在內(nèi)存中等待父進(jìn)程取的東西便是僵尸。任何程序都有僵尸狀態(tài),它占用一點內(nèi)存資源,僅僅是表象而已不必害怕。如果程序有問題有機(jī)會遇見,解決大批量僵尸簡單有效的辦法是重起。kill是無任何效果的stop模式:與sleep進(jìn)程應(yīng)區(qū)別,sleep會主動放棄cpu,而stop是被動放棄cpu ,例單步跟蹤,stop(暫停)的進(jìn)程是無法自己回到運行狀態(tài)的。
cpu states:
nice:讓出百分比irq:中斷處理占用
idle:空間占用百分比 iowait:輸入輸出等待(如果它很大說明外存有瓶頸,需要升級硬盤(SCSI))
Mem:內(nèi)存情況
設(shè)計思想:把資源省下來不用便是浪費,如添加內(nèi)存后free值會不變,buff值會增大。 判斷物理內(nèi)存夠不夠,看交換分區(qū)的使用狀態(tài)。
交互命令:
[Space]立即刷新顯示
[h]顯示幫助屏幕
[k] 殺死某進(jìn)程。你會被提示輸入進(jìn)程 ID 以及要發(fā)送給它的信號。 一般的終止進(jìn)程可以使用15信號;如果不能正常結(jié)束那就使用信號9強(qiáng)制結(jié)束該進(jìn)程。默認(rèn)值是信號15。在安全模式中此命令被屏蔽。
[n] 改變顯示的進(jìn)程數(shù)量。你會被提示輸入數(shù)量。
[u] 按用戶排序。
[M] 按內(nèi)存用量排序。
[o][O] 改變顯示項目的順序。
[P] 根據(jù)CPU使用百分比大小進(jìn)行排序。
[T] 根據(jù)時間/累計時間進(jìn)行排序。
[Ctrl+L] 擦除并且重寫屏幕。
[q] 退出程序。
[r] 重新安排一個進(jìn)程的優(yōu)先級別。系統(tǒng)提示用戶輸入需要改變的進(jìn)程PID以及需要設(shè)置的進(jìn)程優(yōu)先級值。輸入一個正值將使優(yōu)先級降低,反之則可以使該進(jìn)程擁有更高的優(yōu)先權(quán)。默認(rèn)值是10。
[S] 切換到累計模式。
[s] 改變兩次刷新之間的延遲時間。系統(tǒng)將提示用戶輸入新的時間,單位為s。如果有小數(shù),就換算成m s。輸入0值則系統(tǒng)將不斷刷新,默認(rèn)值是5 s。需要注意的是如果設(shè)置太小的時間,很可能會引起不斷刷新,從而根本來不及看清顯示的情況,而且系統(tǒng)負(fù)載也會大大增加。
縮寫含義:
PID每個進(jìn)程的ID
USER進(jìn)程所有者的用戶名
PRI每個進(jìn)程的優(yōu)先級別
NI每個優(yōu)先級的值
SIZE 進(jìn)程的代碼大小加上數(shù)據(jù)大小再加上堆??臻g大小的總數(shù),單位是KB RSS 進(jìn)程占用的物理內(nèi)存的總數(shù)量,單位是KB
SHARE進(jìn)程使用共享內(nèi)存的數(shù)量
STAT 進(jìn)程的狀態(tài)。其中S代表休眠狀態(tài);D代表不可中斷的休眠狀態(tài);R代表運行狀態(tài);Z代表僵死狀態(tài);T代表停止或跟蹤狀態(tài)
%CPU進(jìn)程自最近一次刷新以來所占用的CPU時間和總時間的百分比
%MEM進(jìn)程占用的物理內(nèi)存占總內(nèi)存的百分比
TIME進(jìn)程自啟動以來所占用的總CPU時間
CPU CPU標(biāo)識
COMMAND進(jìn)程的命令名稱
2. ps命令列進(jìn)程。
ps ax :tty值為“?”是守護(hù)進(jìn)程,叫deamon 無終端,大多系統(tǒng)服務(wù)是此進(jìn)程,內(nèi)核態(tài)進(jìn)程是看不到的,例木馬ps axf :看進(jìn)程樹,以樹形方式現(xiàn)實進(jìn)程列表敲 ,init是1號進(jìn)程,系統(tǒng)所有進(jìn)程都是它派生的,殺不掉ps axm :會把線程列出來。在linux下進(jìn)程和線程是統(tǒng)一的,是輕量級進(jìn)程的兩種方式。
ps axu :顯示進(jìn)程的詳細(xì)狀態(tài)。
vsz:說此進(jìn)程一共占用了多大物理內(nèi)存。
rss:請求常駐內(nèi)存多少
3.終止進(jìn)程: kill pid 本質(zhì)是協(xié)商退出?。ú⒉皇菑?qiáng)制退出)
全:kill -信號pid
kill –KILL pid 是強(qiáng)制退出。
例如編寫一kill殺不掉的程序
#!/bin/sh
while true j do
echo –n “.”
sleep 1
done
#!/bin/sh trap “”15 ##捕獲15號進(jìn)程,kill就是15號進(jìn)程
while true j do
echo -n “.”
sleep 1
done
修改進(jìn)程優(yōu)先級:
4.nice 命令 每個進(jìn)程都有優(yōu)先權(quán),權(quán)值越小優(yōu)先級越高。
nice –調(diào)整值 命令 ##范圍“-20~19”
linux圖形界面的優(yōu)先級并不是最高的,它僅是一進(jìn)程
【編輯推薦】