tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Brian Clark <>
Subject Re: Optimizing Tomcat with Http11NioProtocol?
Date Mon, 29 Dec 2008 23:14:03 GMT
Try using jconsole.exe (it is part of the Sun JDK) to review memory and thread usage of your
JVM. That should help you narrow down where the issue is. One key thing to look at with Jconsole
is the heap memory used figure. You are setting your -Xmx, but how much of it are you actually
using? Heap memory used will tell you if you have a memory constraint or not. Also look at
how often you have garbage collections. You'll have more of them if you have a memory constraint.
One more thing, be sure your min and max memory configurations are the same. It's more efficient
that way. 

On 32-bit Windows, you should be able to use 1536MB as your -Xmx size. That is what we are
able to use, at least using JDK 1.6.x. Upgrading to 64-bit Windows and a 64-bit JVM (and 64-bit
Tomcat) will allow you to use as much RAM as you have available. We have a 64-bit Windows
system with 18 GB of RAM allocated to Tomcat/Java.

Good luck,

From: nodje <>
Sent: Monday, December 29, 2008 2:57:14 AM
Subject: Optimizing Tomcat with Http11NioProtocol?


we are still using 5.5.12 in production and our users are facing increasing
delays with their requests (like way too long by now already).
While we are not entirely sure about what's causing this (database vs Java
application), we suppose it comes from the Java application (the database
server never seems to be under stress).
The CPU of the Tomcat machine doesn't seem too busy either.

Providing it comes from the Java application side (by the way, any tips on
how to precisely identify that is more than welcome), and providing that the
problems come from too many requests, would Http11NioProtocol help Tomcat
speed up the execution? 
It seems worth trying Http11NioProtocol before going for clustering+load
balancing. Any advice on the matter?

Also we think that request that cannot b served in the reasonable time
should be refused. Taking into account the described behaviour with the
default maxThreads=150 and acceptCount =100 values, shouldn't we decrease
the acceptCount?
Moreover the CPU on the Tomcat machine doesn't seem too busy. Is it a sign
that we can increase maxThreads?

Tomcat is on a Windows 32bits machine, so even though the machine has 4Gb of
RAM, the MAX -Xmx size  that we can be used seems to be around 1200Mb. Would
a 64bits OS automatically allows for more memory usage?

A lot of questions I know, but facing big problems like we are now, we want
to try anything possible to quickly relieve the pain from using the

thanks to anyone providing advice
View this message in context:
Sent from the Tomcat - User mailing list archive at

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

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message