Linux OOM-killer

來源:互聯網
上載者:User

查看日誌/var/log/messages發現類似"Out of Memory: Kill process..."錯誤
以前不瞭解OOM-killer{out of memory killer },今天碰巧放假一天,藉此學習下,漲漲姿勢!

OOM_killer是Linux自我保護的方式,當記憶體不足時不至於出現太嚴重問題,有點壯士斷腕的意味
在kernel 2.6,記憶體不足將喚醒oom_killer,挑出/proc/<pid>/oom_score最大者並將之kill掉

為了保護重要進程不被oom-killer掉,我們可以:echo -17 > /proc/<pid>/oom_adj,-17表示禁用OOM
我們也可以對把整個系統的OOM給禁用掉:
sysctl -w vm.panic_on_oom=1
sysctl -p

值得注意的是,有些時候 free -m 時還有剩餘記憶體,但還是會觸發OOM-killer,可能是因為進程佔用了特殊記憶體位址

平時我們應該留意下新進來的進程記憶體使用量量,免得系統重要的業務進程被無辜牽連
可用 top M 查看最消耗記憶體的進程,但也不是進程一超過就會觸發oom_killer
參數/proc/sys/vm/overcommit_memory可以控制進程對記憶體過量使用的應對策略
當overcommit_memory=0 允許進程輕微過量使用記憶體,但對於大量過載請求則不允許
當overcommit_memory=1 永遠允許進程overcommit

http://laoxu.blog.51cto.com/4120547/1267097
http://rdc.taobao.com/team/jm/archives/2001


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.