httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Wang, Andy" <>
Subject [users@httpd] diagnosing an httpd memory "leak"
Date Fri, 13 Dec 2013 21:19:02 GMT
Hi all,
We have a customer who's running our httpd 2.2.22 build on a Windows
2008 R2 server and they're seeing pretty significant memory usage over
time.  Just starting up and running for a 15 minutes or so with a few
requests causes the web server private bytes to hit 120mb or so.  
Leave it long enough and it's well over 1GB and eventually (32-bit
process) certain things start to run out of memory, particular deflate
starts being unable to allocate memory and they have to restart.

So here's the really annoying thing.  They can only reproduce this on
their production system.  It's not seen on any other system. I did
suggest they try one of the later versions (we have builds available for
2.2.24 and I can make 2.2.25 and 26 versions available to them but given
how this is isolated to one system I'm not really hopeful.  I've been
unable to reproduce anything remotely like it in house.  In fact, when I
do it, and hit the server for a while, I peak out in the 80mb range or
so.  Oddly, they can't reproduce it on the same version installed on
another server (so this really points to something weird about this
particular server).

I've gotten process monitor captures to see if maybe there are some
oddities with dependency libraries being loaded and as far as I can tell
there, the libraries being loaded are correct and I don't see any
unusual libraries being loaded.  I've asked them to get me a listing of
all the installed programs on the system, and I've also asked for a save
file from sysinternals autoruns program to see if there's something
there that might tell me anything.

I've been researching methods of debugging memory use on windows
(unfortunately, I'm not a Windows developer in anyway.  Primarily *nix
and java).  But the best mechanisms I can find are to use windbg and try
to debug the process live.  Given that they're half a world away,
walking them through that process might not be so fruitful.

Grasping at ideas here, but any thoughts, tips ideas?  Help?!? :)

I've been looking at the MaxRequestsPerChild directive but I'm a little
concerned by the Windows single child process architecture and just how
long a replacement process comes up.  Does anyone have any real world
experience with this to know if it's really a bad idea?

View raw message