httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From James W. Anderson <jwander...@bellsouth.net>
Subject Re: Re: [users@httpd] Performance Tuning Documentation?
Date Mon, 10 Jul 2006 21:41:38 GMT
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 <al-httpdusers@none.at>
> Date: 2006/07/10 Mon PM 04:02:34 EDT
> To: users@httpd.apache.org
> Subject: Re: [users@httpd] 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: users-unsubscribe@httpd.apache.org
>    "   from the digest: users-digest-unsubscribe@httpd.apache.org
> For additional commands, e-mail: users-help@httpd.apache.org
> 
> 


---------------------------------------------------------------------
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: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message