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?