Hello everyone, My prefork apache configuration is causing processes to leak lots of memory. I'm hoping people on this list could suggest ways in me finding it, given that I've been unsucessful in isolating the problem.
Here is a breakdown of my configuration: Ubuntu 9.04 with 2.6 Kernel Apache 2.2.11 with enabled modules: Alias Authz_Host AutoIndex Deflate Dir expires headers mime Status PHP 5.2.6-3ubuntu4.2 with Suhosin-Patch 0.9.6.2 with modules: curl gd2 pdo pgsql (using PostgreSQL 8.3.7 on the same system) This runs on a fairly beefy dual quad-core Xenon Server with terabytes of HD and 12 GB of RAM. My website gets miminal traffic at the moment (average 5 users simulatenously throughout the day) and yet I find I run out of memory in less than 24 hours, I have a cron which restarts the server to band-aid the problem. Whatever I'm leaking, I'm leaking fast - htop shows my RAM on average going up roughly between 2-4 MB/s depending on the request, and it's all in apache processes. I seemed to have slowed down the problem by re-configuring my conf like so: <IfModule mpm_prefork_module> StartServers 50 MinSpareServers 20 MaxSpareServers 50 ServerLimit 1500 MaxClients 1500 MaxRequestsPerChild 1000 </IfModule> Which is only a temporary solution, because I except traffic to increase from this point forward. Since my website uses ajax heavily for polling it's worth mentioning that I have my keep-alives set very tightly as well: Timeout 300 KeepAlive On MaxKeepAliveRequests 0 KeepAliveTimeout 15 I do not use persistant connections between Postgres and PHP since I found it aggrevated the problem horrendously. I've tried to get a memory map a particular process, using pmap, but I always get 0k result: pmap -x 12762 12762: /usr/sbin/apache2 -k start Address Kbytes RSS Anon Locked Mode Mapping -------- ------- ------- ------- ------- total kB 0 - - - I've also attempted exmap, which was installed from apt as gexmap, but all I get from is this error which I haven't found a solution that works for me: (gexmap:14395): Gtk-WARNING **: cannot open display: Can anyone suggest a strategy on how to isolate what exactly is going on inside these processes and why they absorb such huge chunks of RAM? Any advice would be appreciated. Regards, Steve