2

During medium user load, my Tomcat application slows down very much and I am forced to restart Tomcat in order to permit users to work.

The specs of the system are:

  • Centos 5.4 64bit with 8GB RAM
  • Tomcat 6
  • A Bonita BPM webapp - which utilizes many Groovy calls / scripts

The system is running just the Tomcat, no DB or anything else.

When the application turns REALLY slow, a snapshot of the java memory is shown here.

Have you any ideas to help me fine tune the java memory parameters to help the system work? The current memory ops in Tomcat are these:

MEMORY_OPTS="-Xshare:auto -Xms3072m -Xmx6144m -XX:MaxPermSize=1536m"`

Should I use -XX: UseCompressedOops or any other parameter to prevent this memory exhaustion?

Jonathan
  • 20,053
  • 6
  • 63
  • 70
tmanolatos
  • 932
  • 10
  • 16

1 Answers1

1

I suggest you memory profiler your application to see how much memory is being retained and where garbage is being produced. For most web applications, GC is not much of an issue, but if the amount of garbage gets to excessive levels and there isn't much free memory it can slow down the system significantly.

Peter Lawrey
  • 525,659
  • 79
  • 751
  • 1,130
  • sorry about my ignorance, but I have only ssh / console mode access to the server. Is it possible to profile the application? – tmanolatos Oct 25 '12 at 12:24
  • You can trigger a heap dump of live objects, compress it, download it and analyse it. This will give you an idea of what is retained to see why your memory is filling up. I would ensure you have a test environment which is similar to production where you can reproduce problems on a system you control. – Peter Lawrey Oct 25 '12 at 12:31