This is a discussion on Re: Apache::Resource not killing children, hanging - modperl ; On Sun, 2006-07-23 at 15:44 -0700, Philip M. Gollucci wrote: > > Acutally, I am already using Apache::SizeLimit. I just read in a few > > places that it's a good idea use both -- Apache::SizeLimit to catch > > ...
On Sun, 2006-07-23 at 15:44 -0700, Philip M. Gollucci wrote:
> > Acutally, I am already using Apache::SizeLimit. I just read in a few
> > places that it's a good idea use both -- Apache::SizeLimit to catch
> > normal growth and Apache::Resource for emergencies.
> Ehhh... Don't think I've read that anywhere... I don't see how it
> could hurt though.
The SizeLimit docs recommend this strategy.
I think the problem with Apache::Resource not killing the process is
because of how setrlimit() works on Linux 2.6. If I'm reading this man
page correctly, it will not kill processes when they exceed RLIMIT_AS.
It just denies them any more memory. It does kill them as expected when
they exceed the CPU limit.
Maybe the Apache::Resource docs are misleading about this. It just uses
BSD::Resource, which calls setrlimit(). All that Apache::Resource adds
is setting the limit on the child processes, rather than the parent.
Maybe someone who knows more about setrlimit than me can recommend a way
to get the desired behavior. In the meantime, I'd suggest you make a
watchdog script to check for httpd processes that are stuck at this
specific size and kill them.
- Perrin