Reputation: 3472
I'am using Jboss eap 5.1 with Seam Framework. I want to tune my GC to avoid FullGC. I already using CMS GC. This will be my next configuration on production system:
-Xms24g
-Xmx24g
-XX:+UseCompressedOops
-XX:NewRatio=4
-XX:SurvivorRatio=8
-XX:+UseConcMarkSweepGC
-XX:+UseParNewGC
-XX:+DisableExplicitGC
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+CMSClassUnloadingEnabled
-XX:+CMSScavengeBeforeRemark
-XX:CMSInitiatingOccupancyFraction=68
My question is "Do I need to remove this JVM options"?:
-Dsun.rmi.dgc.client.gcInterval=3600000
-Dsun.rmi.dgc.server.gcInterval=3600000
if I will add this one:
-XX:+DisableExplicitGC
or they must stay together?
Upvotes: 4
Views: 454
Reputation: 9028
You can have both sets of the options enabled. But, the -XX:+DisableExplicitGC
will prevent any SystemGC calls coming from the RMI sessions.
The recommended use is either to disable SystemGC alltogether by using -XX:+DisableExplicitGC
or at least use the sun.rmi.dgc.*.gcInterval
flags to control the frequency of the System GC calls (to prevent the SystemGC to occur too often).
I would suggest using the -XX:+DisableExplicitGC
and observing whether the number of "dead" RMI objects is growing, if yes, then you need to start tuning with the sun.rmi.dgc.*.gcInterval
flags.
This is all provided that you really want to avoid Full GC, perhaps tolerating a short pause Full GC would not be such a bad idea since you will need them to clean the RMI objects anyway.
Upvotes: 1