I think where I'm having the disconnect is in the sequence of events and when 
certain timeout values apply.

An HTTP request will arrive at the web host wrapped in one or more TCP/IP 
packets, and the OS protocol stack will queue those packets and dispatch to the 
appropriate application.  In this case the application is the Apache "parent" 
process.  The Apache parent process has its own queue whose size is determined 
by ListenBacklog, which begins to fill once MaxClients number of child 
processes is reached (i.e. when there isn't an available child process 
immediately available to dispatch the request to.  The timer that Timeout 
controls doesn't even begin ticking until the request is accepted by a child 
process, right?  So, even if I set Timeout to 10 seconds, a request/response 
round-trip could still take much longer if the OS and/or Apache queues the 
request, and then the child process takes 10 seconds all by itself to process 
the request, right?

Besides the source code itself, is there any documentation that details how a 
request is received, queued and processed by Apache, much like I've attempted 
to do here?  If I wanted to learn this directly from the source code, in which 
modules would I start?

Thanks very much for the explanations that I've received so far.

James Anderson
Alpharetta, Georgia USA

> 
> From: Alexander Lazic <[EMAIL PROTECTED]>
> Date: 2006/07/10 Mon PM 04:02:34 EDT
> To: users@httpd.apache.org
> Subject: Re: [EMAIL PROTECTED] Performance Tuning Documentation?
> 
> On Mon 10.07.2006 20:51, Nick Kew wrote:
> >On Monday 10 July 2006 19:44, Alexander Lazic wrote:
> >> On Mon 10.07.2006 00:31, James W. Anderson wrote:
> >> >Why doesn't it return an HTTP error when the number of concurrent users
> >> >exceeds MaxClients?
> >>
> >> For this reason you should use a *tool* before the webserver which
> >> detect this error and send a proper message to the client, imho.
> >
> >Indeed.  You can only return an HTTP error after you've accepted an
> >HTTP request.  But MaxClients limits the number of concurrent requests
> >you'll accept, and *by definition* prevents you sending them an HTTP
> >error.
> >
> >Rather than interpose a non-HTTP solution in front of the webserver,
> >I'd propose you raise MaxClients, and install some other means (such as
> >mod_load_average) to protect your server from loads above what your
> >application software can manage.
> 
> I'am not sure if i understand you right because there are some HTTP/S
> solutions available for this problem, as i know?!
> 
> regards
> 
> Alex
> 
> ---------------------------------------------------------------------
> The official User-To-User support forum of the Apache HTTP Server Project.
> See <URL:http://httpd.apache.org/userslist.html> for more info.
> To unsubscribe, e-mail: [EMAIL PROTECTED]
>    "   from the digest: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: [EMAIL PROTECTED]
   "   from the digest: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to