Linux有一个特性:OOM Killer,一个保护机制,用于避免在内存不足的时候不至于出现严重问题,把一些无关的进程优先杀掉
echo -15 /proc/[pid]/oom_adj
这会让 oom 在出现 Out of memory后,尽量不去kill这个进程。
echo 10 /proc/[pid]/oom_adjoom
会优先考虑kill这个进程。
echo -17 /proc/[pid]/oom_adj
oom在Out of memory时, 不会kill该进程。
oom_adj的值在-16 到 +15之间,值越高被kill的优先度越高,当该值为-17时,系统将不会杀死指定pid的进程,而-16~15则会使得进程的/proc/[pid]/oom_adj值呈指数(K*2^n)形式递增,
即它们被杀掉的可能性呈指数递增。针对init(进程号为1)这个进程,无论该值设为多少都不会被杀。