Unexplained System.gc() calls

Technote (FAQ)
Problem
If you observe a pattern of explicit garbage collection on a regular interval (usually once per minute), but the application does not contain any System.gc() calls, the problem might be Remote Method Invocation (RMI) distributed garbage collection.
Cause
Excessive garbage collection affects Java™ Virtual Machine (JVM) performance.
Solution
RMI uses a distributed garbage collection (DGC) algorithm that depends on local garbage collection (GC) activity to determine if remote objects are candidates for collection. To ensure that the remote objects are collected in a timely fashion, RMI takes the step of triggering a System.gc() on a regular interval (default is 6000ms).
However, in most cases local GC activity is sufficient for effective DGC.

DGC can be postponed or disabled completely to avoid the expensive, frequent Full GCs by setting the following options:

-Dsun.rmi.dgc.server.gcInterval=<time in ms>
-Dsun.rmi.dgc.client.gcInterval=<time in ms>
-XX:+DisableExplicitGC
or
-Xdisableexplicitgc for some IBM JDKs











    Document Information

    Product categories: Software, Application Servers, Distributed Application & Web Servers, WebSphere Application Server, Java SDK
    Operating system(s): Multi-Platform
    Software version: 3.5, 4.0, 5.0, 5.1, 6.0
    Software edition: Edition Independent
    Reference #: 1173431
    IBM Group: Software Group
    Modified date: 2004-07-01