tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tp>
Subject Re: Maximum number of simultaneous HTTP Requests / Performance
Date Mon, 03 Apr 2006 09:36:50 GMT
Remy Maucherat schrieb:
> On 4/3/06, Tp <> wrote:
>>we have to develop a high performance chat based only on HTML and HTTP
>>only for a television company. The biggest issue is performance. The
>>chat's output window requires one open HTTP connection per client. This
>>means, that when you have 3000 people following the chat that the server
>>has to be able to handle 3000 simultaneous ie. open HTTP connections.
>>I have read some old benchmark tests. In those Tomcat does not get a
>>very good rating compared to other servers like JRun, BEA and others,
>>since it does not use NIO or some native methods. I guess I could try
>>just to open 3000 threads on my machine which write some output and see
>>how it's doing but I guess that does not really tell me anything reliable.
>>So I was wondering if anybody can really tell me what Tomcat's (5.5)
>>limit is on this? How many simultaneous HTTP connections can Tomcat
>>handle and still respond in such a way, that the application stays
>>useable. I assume that the machine runs on a Pentium 4 3.2 Ghz with 1 GB
>>of RAM under linux and that all the file descriptor limits are set to
>>the maximum.
>>The second question I have is, that lets assume the limit of a single
>>tomcat instance is at 2000 connections, how could I use a cluster and
>>loadbalancer to increase the total amount of simultaneous HTTP
>>connections of the "Applicaiton" and this really possible? Does anybody
>>in here have pratical experience for a live production system, which is
>>in use and handles many HTTP connections?
> Neither the HTTP protocol (of course, since you control the network
> environment, you cannot run into trouble with proxies), nor the
> Servlet API have been designed to be used to do biderectional
> asynchronous communication and forever running service methods (what
> you're actually doing in that case is running your own protocol on top
> of HTTP), and in that case, there's no solution except using a large
> amount of threads. 

Yes, you are right on the point! However, the Servlet API could have 
been developed in such a way that it only uses a single thread for 
several connections. I have written a java http proxy, which handles 
multiple open http connections using just a single thread. And it 
performs really well.

I don't know if you're aware of it, but the SIP
> protocol (and the associated SIP Servlets specification) has been
> designed for exactly this sort of usage, and using it or a similar
> custom protocol may be a lot better than trying to hack stuff.

No, never heard about it. Sounds interesting. But I don't think it will 
  solve my problem handling a large number of open http connections 
simultanesously, or will it?

> OTOH, OSes like recent Linux versions have no problem with lots of
> threads (like 5000) as long as threre are enough resources, so you
> could test that solution and see how it works.

Yes, but maybe somebody else already has and can tell me;) By the way 
I'm using JBoss for all other projects, promoted it in my former company 
and I think it's a great product! What do you think about glassfish and 

> --
> xxxxxxxxxxxxxxxxxxxxxxxxx
> Rémy Maucherat
> Developer & Consultant
> JBoss Inc
> xxxxxxxxxxxxxxxxxxxxxxxxx
> ---------------------------------------------------------------------
> To unsubscribe, e-mail:
> For additional commands, e-mail:

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message