新聞中心
僵尸進(jìn)程(zombie process)是linux系統(tǒng)中的一種特殊現(xiàn)象,它指的是看不到,但卻仍然存在的進(jìn)程。這種現(xiàn)象通常會(huì)顯示為一個(gè)已經(jīng)停止但仍駐留在系統(tǒng)進(jìn)程列表中的進(jìn)程,僵尸進(jìn)程占用系統(tǒng)資源但又不可使用,這種情況會(huì)影響一臺(tái)服務(wù)器常規(guī)功能,而且可能引發(fā)嚴(yán)重的問(wèn)題。

一般情況下,僵尸進(jìn)程發(fā)生的原因是死亡的進(jìn)程沒(méi)有被正確清理,這表面上看起來(lái)不像一個(gè)嚴(yán)重的問(wèn)題,但實(shí)際上它也可能引發(fā)其他問(wèn)題。例如,當(dāng)僵尸進(jìn)程數(shù)量越來(lái)越多時(shí),它們會(huì)占用一部分系統(tǒng)資源,因而降低整個(gè)系統(tǒng)的性能。此外,每一個(gè)新進(jìn)程和線程都會(huì)使用某個(gè)共享資源,如果僵尸進(jìn)程占用大量某種特定資源,則其他正常進(jìn)程和線程則無(wú)法使用這個(gè)資源,從而影響整個(gè)系統(tǒng)的運(yùn)行性能。
要解決僵尸進(jìn)程問(wèn)題,首先需要找出其產(chǎn)生的原因,常見(jiàn)的原因有:夾在的程序,父子進(jìn)程的死鎖等。其次,我們可以通過(guò)重啟服務(wù)系統(tǒng)、殺死該進(jìn)程或者修改服務(wù)端程序的架構(gòu)等方式來(lái)消除僵尸進(jìn)程的影響。
比較安全的做法是利用終端或ssh命令進(jìn)行清理,終端里可使用ps和kill命令來(lái)清理。示例如下:
$ ps -el | grep Z
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
0 Z 1000 1940 10807 0 80 0 – 145 – pts/3 00:00:00 bash
$ kill -9 1940
此外,除運(yùn)行ps和kill外,你還可以通過(guò)腳本來(lái)清理僵尸進(jìn)程,腳本如下:
#!/usr/bin/env bash
ps axo stat,ppid,pid,comm | grep -w zombie
# kill them
for i in $(ps axo stat,ppid,pid,comm | grep -w zombie | awk ‘{print $2}’); do
kill -9 $i
done
總之,定期檢查L(zhǎng)inux服務(wù)器上的僵尸進(jìn)程,能有效地減少這一現(xiàn)象的發(fā)生,從而保證系統(tǒng)的性能和穩(wěn)定性。因此,Linux服務(wù)器管理者應(yīng)該時(shí)刻會(huì)注意Linux服務(wù)器上的僵尸進(jìn)程現(xiàn)象及其影響,對(duì)僵尸進(jìn)程盡早采取行動(dòng),以防止一系列的嚴(yán)重問(wèn)題發(fā)生。
香港服務(wù)器選創(chuàng)新互聯(lián),2H2G首月10元開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)互聯(lián)網(wǎng)服務(wù)提供商,擁有超過(guò)10年的服務(wù)器租用、服務(wù)器托管、云服務(wù)器、虛擬主機(jī)、網(wǎng)站系統(tǒng)開(kāi)發(fā)經(jīng)驗(yàn)。專業(yè)提供云主機(jī)、虛擬主機(jī)、域名注冊(cè)、VPS主機(jī)、云服務(wù)器、香港云服務(wù)器、免備案服務(wù)器等。
新聞名稱:探究linux中的僵尸進(jìn)程現(xiàn)象及其影響與解決方案(linux中的僵尸進(jìn)程)
標(biāo)題鏈接:http://fisionsoft.com.cn/article/cdhijhd.html


咨詢
建站咨詢
