OOM – out of memory 内存溢出,是系统在内存即将耗尽时的一种自救措施
OOM会通过select_bad_process 遍历所有进程 给每个进程进行一个打分(oom_score),分数高的被选中的进程会被杀死
干预OOM可利用更改/proc/{{pid}}/oom_adj 可以干预系统对进程oom_score的判断,可选15~-16, 当为-17时 会强制系统不杀死该进程。
OOM回收模式会因为/proc/sys/vm/overcommit_memory的设置而影响
默认0 意为当申请的虚拟内存很过分的大于物理内存时,会产生OOM
为1时 意为永远允许内存申请,不管内存多大都会允许,但是内存耗尽时会产生OOM
为2时 意为永远不超过一个限定值swap+RAM*系数(/proc/sys/vm/overcmmit_ratio),如果超过了后面的内存申请都不会被允许