httpd memory usage
Here's what I've done to 'solve' it:
- Set
MaxClients 7
(based on(1740.8Mb Memory on server - 900Mb for MySQL + other stuff) / 111Mb average usage per httpd process = 7.5747747747747747747747747747748
)
Therefore:
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 7
MaxRequestsPerChild 4000
</IfModule>
Disable all Apache modules except for
authz_host_module
,log_config_module
,expires_module
,deflate_module
,setenvif_module
,mime_module
,autoindex_module
,negotiation_module
,dir_module
,alias_module
,rewrite_module
,php5_module
Remove the
mod_ssl
package since the client isn't usinghttps://
whatsoever.
I'll report back once this new configuration has been running a while to see if this solves it.
Some inspiration here was borrowed from: http://www.activoinc.com/blog/2009/08/31/performance-optimized-httpd-conf-for-magento-ecommerce/ and http://www.activoinc.com/downloads/httpd.conf-magento
I'm afraid option MaxRequestsPerChild helped in your case, as it's enables process recycling after defined number of requests, so memory leak is there, but not visible anymore.
Additionally: MaxClients = ServerLimit * ThreadsPerChild
In your case if you need only 7 concurrent users (MaxClients=7) it's totally enough with 2 process (just in case if one will fail to minimize downtime), so config can be:
<IfModule prefork.c>
StartServers 2
MinSpareServers 2
MaxSpareServers 20
ServerLimit 2
MaxClients 8
ThreadsPerChild 4
MaxRequestsPerChild 4000
</IfModule>
I use MaxClients 8, just to make more equal request distribution between 2 processes.