• JDELIST is celebrating its 20 year anniversary today!
  • Introducing Dark Mode! Switch by clicking on the lightbulb icon next to Search or by clicking on Default style at the bottom left of the page!

Intermittent WebLogic issues with Java Heap / Garbage Collection


Hi All,
Looking to get any thoughts on a WebLogic issue that has proven hard to get to the bottom of. We are on an old app (8.11)/tools release and are running jrockit on WLS 10.3.2. Occasionaly we would see the performance get very sluggish, if we looked at the java heap usage in Server Manager we would notice the heap was about 90% full. If I were to run a manual garbage collection then speed returns back to normal.

I am not sure yet what variables lead to this type of heap activity as I am unable to re-create it at will (have tried scroll to ends, extracts, etc and the garbage collection always kicks in). I am assuming it is a combination of some specific user activity. Once I do see it again I plan to get some thread dumps.

To get around this I have experimented setting a different min and max heap setting. This seems to trigger garbage collection more frequently and I have yet to see the issue since.
I know it is often suggested the min and max should be set the same, so I am wondering if anyone has experienced an issue like this? Has anyone changed the garbage collection type that jrockit uses in their Production environments?
I have experimented with java heaps on a min/max of 4GB, as well as on a min/max of 8GB and setting a different min/max of 2GB/4GB. If setting a min/max of 2gb/4gb would the server still in theory be able to handle the load as one set to 4gb/4gb?

Thanks for any input.


Reputable Poster
You're going down the right path in terms of tuning your java instance. When you set different Xms and Xmx values the affect that this has is that the GC is more aggressive in trying to free up resources so in theory you do take a performance hit although it would depend on circumstances on whether this was actually noticeable. There's plenty of articles out there which go through different techniques for tuning your GC behaviour and the reality is there is no right answer as it depends on your specific environment and usage patterns. One article which I find to be fairly complete can be found here http://www.cubrid.org/blog/dev-platform/how-to-tune-java-garbage-collection/