文章詳情頁
SCOUNIX基礎(chǔ)講座--第八講:監(jiān)視進(jìn)程管理
瀏覽:3日期:2024-06-19 08:32:42
程序是一個(gè)可執(zhí)行文件(Process)是正在運(yùn)行程序一個(gè)實(shí)例。 SCO Unix System V支持許多進(jìn)程同時(shí)運(yùn)行,各種系統(tǒng)通過調(diào) 用可用進(jìn)程去創(chuàng)建新進(jìn)程,與其他進(jìn)程通訊,以及終止其他進(jìn)程。 進(jìn)程族系 新進(jìn)程創(chuàng)建時(shí),內(nèi)核會(huì)分配一個(gè)進(jìn)程標(biāo)識(shí)號(hào)(PID)給它,并對(duì) 進(jìn)程表中添加說明訊息。 由一個(gè)進(jìn)程創(chuàng)建另一新進(jìn)程,老進(jìn)程為父進(jìn)程,新進(jìn)程為子進(jìn)程。 用戶Shell執(zhí)行的大多數(shù)指令又是它的子進(jìn)程,子進(jìn)程則運(yùn)行指令。 而父進(jìn)程允許有多個(gè)子進(jìn)程來實(shí)現(xiàn)任務(wù)等,待子進(jìn)程完成。一個(gè) 父進(jìn)程可以有多個(gè)子進(jìn)程,但是,一個(gè)子進(jìn)程只有一個(gè)父進(jìn)程。 前臺(tái)及後臺(tái)進(jìn)程 在Shell提示處打入指令後,創(chuàng)建一子進(jìn)程運(yùn)行命令,Shell等待 命令退出,然回到對(duì)用戶提出提示符,這道指令與Shell同步運(yùn)行, 即在前臺(tái)運(yùn)行。 在Shell提示 處打入的指令,若隨一個(gè)&,Shell創(chuàng)建的子進(jìn)程運(yùn)行 此指令,但不等待指令退出,而直接返回到對(duì)用戶提出提示。這 道指令與Shell同步運(yùn)行,即在臺(tái)運(yùn)行。 $ sleep 10 & 精靈進(jìn)程 精靈進(jìn)程是一個(gè)進(jìn)程,它與終端和用戶都無聯(lián)系,也有人喜歡稱 他為管家婆。精靈完成一些周期性的事,平時(shí)它睡眠。用ps (C) 指令可看到精靈,它在tty區(qū)域中帶有問號(hào)(?)。 -Sched:PID 0,它完成進(jìn)程的程序在存儲(chǔ)局和盤交換局之間交 換工作。 -init:PID 1,系統(tǒng)自動(dòng)建的第一用戶進(jìn)程,它負(fù)責(zé)初始化引 導(dǎo)和注冊(cè)過程,也就是所有非系統(tǒng)進(jìn)程的祖先。它會(huì)在終端口上, 啟動(dòng)getty (M)進(jìn)程。 -vhand:PID 2,頁面精靈,它頻繁地把儲(chǔ)頁面內(nèi)容送往交換區(qū)。 -bdfush:PID 3,定期刷新高速緩到盤(默認(rèn)情況,每13秒刷 新一次) -logger:歸檔系統(tǒng)出錯(cuò)訊息。 -cron:在調(diào)度時(shí)運(yùn)行作業(yè)。 -Ipsched:脫機(jī)打印精靈。 孩兒進(jìn)程 孤兒進(jìn)程在父進(jìn)程終止仍舊活動(dòng),由init (M)認(rèn)它為乾兒子。 僵□進(jìn)程則是進(jìn)程已終止,但進(jìn)程還未撤消,因?yàn)楦高M(jìn)程并未「 等待」它,進(jìn)程表仍保留著這□體,進(jìn)程表的□體是僵□進(jìn)程所 消耗的資源。 隨著新進(jìn)程的創(chuàng)建,出現(xiàn)大量□體,但總數(shù)是有限制的,因此影 響新進(jìn)程的產(chǎn)生。而孩兒進(jìn)程與僵□進(jìn)程不同,并不會(huì)影響系統(tǒng) 效率。 通常,在父進(jìn)程死去時(shí),才會(huì)移去僵□進(jìn)程。若他們還未移去, 應(yīng)由init (M)繼承并移去它。 監(jiān)視進(jìn)程 監(jiān)視進(jìn)程監(jiān)注冊(cè)戶的數(shù)量,用以記系統(tǒng)的性能;亦會(huì)監(jiān)視用戶進(jìn) 程,包括掛起進(jìn)程;以及裝載均值等系統(tǒng)性能問題。 要顯示進(jìn)程信息,可以利ps (C)指令報(bào)告,進(jìn)程狀態(tài)。在默認(rèn) 情況下,僅會(huì)報(bào)告與當(dāng)前終端有聯(lián)系的有關(guān)訊息。若用戶沒有root權(quán) 限,ps僅限以說明運(yùn)行進(jìn)程,報(bào)告用戶的進(jìn)程訊息。若用戶有root權(quán) 限,則會(huì)報(bào)告在所有終端上所有用戶的進(jìn)程訊息。 $ ps-u joana --u 〈username〉選項(xiàng)顯示指定用戶的訊息。 --t 〈ttynamt〉選項(xiàng)顯示指定終端有關(guān)的進(jìn)程訊息。 而ps -elf指令則提供了需有F、S、C、PRI、NI、TIME字段的 使用訊息。 -F是標(biāo)記,指示進(jìn)程位置,20表示在內(nèi)存,0表示交換在盤上, 31是系統(tǒng)進(jìn)程。 -S是狀態(tài)訊息,指示進(jìn)程狀態(tài),睡眠還是正在運(yùn)行。 -C是進(jìn)程占有CPU的百分率 -TIME是花費(fèi)CPU的總時(shí)間。 -PRI是進(jìn)程當(dāng)前優(yōu)先數(shù) -NI是進(jìn)程的nice (ADM)菜單 如何創(chuàng)建進(jìn)程 當(dāng)進(jìn)程分岔一個(gè)子進(jìn)程,自己就會(huì)進(jìn)入睡眠狀態(tài)。開始時(shí),子進(jìn) 程運(yùn)行父進(jìn)程的同一程序,由內(nèi)核分配一個(gè)新的PID。當(dāng)子進(jìn)程 再去執(zhí)行新的程序,保持新分配的PDI,新程序就會(huì)替代子進(jìn)程 的原先程序。 當(dāng)子進(jìn)程完成後,內(nèi)核會(huì)把它從系統(tǒng)中移去,再喚醒父進(jìn)程,子 進(jìn)程就會(huì)退出。 監(jiān)視系統(tǒng)裝載 uptime(C)指令顯示裝載均值(一分鐘、五分鐘和十五分鐘), 即在預(yù)定時(shí)間上,排隊(duì)運(yùn)行進(jìn)程的平均數(shù):$uptime W(C)指令產(chǎn)生如uptime(C)一樣的裝載均值訊息,并顯示誰在 系統(tǒng)上做甚麼,若用戶擁有root權(quán)限,W報(bào)告所有用戶的有關(guān)訊 息。 若沒有 ,僅顯示與用戶進(jìn)程有關(guān)竹的訊息。 PCPU(Process CPU,進(jìn)程CPU時(shí)間 )顯示某道特定指令已運(yùn) 行多久了。對(duì)控制不了的進(jìn)程,這種檢查是很有用的。JCPU( Joint CPU,連合CPI時(shí)間),顯示一個(gè)終端所涉的所有進(jìn)程的 總時(shí)間。 sar (ADM)指令是一個(gè)系統(tǒng)活動(dòng)報(bào)告程序,顯示系統(tǒng)資源累積 利用率。為指示系統(tǒng)瓶頸口(Bottleneck),sar 是非常好的實(shí) 用程序,指令語法如下:$sar〔-option〕 〔 sample-interval-samples〕 例如:$sar-u120 -u選項(xiàng)顯示CPU利用情況。如果%idle一致地低,使用效能是上升, 不過,運(yùn)行的進(jìn)程偷不到未用的CPU周期。 又例如使用-q選項(xiàng)顯示進(jìn)程吞吐量。假若%swpocc大於20,就發(fā)生 交換(Swapping),可以使用大內(nèi)存能減少交換 /請(qǐng)負(fù)活動(dòng)。
標(biāo)簽:
Unix系統(tǒng)
排行榜
