linux下程式被Killed__linux

來源:互聯網
上載者:User

OS:cent os 6.5

日誌路徑:/var/log/messages

伺服器上跑的一個程式,發現報了Killed。查看/var/log/messages裡的日誌,發現以下報錯:

Aug 11 16:28:11 kernel: Out of memory: Kill process 3080 (forward) score 559 or sacrifice childAug 11 16:28:11 kernel: Killed process 3080, UID 0, (forward) total-vm:1429064kB, anon-rss:1130444kB, file-rss:136kB

原來linux下也有記憶體OOM的處理,不同於android 殺掉報OOM的進程,linux是殺掉當前最佔用記憶體的進程。

當linux報OOM時,意味著整個系統的記憶體已經不足,如果不殺死進程的話,就會導致系統的崩潰。每個進程都會存有一個oom_score的參數,比如輸出pid為988的oom_score:

cat /proc/988/oom_score

OOM Killer 會在系統報OOM的時候,殺死當前score最高的進程,一般情況也就是佔用記憶體最大的進程。

解決方案:一是增加系統記憶體,二是最佳化進程,使其佔用記憶體降低。三是可以使用oom_score_adj參數,這個參數會被計算入oom_score,可以避免進程被殺死(不推薦使用)。


參考:

理解和配置 Linux 下的 OOM Killer

Linux vm運行參數之(二):OOM相關的參數

Out of memory

Linux -- 記憶體控制之oom killer機制及程式碼分析

Linux核心OOM機制分析

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.