https://bz.apache.org/bugzilla/show_bug.cgi?id=53555

--- Comment #39 from Stefan Fritsch <[email protected]> ---
As a summary, the problem is that old processes that are shutting down but are
still processing some long lasting connetions take up all open scoreboard
slots. It may be triggered in two ways:

a) when doing a graceful restart (apachectl graceful)

b) when the server load goes down in a way that causes httpd to stop some
processes. This is particularily problematic because when the load increases
again, httpd will try to start more processes. If the pattern repeats, the
number of processes can rise quite a bit.

I think two things should be done:

1) Allow to use some extra scoreboard slots for processes that are gracefully
shutting down. This is necessary to fix a) and will help a bit with b). To
avoid these extra processes taking too much resources, they should try to free
resources to the OS as soon as possible. 

2) When some process is doing idle shutdown in situation b) and httpd wants
more active processes due to rising load, it should not start new processes but
rather tell the finishing processes to abort shutdown and resume full
operation. This helps with b) but not with a). It is also a lot more invasive
to implement than 1).


My previous patch https://bz.apache.org/bugzilla/attachment.cgi?id=33158 did 1)
to some extent by allowing re-use of some scoreboard slots. I will post a new
patch in a minute.


As configuration, I recommend (this one is true even if not using any patch):

MaxspareThreads - MinSpareThreads >= 2 * ThreadsPerChild

Higher values of the difference may work better. This reduces the likelyhood of
situation b) appearing.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to