在启动时为进程设置 OOM killer 调整吗?

在启动时为进程设置 OOM killer 调整吗?

有没有办法在守护进程(我的情况是 Apache)启动时设置 OOM 终止程序调整值?我想让 Apache 进程被终止的可能性更高,并使一些更重要的服务几乎不可能被 OOM 终止程序终止。

答案1

我认为最好的办法是将一个单独的脚本添加为 init.d 的一部分。在其中,您需要执行如下操作

echo 15 > /proc/`pidof APP_NAME`/oom_adj

pidof APP_NAME检索具有该名称的应用程序的进程 ID。将 15 写入 /proc/{pid}/oom_adj 会增加进程 {pid} 的“不良程度”,使其更有可能被 OOM 终止程序终止。

文章驯服OOM杀手LWN.net 还暗示了一些其他想法,这些想法被建议允许指定“oom_victim”,但我不确定它们中是否有任何一个实际上存在于内核中。

顺便说一句:最好的解决方案是首先避免使用 OOM Killer。记住微软不成文的座右铭:没有更多的 RAM 无法解决的问题。

[注意:如果存在多个这样的过程,您可能需要稍微修改一下代码。]

答案2

对于 ubuntu 15.04,这已经改变了。

设置 pid 的 oom 设置的正确方法是

echo 42 > /proc/666/oom_score_adj

代替/proc/666/oom_adj

相关内容