简介
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