Apache+Perl 中的内存管理

Apache+Perl 中的内存管理

我有一个使用 Apache 2.2.15 和 mod_perl-2.0.4 的 Web Farm。我需要知道是否有类似的 perl 模块Apache::GTopLimit适用于 mod_perl-2.x。

我搜索了 Google 和其他网站,但还没有找到任何东西。我需要做的是限制每个 worker 可以消耗的内存量。如果超过阈值,那么我希望该 worker 死掉。

我已经设置了MaxRequestsPerChild值,但是这并不能阻止工人耗尽盒子上的所有内存。

答案1

如果 Apache 工作进程耗尽了 mod_perl 中的所有内存,则您的底层应用程序代码可能存在更大的问题。您不需要手动循环 Apache 工作进程,除非您的请求与工作进程的比率非常低 - 在这种情况下,通过减少工作进程数量来调整该比率可能会帮助您解决问题。

除了这些,还有什么可以阻止你apachectl graceful每天使用 -apachen小时?这会在所有现有的 Apache 工作进程空闲时立即终止它们,并生成新的工作进程;如果无法修复底层 mod_perl 问题,那么这是一种管理工作进程的非常直接的方法。

答案2

对于独立进程的工人,ulimit将努力阻止他们的记忆增长。

相关内容