我在 Ubuntu 10.04 上运行 apache2,内存为 512MB。一切似乎都正常,直到我开始向服务器发出请求。当我查看内存使用情况时,每次浏览另一个页面时,内存使用量都会增加约 5-10%。我假设这是新的 apache 进程在运行以提供内容。我并不担心这一点,但当我停止请求页面时,内存使用量并没有回落。
我正在使用 Django 和 wsgi,看看这是否有区别。
编辑:
来自:/etc/apache2/apache2.conf
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 3
<IfModule mpm_prefork_module>
StartServers 1
MinSpareServers 1
MaxSpareServers 5
MaxClients 15
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_worker_module>
StartServers 2
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
<IfModule mpm_event_module>
StartServers 2
MaxClients 150
MinSpareThreads 25
MaxSpareThreads 75
ThreadLimit 64
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>
我已经将 mpm_prefork_module 编辑得更小,但这并没有解决问题!
答案1
你能在这里发布你的 apache 的设置吗
MaxRequestsPerChild
MaxClients
另外,一些顶级输出或跳跃时看到的任何内容都可以很好地帮助我们理解和解释内存的去向。
答案2
它不应该再下降。只有在跑步时才会出现问题出去内存。否则,大多数软件将使用尽可能多的内存并持续使用它。
这听起来像预期的那样。一些 Apache 子进程启动,消耗一些内存,并在最大和最小备用服务器的范围内保持运行。
您可以浏览文档并根据需要进行更多调整。比如说减少 MaxSpareServers。这样就不会有那么多 apache 进程闲置。