Were many threads spawned? Asking for a friend...

> Am 06.10.2017 um 09:46 schrieb Ruediger Pluem <[email protected]>:
> 
> I am currently looking at a core of a httpd 2.4 process using the event MPM 
> that consumed a lot of memory
> (core dump file size about 1.4 GB).
> While taking the core actually no request was processed by this process.
> I suspect a memory leak in a 3rd party closed source module.
> As I have no view in the 3rd party module I tried to find out the heap memory 
> usage of httpd and the included modules.
> 
> For this I used the new dump_pool_and_children I added to .gdbinit which 
> delivers me the memory used by all
> pools below 'apr_global_pool' and the amount of memory in the allocator free 
> lists associated to these pools.
> This delivered a usage of only a few MB. Of course I am aware that the 
> process consumes additional memory for stack,
> static data and text segments, but this usage should be static.
> 
> Is there any heap usage by httpd that I could have missed?
> 
> - We do not use the unmanaged pools from APR. So I should have caught all 
> pools.
> - I do no think that we use allocators that are not used by a pool. Hence I 
> should have caught all allocators and
>  its free lists.
> - As no request was processed when I captured the core (all worker threads 
> were waiting for work) I doubt that missed
>  any or at least large memory consuming buckets.
> 
> So possible other consumers of memory apart from the 3rd party module that 
> come to my mind:
> 
> - Could any of the glibc (httpd was running on a Linux system) functions 
> wrapped by APR consume a lot of memory?
> - As far as I researched glibc by default should return memory to the OS if 
> more then 128 KB are free at the top of
>  the heap.
> 
> Regards
> 
> Rüdiger

Reply via email to