You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Stefan Fritsch <sf...@sfritsch.de> on 2012/03/02 21:18:08 UTC

Re: AsyncRequestWorkerFactor / Event Sizing / Closing Connections

On Wednesday 22 February 2012, Stefan Fritsch wrote:
> On Wed, 22 Feb 2012, Rainer Jung wrote:
> > Looking at the server status on www.apache.org running 2.3.15 one
> > can see, that about 50% of the async connections are in closing
> > state.
> > 
> > We created AsyncRequestWorkerFactor to control the amount of
> > overcommitment in terms of connections relative to idle workers
> > we allow for each process. The formula is
> > 
> > Connections =
> > 
> > ThreadsPerChild + (AsyncRequestWorkerFactor * idle_workers) =
> > 
> > busy_workers + ((AsyncRequestWorkerFactor+1) * number of idle
> > workers)
> > 
> > Default value for AsyncRequestWorkerFactor is "2", so per default
> > 
> > Connections = busy + 3 * idle.
> > 
> > Now if the situation on www.apache.org turns out to be typical,
> > 50% of Connections are in closing state, but we don't expect
> > those to need any more worker thread. So the overcommitment
> > would reduce from a factor of 3 to something closer to 1.5,
> > which isn't much.
> > 
> > Would it be feasible to only count the number of non-closing
> > connections, so allow new connections for a process as long as
> > 
> > Non_Closing_Connections <=
> > 
> > ThreadsPerChild + (AsyncRequestWorkerFactor * idle_workers) =
> > 
> > Comments?
> 
> That's certainly a possible improvement.

I did the attached patches last weekend. They should do it, but I 
haven't had any chance to test them properly and won't have time in 
the next 1-2 weeks. If someone wants to try them, please go ahead.

Cheers,
Stefan