Troubleshooting
Problem
Setting the "-Dsun.rmi.dgc.server.gcInterval=3600000" and "-Dsun.rmi.dgc.client.gcInterval=3600000" parms in the JVM server arguments doesn't force the GC to happen at these intervals.
Cause
This is caused due to inadequate heap size.
Resolving The Problem
If you set the these 2 parms -Dsun.rmi.dgc.server.gcInterval=3600000 and -Dsun.rmi.dgc.client.gcInterval=3600000 parms in the server arguments, then you expect the GC to take place every 3600000 msec (or every 1 hour.) Sometimes this doesn't happen and GC happens before 1 hour.
The most likely reason that this happens is because the Java heap size is too low. If the Java heap size is too low, then an implicit GC happens earlier than scheduled. To get the GC to happen at your pre-determined levels every 1 hour, increase the Java heap size to a higher value. Try doubling it first and then observe what happens. If it still doesn't happen at your pre-determined level every hour, then the heap is still low. Increase it a bit more by a factor of 128MB.
You will find that GC happens at your pre-determined level of 1 hour depending on the right heap size. There is no pre-determined or fixed heap size, it all depends on the application load, the amount of heap available, the amount of native memory available, the rate of GC, application tuning and other factors. The best thing to do is to start at a low level and then increase accordingly and observe the behavior over an extended period of time until you see your GC happen every 1 hour or at whatever level you've defined in the JVM arguments.
Product Synonym
ITCAM4AD ITCAMfAD ITCAM for App Diagnostics
Was this topic helpful?
Document Information
Modified date:
17 June 2018
UID
swg21394812