防止 Linux 的 OOM 杀死我们网络服务器上的 apache

Ama*_*rus 6 linux memory oom apache-2.2

我们有一个 debian linux 网络服务器。它只是运行 apache2。我们的 mysql 服务器在另一台主机上。然而,我们有时会在网络服务器上运行 cron 任务来执行常规任务。

然而,最近一个 cron 任务出现了一个错误,并开始吞噬内存。Linux OOM 杀手杀死了 apache。这当然导致我们的网站瘫痪。内存饥渴的 cron 继续运行。但是在这种情况下,我希望 OOM 杀手杀死该脚本,而不是apache。

有什么方法可以配置内核,以便我可以说不要杀死名为“apache2”的进程(或者至少让 apache2 成为它杀死的最后一件事)?apache 和常规 cron 都以同一用户 (www-user) 运行。

Dou*_*der 0

简短的回答:不,OOM-killer 是不可配置的,而且目前/已经有人抵制改变这一点。

我的脑海中浮现出一些想法:

  1. 增加交换空间 - 如果脚本是 32 位的,那么很容易给它们太多的空间来耗尽。

  2. 增加物理内存。1 差不多了。

  3. 用于ulimit限制脚本可以占用的内存量。