Apache Children Stuck on futex call

Apache Children Stuck on futex call

am 22.06.2009 23:59:23 von Sean Thorne

Hi,
I've got some Apache Children that are getting stuck on a futex
call. This started happening on a Apache 2.2.6 worker w/ mod_per
2.0.4 install, so I upgraded to Apache 2.2.11 worker w/ mod_perl 2.0.4
and it still continues. I have modules for proxy and php installed as
well, but this problem only presents when using mod_perl and
MaxRequestsPerChild. If I remove mod_perl the Apache children close
as expected. It's easily replicated using an abusive ab test and
turning down MaxRequestsPerChild. I know I could turn off
MaxRequestsPerChild, but I have that on to deal with PHP's poor thread
handling and memory leaks. I could switch to prefork, but the servers
I have don't have enough RAM to handle the load I need them too. Any
help would be appreciated.

This child appears to be waiting for PID 3451, but that PID no longer
exists.

[sthorne@81082-spare ~]$ sudo strace -p 3271
Process 3271 attached - interrupt to quit
futex(0x1b5bbe8, FUTEX_WAIT, 3451, NULL

Thanks,
Sean

Re: Apache Children Stuck on futex call

am 23.06.2009 00:03:42 von Perrin Harkins

On Mon, Jun 22, 2009 at 5:59 PM, Sean Thorne wrote:
>=A0I could switch to prefork, but
> the servers I have don't have enough RAM to handle the load I need them t=
oo.

If you want to save RAM, you should run your mod_perl server in
prefork, which uses less memory due to copy-on-write sharing. Then
run a reverse proxy in front of it to handle the static files and
buffering.

- Perrin