tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From André Warnier>
Subject Re: Setting the Right Amount of Memory
Date Sat, 19 Jun 2010 23:30:57 GMT
Robinson, Eric wrote:
> On 17/06/2010 08:59, Robinson, Eric wrote:
>>> If your heap size is right on the edge of your minimum for a Tomcat 
>>> instance, you may be doing more GC work than is really needed.
>>> However, if you're satisfied with the response time and CPU 
>>> utilization, you should be ok.
>> Time to hit the vendor around the head with the cluebat. If 
>> the app is happy with less heap space then increasing it 
>> is only going to cause problems - mainly that GC when it 
>> happens will take longer and trigger longer pauses. You 
>> can mitigate this with GC config (later VMs may make the 
>> right choices for you anyway) but all this is just adding 
>> unecessary complexity.
>> Mark
> With 160 instances of tomcat on the server, and most of them happy with
> 64-96MB of RAM, could you take an educated guess at the negative impact
> on the server of raising the RAM to 512MB for each instance? How much
> extra CPU utilization do you think I could possibly see from all the
> extra GC?

Just a note here : 160 X 512 MB = 81 GB.
If each Tomcat's JVM is allowed to use up to 512 MB of Heap, there might be moments where

a lot of JVM's will be using close to that amount.  Unless your system can really support

that amount of real RAM, you may be in for massive swapping.
As Mark writes above (and my interpretation of things) :
- a bigger Heap means that the JVM will be able to accumulate more dead stuff in it, 
before needing a full GC to clean it up, than if the Heap was smaller.
- thus, all else being equal, it will take more time elapsed before a full-GC is needed.
- when it is needed however, it will take much longer, because there is more stuff to 
clean up.
So all in all, you will have less GC's, but each one will take longer.  During a full GC,

the JVM does nothing else (applications are frozen). So there may be an impact on the user

experience during that time.
But, if a significant number of JVMs start filling up their Heap simultaneously, then the

memory used will be "real", not just "reserved".  And if your system has less physical RAM

than the total required at any one time, it starts swapping.  That /would/ have a definite

impact on the user experience.
Note also that the 81 GB above count only the Tomcat Heaps, and disregard any other memory

needed by your 160 instances.

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

View raw message