服务器内存超限问题_服务器内存爆满最佳处置方案
內(nèi)存爆滿截圖:
分析:內(nèi)存持續(xù)飆升,應(yīng)該是有大量內(nèi)存一直沒有釋放,考慮僵尸對(duì)象,僵尸進(jìn)程,最簡單的就是重啟服務(wù)器,但是就無法找到罪魁禍?zhǔn)琢恕?/p>
驗(yàn)證:top命令查看活躍進(jìn)程的資源使用情況。(top命令是Linux下常用的性能分析工具,能夠?qū)崟r(shí)顯示系統(tǒng)中各個(gè)進(jìn)程的資源占用狀況,類似于Windows的任務(wù)管理器。)
顯然活躍進(jìn)程占用的內(nèi)存并不多,造成內(nèi)存爆滿的另有它因。
ps -aux 查看當(dāng)前系統(tǒng)的進(jìn)程狀態(tài)。看到有大量的postdrop和sendmail
順藤摸瓜,就找到了sendmail和postdrop上,通過重啟postfix,內(nèi)存使用立馬斷崖式下跌。問題暫時(shí)得到解決。如下圖所示
終極解決方案:
postdrop是由sendmail啟動(dòng)的,而sendmail又是由crond啟動(dòng)的。所以根在crond服務(wù)上。
問題成因:crond在執(zhí)行腳本時(shí)會(huì)將腳本輸出信息以郵件的形式發(fā)送給系統(tǒng)用戶,所以必然要調(diào)用sendmail,而sendmail又會(huì)調(diào)用postdrop發(fā)送郵件,但是如果系統(tǒng)的postfix服務(wù)沒有正常運(yùn)行,那么郵件就會(huì)發(fā)送不成功,造成sendmail、postdrop、crond進(jìn)程就無法正常退出,形成大量的僵尸進(jìn)程
解決辦法:先把僵尸進(jìn)程都干掉ps -ef | egrep "sendmail|postdrop" | grep -v grep |xargs kill,讓內(nèi)存降下來,其實(shí)我一開始就是將postfix服務(wù)重啟了一下,問題就解決了,觀察了一段時(shí)間,僵尸進(jìn)程并沒有再次出現(xiàn)。
為防以后postfix掛了再出現(xiàn)類似問題,可以進(jìn)行如下配置,將crond的郵件通知關(guān)閉:
將/etc/crontab和/etc/cron.d/0hourly里的MAILTO=root修改為MAILTO=""
crontab -e第一行增加一段MAILTO=""
總結(jié)
以上是生活随笔為你收集整理的服务器内存超限问题_服务器内存爆满最佳处置方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 坦克驾驶员晩上要站岗吗?
- 下一篇: 私兵大陆怎么作弊私兵