apache 重新启动导致请求被发送

apache 重新启动导致请求被发送

我们已经将 apache 设置为每天早上 6 点重启,以帮助解决服务器的内存负载问题,这是在 cron 中配置的,systemctl restart httpd并且运行良好。

但是我们最近注意到,当 httpd 重新启动时,它也会在我们的应用程序中执行大量请求,我想知道它是否在缓存请求(可能是失败的请求),并且在重新启动时它会运行这些请求并导致我们的应用程序中发生一些事情。但这听起来不对劲,所以不确定到底发生了什么。

Apache 位于 Nginx 代理后面,所以不确定会发生什么,我相信我们使用的是 Cent OS 7 和 Apache 2.4,是用 yum 安装的。

任何帮助都感激不尽。谢谢

更新

我们的应用程序在某些地方有点古老,因此可能会发生内存泄漏。我们想知道 apache 在完成后是否应该释放内存并释放其拥有的进程数?目前,例如凌晨 4 点,当没有人使用系统时,httpd 进程消耗了大约 8GB 内存和 254 个进程。当没有人使用它时,这似乎有点过分?

我们最近确实升级了我们的服务器(虚拟机),为其提供更多 RAM,因为它不断崩溃,我们希望尝试在将来避免这种情况。

感谢您的回复

答案1

我同意这些评论,修复你的应用程序是最好的解决方案,或者如果你只是资源耗尽并且没有内存泄漏,那么添加内存。

但听起来你可能有内存泄漏,如果是这样,你可以尝试设置 MaxConnectionsPerChild,https://httpd.apache.org/docs/2.4/mod/mpm_common.html#maxconnectionsperchild(Apache v2.2 中的 MaxRequestsPerChild)。将其设置得足够低将导致 Apache 更频繁地回收其子进程,从而防止内存泄漏累积并消除每日重启的需要。

相关内容