HTTPD problems

Matts on 2002-11-13T10:37:59

I've taken httpd on axkit.org down permanently for now, until I can figure out what the heck is up with it. I've now had to reboot twice. Last time I could see it, there were about 50 httpd's spawned (which is a lot when each uses mod_perl and about 15M of ram!), and all were using 100% of RAM. I swear all I did was restart the httpd after deleting a bunch of log files.

However, I can see how a restart might potentially affect things - if I did a apt-get upgrade (which I did) a few weeks ago, but hadn't restarted my httpd since, it might change something that could cause this.

So I'm a bit lost now. How do I fix it? I have absolutely no idea what to do right now. I tried the old USR2 signal trick, where you install a signal handler to do a Carp::confess, but that failed to work (nothing appeared in my logs).

Yours bogglingly, Matt.


MaxClients

ask on 2002-11-13T12:16:42

You could start out with setting MaxClients to something more reasonable. Maybe 15 if you don't have a proxy; 5 or so if you do.

If you don't have a proxy you want to install one, then you'll be able to do a /server-status on the proxy and see what requests the backend is processing when it's imploding.

Re:MaxClients

Matts on 2002-11-13T14:48:29

Thanks Ask.

It's so easy to forget this stuff when you're no longer doing mod_perl development.

Looks like the lock up is somewhere in XML::LibXML parsing. Probably based on an upgraded libxml2 without recompiling XML::LibXML.

Set child process life span

TeeJay on 2002-11-13T14:48:04

You could also limit the lifespan of your children. If there is a bug in that leaks memory, giving children shorter lifespans may mean that a serious problem point is never reached.