【问题标题】:Apache memory leak阿帕奇内存泄漏
【发布时间】:2015-11-16 03:17:21
【问题描述】:
我在 Windows 上使用 Apache 2.2,我可以看到 httpd 进程的内存稳步增加。我使用 FastMM 内存管理器来查找内存泄漏,虽然我找到了一些并清除了它们,而 FastMM 不再找到任何东西,但我的 httpd 内存仍在不断增加,直到达到 ~2GB 上限并崩溃。
有什么好的策略/工具来处理这种情况?
这不是一个网站,也没有涉及 PHP。我们有我们的自定义 Apache 模块 (.so),它充当处理 SOAP 请求的服务器,可以对数据库执行插入、删除、更新和查询。请求来自条码扫描设备。
非常感谢,
【问题讨论】:
标签:
httpd.conf
apache2.2
fastmm
【解决方案1】:
我发现在 httpd.conf 中按实际顺序设置您的“DirectoryIndex”(使用 Notepad++ 来计算文件或只是估计)
在这里找到信息:
HTTPD Apache Docs
我有 25 个 index.php 文件和 161 个 index.html 文件。
从 25% 的 CPU 和 4 Gb 内存开始,现在我主要使用 0% 的 CPU 和 10-11 Mb 内存。
【解决方案2】:
这是 Apache 的一个问题,Windows 的 2.4 版也有此问题。简单的解决方法是在该文件底部的 Windows 部分中将 http 默认 conf 文件中的 MaxRequestsPerChild 设置额外设置为 200000 到 1000000 之间的数字,然后重新启动 Apache。内存使用率仍在攀升,但它会在使用率攀升到足以使服务器崩溃之前自动重置。 HTH。