Apache MaxMemFree将无法正常工作?

我在httpd.conf中设置了apache MaxMemFree 150。 但是,当我使用htop / top来查看apache进程时,它仍然吃下面显示的648M。 我错过了什么?

16514 apache 20 0 1157M 648M 7884 S 0.0 8.2 0:00.00 /usr/sbin/httpd 16546 apache 20 0 1157M 648M 7884 S 0.0 8.2 0:00.00 /usr/sbin/httpd 16513 apache 20 0 1157M 648M 7884 S 0.0 8.2 0:19.78 /usr/sbin/httpd 16524 apache 20 0 1124M 613M 7956 S 0.0 7.8 0:00.00 /usr/sbin/httpd 16544 apache 20 0 1124M 613M 7956 S 0.0 7.8 0:00.00 /usr/sbin/httpd 16520 apache 20 0 1124M 613M 7956 S 0.0 7.8 0:20.32 /usr/sbin/httpd 16524 apache 20 0 1122M 609M 7956 S 0.0 7.7 0:00.00 /usr/sbin/httpd 16544 apache 20 0 1122M 609M 7956 S 0.0 7.7 0:00.00 /usr/sbin/httpd 

PS:我试图解决一个可能有一些内存泄漏的mod_perl应用程序。 但是,我不能更改代码。 我想在一段时间后让apache杀死这个进程来释放内存。

Linux吃了你的内存 – 看看这个页面关于Linux如何分配内存。

更新

除了明显的发现应用程序中的内存泄漏源和修复之外,请尝试以下操作:

  • 定期重新启动httpd,使用cron或脚本检查资源消耗。 parsingNagios脚本的输出或类似[check_httpd_limits][2]并将其用作检查。 这不是一个好的长期select。

  • 调整你的Apache httpd的实例 。 check_httpd_limits的输出在这方面可能会有所帮助。

  • 查看控制组 ,查看是否可以限制资源消耗。 为您的服务器上的应用程序和其他组件可能对其“反向”反应做好准备。

你可能正在看一些事物的组合。