Peddireddy,

how about your project? I have finally found a solution here ;-) If the
database handles requests faster, the load on my Tomcat(s) are lower,
because of the lower count of active threads. This does not resolve the
problem induced by the apparent connection limit on Windows 2003
Standard Edition, especially in peak situations with ~3000 active
Threads. I've got the computing centre to install Red Hat Enterprise 4
on one of the servers and voila, the errors are gone!

Admittedly, it seems that Linux is a bit slower when getting into a high
thread count, it's sufficiently fast for my project. Also, it seems
faster on low thread counts (<500). A simple servlet building a XML tree
(without any database access or other 3rd party access) runs about 30%
faster on Linux than on Windows on the same machine.

I think the slower response of Linux with high thread counts is induced
by a slower thread handling. An engineer from Red Hat will try to
optimize that tomorrow..

-- Michael


On Fri, Jul 22, 2005 at 11:23:24AM +0200, Michael Kleinhenz wrote:
> Peddireddy,
> 
> > your mail is very informative.
> > we have a very similar set up (4 Xeon processors 3.5 GB Ram and
> > WIn2003 Standard edition) and hardpart is that we cant change this
> > setup and switch to Linux. 
> 
> same problem over here. The computing centre of our client can't provide
> Linux servers. I'm struggling with this problem for 3 weeks now.
> 
> > I heard about clustering on diferent boxes. Is the process of running
> > multiple tomcats on a single machine will be same??
> 
> My experience was that with a single Tomcat on a large machine, you'll
> never use that box fully. Besides that you can't get the Sun JVM to
> accept a large amount of threads while giving them enough memory, Tomcat
> seems to have performance problems with 3000+ threads busy at the same
> time. The BEA JVM (JRockit) performs better in terms of memory and
> threads but is slower than the Sun JVM. If you have rather complex
> database operations performed by your webapp, this will get you into
> trouble, because if there is a single bottleneck in the whole system,
> the requests will pile up in the server, it hits its thread limit, and
> ceases operation.
> 
> So, I have made good experiences with 4 Tomcats on a 2xXeon with 4GB.
> The server's load is somewhere between 70% and 100% while running with
> high load and can handle more concurrent requests than a single Tomcat.
> 
> > You talked about some "workarounds using esoteric registry keys", can
> > you eloborate on this or tell me where I can get details about it and
> > the details about limitations placed by windows2003  on a single
> > process in terms of number of threads, memory etc.
> 
> We use 2003 Standard Edition and get the following limitations:
> 
>  . Windows only provides 2GB memory to all applications running,
>    regardless of how much memory you have. All other memory is used for
>    Windows itself. With a registry key, you can extend this to 3GB. I
>    don't have the key handy, but it can be found in MSDN.
> 
>  . The somewhat larger problem is the crappy TCP stack on Windows. A
>    single Tomcat easily handles 1000 concurrent connections, but if I start
>    4 Tomcats, I get a WSAENOBUFS error ("An operation on a socket could not
>    be performed because the system lacked sufficient buffer space or
>    because a queue was full") at about 3300 concurrent connections.
>    Because each Tomcat runs with his own instance of the JVM, I suppose
>    the problem is Windows, the network or anything else that is used by all
>    Tomcats at the same time. Even worse, after such a crash, there is a
>    10% chance, the Tomcats not resuming normal operation but crashes
>    completely.
> 
>  . Windows has a default limit of 5000 ephemeral ports that can be used 
>    fo outgoing connections. This can be changed with the MaxUserPorts
>    registry key. Also, the TcpTimedWaitDelay key is relevant for network
>    performance. Both are described here:
> 
>    
> http://msdn.microsoft.com/library/en-us/randz/protocol/tcp_time-wait_delay.asp
> 
> I'm now really irritated by this problem. I need a capacity of about
> 15000 concurrent connections for my project. I also have 3 2xXeon
> servers here, but windows (or anything else) doesn't allow more than
> ~8000 connections until it dies.
> 
> -- Michael
> 
> -- 
> Dipl.-Technoinform. Michael Kleinhenz
> tarent GmbH . Bahnhofstr. 13 . 53123 Bonn
> fon +49 (228) / 52 67 5-0 . fax +49 (228) / 52 67 5-25

-- 
Michael Kleinhenz
tarent GmbH . Bahnhofstr. 13 . 53123 Bonn
fon +49 (228) / 52 67 5-0 . fax +49 (228) / 52 67 5-25

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to