Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm administrating a server running Tomcat that is getting a lot of traffic lately.

If I monitor memory usage in Task Manager I can see the memory usage growing and eventually tomcat crashes around the 1GB mark.

Here's the memory relevent bits I've set in Tomcat Properties (this is a Windows Server):

Intial memory pool: 1024 MB
Maximum memory pool: 1024 MB

The weird thing is since these problems arose I've deployed Lambda Probe to the Tomcat instance and the memory usage values I see there are much lower, for example Task Manager might show 467MB used while the "Total" used in Probe is 212 MB. Also, the Maximum Total listed in Probe is 1.29GB, when I would have expected 1GB, the maximum memory set above.

If I force the garbage collector to run using Probe, I can keep Tomcat from crashing for a while (indefinitely, AFAIK). So why doesn't the GC run automatically and stop Tomcat from crashing?


share|improve this question


You need to tune your JVM configuration. Take a look to the JMV configuration I'm using in my Tomcat server that is behaving very well under heavy traffic:


share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.