Deacon,

        As I mentioned in my ealier mail, setting maxProcessors to -ve values doesn't 
really mean unlimited  max processors as there is not code to do the same(Though 
comments in the code says -ve value indicates unlimited). 

kumar.

-----Original Message-----
From: Deacon Marcus [mailto:[EMAIL PROTECTED]]
Sent: Sunday, July 08, 2001 7:34 AM
To: [EMAIL PROTECTED]
Subject: RE: Question on HTTPConnector.


Hi,

> -----Original Message-----
> From: Craig R. McClanahan [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, July 08, 2001 2:45 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Question on HTTPConnector.
>
>
> On Sat, 7 Jul 2001 [EMAIL PROTECTED] wrote:
>
> >
> > Looking at org.apache.catalina.connector.http.HTTPConnector I got a
> > question regarding the way its implemented.(I am looking at 4.0b3 src)
> >
> >
> > Look at this block of code(in run method of HTTPConnector):
> >         // Hand this socket off to an appropriate processor
> >         HttpProcessor processor = createProcessor();
> >         if (processor == null) {
> >             try {
> >                 log(sm.getString("httpConnector.noProcessor"));
> >                 socket.close();
> >             } catch (IOException e) {
> >                 ;
> >             }
> >             continue;
> >         }
> >
> > As per my understanding if no. of HTTPConnections == maxProcessors(
> > parameter in server.xml), when a new HTTPRequest comes server just
> > closes the Socket with any wait period.
>
> Yes, that's exactly what happens.
>
> > Isn't this Bad? In cases where
> > Load suddenly increases this could cause problems.
> >
>
> Well yes, it's bad, but so will any other reaction.  What choices are
> there in handling it?
>
> (1) Current behavior of closing the connection and go back to
>     accepting new connections (causes a client-side protocol error)

The best option in my opinion.

> (2) Pause and try again in a bit (but in the mean time, this
>     thread cannot accept any new connections, so they stack up
>     inside the server socket up to acceptCount and then start
>     getting refused)

Now that's BAD :(

> (3) Ignore the maxProcessors parameter and create a new processor (and
>     its associated thread) anyway (can lead to denial of service attacks)

We have maxProcessors so site owner can - and should - tune this himself, if
he really wants (3) he can just set -1.

> Have you a suggestion on how we might deal with this more effectively?
>
> The real key is to configure maxProcessors to the maximum number of
> simultaneous requests you want your server to handle, based on the
> hardware capabilities and the processing requirements of your
> application.  For example, if your response time starts going through the
> roof once you exceed N simultaneous requests (because you've encountered
> some sort of bottleneck), it doesn't make sense to set maxProcessors
> higher than N -- that will just cause response times to slow down for
> everyone.
>
> >
> > Any info on this is greatly appreciated.
> >
> > Thanks,
> > Kumar.
> >
>
> Craig
>

Greetings,
     deacon Marcus

Reply via email to