On Wed, Dec 1, 2021 at 9:16 AM Ruediger Pluem <rpl...@apache.org> wrote:
>
>
>
> On 11/30/21 2:53 PM, Eric Covener wrote:
> > On Fri, Oct 15, 2021 at 6:29 AM <yla...@apache.org> wrote:
> >>
> >> Author: ylavic
> >> Date: Fri Oct 15 10:29:00 2021
> >> New Revision: 1894285
> >>
> >> URL: http://svn.apache.org/viewvc?rev=1894285&view=rev
> >> Log:
> >> mpm_event: Restart stopping of idle children after a load peak. PR 65626.
> >>
> >> r1770752 added an heuristic to avoid stopping children when the load 
> >> triggers
> >> MaxSpareThreads but children take some time to shut down until the point 
> >> where
> >> active_daemons_limit/ServerLimit is reached (scoreboard full) and no child 
> >> gets
> >> created to handle incoming connections.
> >>
> >> However when this happens there is nothing to stop children again when the 
> >> load
> >> settles down (besides MaxRequestsPerChild, which may be 0) so let's 
> >> restart to
> >> stop children again if/when idle_thread_count reaches max_workers / 4.
> >
> > Wouldn't the slow-to-exit (but eventually exiting) gracefully shutting
> > down processes eventually bring total_daemons down and start killing
> > more processes again?
> > It seems like if they are not slow but effectively never exiting, the
> > change could do more harm by filling the scoreboard quicker.
> >
> > But then I can't explain the PR this came from
> > https://bz.apache.org/bugzilla/show_bug.cgi?id=65626
>
> The issue is that in the PR ServerLimit == MaxRequestWorkers / 
> ThreadsPerChild.
> Once you reached ServerLimit and there are no dying children, child processes 
> will not be shutdown any longer.
> From a quick glance this can only happen if ServerLimit == MaxRequestWorkers 
> / ThreadsPerChild. If it is larger
> shutdown should start again some time as some children must be in the process 
> of dying.

Thanks, that makes sense.
I wonder if the patch here could maybe key off of whether there is
slack space in ServerLimit or if
retained->total_daemons == active_daemons_limit to avoid creating more
slow to exit children when
the new condition is not the only way out?

Reply via email to