I've got PHP processes running that occasionally have to briefly use large amounts of RAM.
After PHP uses the large amount of RAM, the httpd process seems to keep the same private dirty RSS indefinitely. Even while processing later much less memory intensive requests. Here's the relevant lines from pmap.
% tinysu pmap -x 30247
30247: /usr/sbin/httpd
Address Kbytes RSS Dirty Mode Mapping
00002b914046f000 60712 57324 57124 rw--- [ anon ]
00002b9144cfa000 12676 12448 12448 rw--- [ anon ]
00002b9145a3b000 27400 26964 26964 rw--- [ anon ]
Will this memory ever be available for use by the rest of the system?
I keep MaxRequestPerChild in httpd.conf at 10000 for things like persistent memcached connections. Do I need to lower that value to ensure that memory is released, so that the occasional memory intensive operation doesn't eventually cause every httpd process to take up far more memory than it needs?
I tried using MaxMemFree in httpd.conf, but that didn't make any difference.