バックグラウンドで動かしているプロセスが突然停止しており、理由がわからない。多分、OOM Killerのせい。
- Linux Memory Overcommit - memologue
- Linux oom-killerのログを理解する - コードログ
- mrwk update: OOM Killerにであったら何をするべきか?
- Linux - OOM Killer の発動を抑制! - mk-mode BLOG
- OOM Killer対策
環境
- Ubuntu 18.04 LTS
対処方法: OOM Killerを停止する
/proc/sys/vm/overcommit_memory の値を2にする(デフォルトは0)
現在の値を変更。
% sudo su # echo 2 > /proc/sys/vm/overcommit_memory
起動時に変更
% sudo su # touch /etc/sysctl.d/10-overcommit.conf # echo "vm.overcommit_memory = 2" >> /proc/sys/vm/overcommit_memory
対処方法: OOM Killer呼び出ししきい値を変更する
/proc/sys/vm/overcommit_ratio の値を適切なものにする(デフォルトは50。メモリ容量の50%でOOM Killerが呼び出される)
現在の値を変更。
% sudo su # echo 90 > /proc/sys/vm/overcommit_ratio
起動時に変更
% sudo su # touch /etc/sysctl.d/10-overcommit.conf # echo "vm.overcommit_ratio = 90" >> /proc/sys/vm/overcommit_memory