On 10/18/2008 01:25 AM, Paul Querna wrote: > Looking at a problem that seems easy to re-produce using un-patched > trunk, 2.2.10 and 2.0.63. > > Using a graceful restart causes higher memory usage in the parent, which > is then passed on to the 'new' children processes. > > The issue seems to appear in all the Worker, Event and Prefork MPMs. > > Compile up httpd without apr pool debugging enabled, start it as normal, > and then check the memory usage: > > $ ./apachectl start > $ ps alx | grep 18459 > 1 1000 18459 1 20 0 152752 2672 674009 Ss ? 0:00 > /home/chip/temp/httpd/bin/httpd -k start > > $ ./apachectl graceful > $ ps alx | grep 18459 > 1 1000 18459 1 20 0 152752 3192 674009 Ss ? 0:00 > /home/chip/temp/httpd/bin/httpd -k start > > $ ./apachectl graceful > $ ps alx | grep 18459 > 1 1000 18459 1 20 0 152752 3236 674009 Ss ? 0:00 > /home/chip/temp/httpd/bin/httpd -k start > > $ ./apachectl graceful > $ ps alx | grep 18459 > 1 1000 18459 1 20 0 152752 3280 674009 Ss ? 0:00 > /home/chip/temp/httpd/bin/httpd -k start > > (2672 -> 3192 -> 3236 -> 3280) > > And, at least over here, httpd consistently grows in RSS, without any > obvious cause. > > Seems reproducible on Ubuntu and Darwin, using 2.2.10, 2.0.63 and trunk. > > Any ideas?
Two quick thoughts: 1. Memory fragmentation in the allocator lists (we had this discussion either here or on [EMAIL PROTECTED] a short time ago). 2. At some locations we use a global pool (process->pool) to allocate memory, e.g. mod_ssl and when setting up the listeners. I haven't checked so far if this global pool usage is justified. Regards RĂ¼diger