tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <>
Subject Re: max number of concurrent requests(update)
Date Thu, 06 Aug 2009 13:24:53 GMT
Hash: SHA1


On 8/3/2009 5:32 PM, wrote:
> Any body has experience with long running request (for example:those
> which wait for an event)?if the answer is yes, i would like to know what
> is maximum number of concurrent long running request you have had?

I think you would be limited by other factors, such as memory, file
handles, database, or network bandwidth: the number of concurrent
connections can be set quite high. How high have you gone? What happened?

> which hardware capacity do you used to achieve this maximum?

Each concurrent connection requires a thread. Each thread has a stack
and some other housekeeping information associated with it. You'll need
enough memory to hold all your threads. If you want a lot of threads
(thousands or tens of thousands), I'd highly recommend a 64-bit
processor (or processors!), a 64-bit OS, and a 64-bit JVM to have access
to all that memory you're going to need.

> Any one knows where i can found this blog post which was made by Filip
> hanik
> about scalability of tomcat with NIO connector:

I'm not sure where you can find it. I suspect Filip knows, but he's been
silent up 'till now. Maybe a topic nudge will catch his attention.

I'm no NIO expert, but I believe that once a request has begin service,
everything is "blocking" until the response is finished. That means
that, if you have long-running requests, switching to NIO might not
actually gain you anything: you'll still need a ton of threads.

The NIO connector helps in situations where you have lots of keepalive
requests, especially when the client says the request is keepalive, but
then never ends up sending a second (or third) request and the socket
just sits there doing nothing. In this case, the NIO connector isn't
assigning a dedicated thread to watching each idle connection. Instead,
a single thread is watching all of the idle connections and assigning a
worker thread once a request has actually been made.

I'm not sure NIO will help you in your current situation.

- -chris
Version: GnuPG v1.4.9 (MingW32)
Comment: Using GnuPG with Mozilla -


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

View raw message