Server Version: Apache/2.2.27 (Unix) mod_ssl/2.2.27 OpenSSL/1.0.1e-fips DAV/2 mod_bwlimited/1.4 PHP/5.4.27 mod_perl/2.0.6 Perl/v5.8.8 CENTOS 6.6 PHP handler - DSO
The server is running with prefork module. Apache child processes start at about 10mb and gradually grows (to over 100mb). I'm beginning the process of searching for memory leaks - but in the interim I reduced MaxRequestsPerChild to 500 (from 10000), based on my understanding that this would kill the child earlier and start back at 10mb. However, in fact, the memory increases continue (it's grown to 23mb after a couple of days. This makes me think I'm not properly understanding something.
I'm assuming the childprocesses are dying because i see new PID being created and can see the # of accesses per child grow in the Apache Status page.
Is it possible that this is cache-related? I have eAccelerator for PHP enabled with a max memory allocation of 16mb (currently using about 3mb). I realize I don't know enough about how cache memory is managed (I presumed it was shared vs. replicated with each child process).
Addional thought... after the child process grows for a few days - the memory footprint falls back to smaller values without intervention. For instance, after it peaked at 100mb it fell to about 25mb one day (without an Apache restart). Is this perhaps just normal behaviour?
MaxRequestPerChild
to 10 and nothing changes, you must take a look on what application you are running. Some CMS frameworks (PHP mostly) will eat a lot of memory.