设置 Ubuntu,当内存使用率达到 90% 时终止 Apache 子进程

设置 Ubuntu,当内存使用率达到 90% 时终止 Apache 子进程

我的情况如下:我们在 15Gb RAM 实例、机架空间上运行 Magento Professional。

运行 htop 时,我们可以看到“apache2 -k start”不断产生更多的子进程,其中一些占用了约 900Mb 的内存。

当内存几乎用完时,所有站点都会超时或变得非常慢。当内存全部用完时,似乎其中一些进程被终止以释放内存。

然后同样的程序发生。

我的问题是,当内存使用率达到 85-90% 时,我们是否可以设置 ubuntu / apache 来终止子进程并释放内存?

答案1

从我发现的关于 OOM 的信息来看对象对象模型

当选定父任务时,如果可能,oom killer 会牺牲任何具有独立地址空间的第一代子任务。这样可以避免服务器和重要的系统守护进程被杀死,并损失最少的工作量。

您如何确定 Apache 子进程没有被首先终止?有可能 OOM 会终止子进程,但系统仍未脱离困境,需要终止另一个子进程(取决于生成了多少个子进程)(我不是 Apache 的重度用户,因此我不清楚 Apache 地址空间在其子进程中是如何处理的)

其次,这是来自 Apache Docs 调整部分Apache 调优

您可以(也应该)控制 MaxRequestWorkers 设置,这样您的服务器就不会生成太多子进程,从而开始交换。我会研究 davidgo 的建议。

我希望这有帮助。

相关内容