我们在执行一项工作时,我们知道它会对记忆造成太大的压力。然而,这正在导致扼杀一两个进程,而我们希望这些进程是在这种情况下被杀死的最后一个进程。我们如何告诉linux,请不要杀死pid XXXX和pid YYY,并首先杀死其他作业,包括必要时占用所有CPU的作业,因为该作业(我们正在运行的作业)比其他两个进程的生存优先级低。
基本上,我们使用cassandra数据库运行map/reduce作业,linux决定杀死cassandra,而不是杀死map/reduce任务(这将是理想的,因为它们具有内置的恢复功能,并且还可以黑名单任务)。
发布于 2013-09-18 12:52:29
您可以设置OOM杀手将终止的进程的优先级。
给一个进程一个负的oom_adj值,以减少它被杀死的可能性:
echo -15 > /proc/2592/oom_adj给它一个积极的价值,使它更有可能被杀死:
echo 10 > /proc/2592/oom_adj用要保护和/或牺牲的进程的实际PID替换上述命令中的2592。
发布于 2013-09-18 12:50:29
您可以:
echo -18 > /proc/$PID/oom_adj希望这能有所帮助
发布于 2013-09-18 14:15:13
如果希望终止触发OOM的进程,只需设置适当的sysctl:
vm.oom_kill_allocating_task=1https://serverfault.com/questions/539894
复制相似问题