Linux OOM 简介

2018-08-01 kernel linux

简介

Linux 内核为了提高内存的使用效率采用过度分配内存 Over Commit Memory 的办法,当造成物理内存过度紧张后进而触发 OOM 机制来杀死一些进程回收内存。

其它

防止被杀

为了防止进程被杀,可以将 /proc/<PID>/oom_adj 设置为 -17 ,详细可以参考 linux/oom.h 中关于 OOM_DISABLE 宏的定义。

例如,对于一些常用的系统进程可以通过如下的方式设置,也可以添加到启动脚本里,或者是添加到 crontab 中。

pgrep -f "/usr/sbin/sshd" | while read PID;do echo -17 > /proc/$PID/oom_adj;done