新聞中心

公司主營(yíng)業(yè)務(wù):做網(wǎng)站、成都網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來(lái)驚喜。創(chuàng)新互聯(lián)推出北塔免費(fèi)做網(wǎng)站回饋大家。
通常,使用"任務(wù)管理器"主要有 3 個(gè)目的:
- 利用"應(yīng)用程序"和"進(jìn)程"標(biāo)簽來(lái)査看系統(tǒng)中到底運(yùn)行了哪些程序和進(jìn)程;
- 利用"性能"和"用戶"標(biāo)簽來(lái)判斷服務(wù)器的健康狀態(tài);
- 在"應(yīng)用程序"和"進(jìn)程"標(biāo)簽中強(qiáng)制中止任務(wù)和進(jìn)程;
Linux 中雖然使用命令進(jìn)行進(jìn)程管理,但是進(jìn)程管理的主要目的是一樣的,即查看系統(tǒng)中運(yùn)行的程序和進(jìn)程、判斷服務(wù)器的健康狀態(tài)和強(qiáng)制中止不需要的進(jìn)程。
那么,到底什么是進(jìn)程呢?它和我們平時(shí)所說(shuō)的“程序”又有什么聯(lián)系呢?
什么是進(jìn)程和程序
進(jìn)程是正在執(zhí)行的一個(gè)程序或命令,每個(gè)進(jìn)程都是一個(gè)運(yùn)行的實(shí)體,都有自己的地址空間,并占用一定的系統(tǒng)資源。程序是人使用計(jì)算機(jī)語(yǔ)言編寫(xiě)的可以實(shí)現(xiàn)特定目標(biāo)或解決特定問(wèn)題的代碼集合。
這么講很難理解,那我們換一種說(shuō)法。程序是人使用計(jì)算機(jī)語(yǔ)言編寫(xiě)的,可以實(shí)現(xiàn)一定功能,并且可以執(zhí)行的代碼集合。而進(jìn)程是正在執(zhí)行中的程序。當(dāng)程序被執(zhí)行時(shí),執(zhí)行人的權(quán)限和屬性,以及程序的代碼都會(huì)被加載入內(nèi)存,操作系統(tǒng)給這個(gè)進(jìn)程分配一個(gè) ID,稱為
PID(進(jìn)程 ID)。
也就是說(shuō),在操作系統(tǒng)中,所有可以執(zhí)行的程序與命令都會(huì)產(chǎn)生進(jìn)程。只是有些程序和命令非常簡(jiǎn)單,如 ls 命令、touch 命令等,它們?cè)趫?zhí)行完后就會(huì)結(jié)束,相應(yīng)的進(jìn)程也就會(huì)終結(jié),所以我們很難捕捉到這些進(jìn)程。但是還有一些程和命令,比如 httpd 進(jìn)程,啟動(dòng)之后就會(huì)一直駐留在系統(tǒng)當(dāng)中,我們把這樣的進(jìn)程稱作
常駐內(nèi)存進(jìn)程。
某些進(jìn)程會(huì)產(chǎn)生一些新的進(jìn)程,我們把這些進(jìn)程稱作
子進(jìn)程,而把這個(gè)進(jìn)程本身稱作
父進(jìn)程。比如,我們必須正常登錄到 Shell 環(huán)境中才能執(zhí)行系統(tǒng)命令,而 Linux 的標(biāo)準(zhǔn) Shell 是 bash。我們?cè)?bash 當(dāng)中執(zhí)行了 ls 命令,那么 bash 就是父進(jìn)程,而 ls 命令是在 bash 進(jìn)程中產(chǎn)生的進(jìn)程,所以 ls 進(jìn)程是 bash 進(jìn)程的子進(jìn)程。也就是說(shuō),
子進(jìn)程是依賴父進(jìn)程而產(chǎn)生的,如果父進(jìn)程不存在,那么子進(jìn)程也不存在了。
進(jìn)程管理的作用
在使用 Windows 系統(tǒng)的過(guò)程中,使用任務(wù)管理器,很大程度上是為了強(qiáng)制關(guān)閉“未反應(yīng)”的軟件,也就是殺死進(jìn)程。的確,這是很多使用進(jìn)程管理工具或進(jìn)程管理命令的人最常見(jiàn)的使用方法。不過(guò),殺死進(jìn)程(強(qiáng)制中止進(jìn)程)只是進(jìn)程管理工作中最不常用的手段,因?yàn)槊總€(gè)進(jìn)程都有自己正確的結(jié)束方法,而殺死進(jìn)程是在正常方法已經(jīng)失效的情況下的后備手段。
那么,進(jìn)程管理到底應(yīng)該是做什么的呢?我以為,進(jìn)程管理主要有以下 3 個(gè)作用。
1) 判斷服務(wù)器的健康狀態(tài)
運(yùn)維工程師最主要的工作就是保證服務(wù)器安全、穩(wěn)定地運(yùn)行。理想的狀態(tài)是,在服務(wù)器出現(xiàn)問(wèn)題,但是還沒(méi)有造成服務(wù)器宕機(jī)或停止服務(wù)時(shí),就人為干預(yù)解決了問(wèn)題。
進(jìn)程管理最主要的工作就是判斷服務(wù)器當(dāng)前運(yùn)行是否健康,是否需要人為干預(yù)。如果服務(wù)器的 CPU 占用率、內(nèi)存占用率過(guò)高,就需要人為介入解決問(wèn)題了。這又出現(xiàn)了一個(gè)問(wèn)題,我們發(fā)現(xiàn)服務(wù)器的 CPU 或內(nèi)存占用率很高,該如何介入呢?是直接終止高負(fù)載的進(jìn)程嗎?
當(dāng)然不是,應(yīng)該判斷這個(gè)進(jìn)程是否是正常進(jìn)程,如果是正常進(jìn)程,則說(shuō)明你的服務(wù)器已經(jīng)不能滿足應(yīng)用需求,你需要更好的硬件或搭建集群了;如果是非法進(jìn)程占用了系統(tǒng)資源,則更不能直接中止進(jìn)程,而要判斷非法進(jìn)程的來(lái)源、作用和所在位置,從而把它徹底清除。
當(dāng)然,如果服務(wù)器數(shù)量很少,我們完全可以人為通過(guò)進(jìn)程管理命令來(lái)進(jìn)行監(jiān)控與干預(yù),但如果服務(wù)器數(shù)量較多,那么人為手工監(jiān)控就變得非常困難了,這時(shí)我們就需要相應(yīng)的監(jiān)控服務(wù),如 cacti 或 nagios。總之,進(jìn)程管理工作中最重要的工作就是判斷服務(wù)器的健康狀 態(tài),最理想的狀態(tài)是服務(wù)器宕機(jī)之前就解決問(wèn)題,從而避免服務(wù)器的宕機(jī)。
2) 查看系統(tǒng)中所有的進(jìn)程
我們需要查看看系統(tǒng)中所有正在運(yùn)行的進(jìn)程,通過(guò)這些進(jìn)程可以判斷系統(tǒng)中運(yùn)行了哪些服務(wù)、是否有非法服務(wù)在運(yùn)行。
3) 殺死進(jìn)程
這是進(jìn)程管理中最不常用的手段。當(dāng)需要停止服務(wù)時(shí),會(huì)通過(guò)正確關(guān)閉命令來(lái)停止服務(wù)(如 apache 服務(wù)可以通過(guò) service httpd stop 命令來(lái)關(guān)閉)。只有在正確終止進(jìn)程的手段失效的情況下,才會(huì)考慮使用 kill 命令殺死進(jìn)程。
其實(shí),進(jìn)程管理和 Windows 中任務(wù)管理器的作用非常類(lèi)似,不過(guò)大家在使用任務(wù)管理器時(shí)是為了殺死進(jìn)程,而不是為了判斷服務(wù)器的健康狀態(tài)。
新聞標(biāo)題:Linux進(jìn)程管理及作用
網(wǎng)頁(yè)路徑:http://m.fisionsoft.com.cn/article/ccceohp.html


咨詢
建站咨詢
