There is no load at all. No apps installed. It is a fresh install. Even if I stop the JVMD which is used for monitoring by EM, My heap gradually grows and we get an alert for heap usage at 95% atleast once a day.
Note that JRockit works with a gc-trigger (http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionxx.htm#BABFCBCI)
If you look in the default values you can see the following:
"If -XXgcTrigger is not specified, the system tries to automatically find a good percentage value. If -XXgcTrigger=nn is specified, it is used instead and no automatic process is involved."
This (http://middlewaremagic.com/weblogic/wp-content/uploads/2011/07/clientromemoryoverview.png) gives an example of gc's. As you can see JRockit tries to use as much memory as possible, i.e., not wasting resources.
The alerts you are getting are quite common (90% warning). You could try to increase them (for example above 95%).
Usually, there is no need to worry about such levels in the memory (JRockit can manage this). When you want to protect against out of memory errors
you can use the Overload, Configuration tab of WebLogic and set a panic action and a failure action (what to do when you have too many stuck threads).
As long running threads consume memory (and of course CPU cycles) - such threads can lead (when there are too many) to a memory problem.
I see that the -XXgcTrigger is ignored in Parallel Mark and Parallel sweep. we are considering to test the gc behaviour in the below settings.
Xgc:gencon (optimize for minimum gc times and lots of temp objects)
-XXgcTrigger:20 (trigger gc to run when less than 20% of heap is free, to avoid EM alerts that fire at 90)
For your reply *"JRockit tries to use as much memory as possible, i.e., not wasting resources."*
Does it mean this happens when there are no applications or resources deployed and it is like a fresh install just 1 JVM running?
Thanks for your help in advance.
What you can do, is let JRockit decide what garbage collection to use.
With -Xgc:gencon you choose a static garbage collector, JRockit provides dynamic collector schemes, i.e.,
when you want to optimize for pauses, you can use -Xgc:pausetime (http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1011879)
and set a target for the pausetime, for example, -XpauseTarget=200ms (http://docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1011852)
With "JRockit tries to use as much memory as possible, i.e., not wasting resources" I mean that you are allocating (with -Xms and -Xmx) a certain
amount of memory to the heap. When you set a -XXgcTrigger to 20%, you signal JRockit at 80% of the heap to run a collection. In this case
you could let the heap-usage run until 90% (and still be safe), instead of starting a collection at 80%.