i have several tomcats running on Windows 2008 R2 Server, which are all configured to use 2G as -Xmx and 256m as -XX:MaxPermSize.

In the Windows task manager i can see that some of those tomcats use up to 4G of memory, which triggers our monitoring system all the time.

What could possible cause the high memory usage, or is this something normal?


The OS will report the memory used by the JVM + the memory used by your program. So it will always be higher than what the JVM reports as memory usage. There is a certain amount of memory need by the JVM itself in order execute your program and the OS can't tell the difference.

Unfortunately using the system memory tools isn't a very precise way to track your programs memory consumption. JVM's typically allocate large blocks of memory so object creation is quick, but it doesn't mean your program is consuming that memory.

A better way of knowing what your program is actually doing is to run jconsole and look at the memory usage there. That's a very simple tool for looking at memory that's easy to set up.

This is an answer from chubbsondubs on a similar question here this could be something to do with why you are seeing the large amount of RAM it may be including the applications RAM useage? Also he gives advice on how to check it more effectively.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy