linux 環境下進程什么時候會被 killed掉


轉載:https://zhidao.baidu.com/question/1609920477764046627.html
OS:cent os 6.5
日志路徑:/var/log/messages
服務器上跑的一個程序,發現報了Killed。查看/var/log/messages里的日志,發現以下報錯:
 
linux下也有內存OOM的處理,不同於android 殺掉報OOM的進程,linux是殺掉當前最占用內存的進程。
 
當Linux報OOM時,意味着整個系統的內存已經不足,如果不殺死進程的話,就會導致系統的崩潰。
每個進程都會存有一個oom_score的參數,
比如輸出pid為988的oom_score:
 
[plain] view plain copy
cat /proc/988/oom_score  
 
OOM Killer 會在系統報OOM的時候,殺死當前score最高的進程,一般情況也就是占用內存最大的進程
 
解決方法:一是增加系統內存,二是優化進程,使其占用內存降低。三是可以使用oom_score_adj參數,
這個參數會被計算入oom_score,可以避免進程被殺死(不推薦使用)。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM