GCOverheadLimit does not work ?

Jon Masamitsu Jon.Masamitsu at Sun.COM
Mon Jun 9 16:08:27 UTC 2008


There is a bug somewhere here that relates to the GCOverheadLimit.
I think the problem is that the survivor spaces are not being
used and the survivor space is large enough so that the
calculation of the amount of free space in the heap is > 2%.
The survivor spaces are not being used because only full
collections are being done later in the run and the survivor
spaces are used for minor (young generation) collections.  Though
the description of the GCOverheadLimit refers to  the amount
of the heap collected, it really should just say that amount of
free space in the heap.  That's a bug in the specification for
the parameter.  I'm not sure that an out-of-memory should
be thrown if there is 2% of the heap free - that's in keeping
with trying to minimize the false positives resulting from this


David Tavoularis wrote:
> Hi,
> It seems that the mechanism GCOverheadLimit did not trigger, even if more than 98% of the total time is spent in garbage collection and less than 2% of the heap is recovered. The process spent 3 hours in this state, performing Full GC after Full GC.
> I am using Parallel Collector on Java6u4/Solaris9. Is it a bug or maybe I do not understand this feature ?
> "TimeStamp","GC duration","Duration between 2 FullGC"
> 57356.444	27.46	27.471
> 57383.915	27.14	27.137
> 57411.052	27.63	27.738
> 57438.79	33.72	33.724
> 57472.514	30.07	30.087
> 57502.601	27.84	27.842
> 57530.443	28.46	28.519
> 57558.962	29.03	29.032
> 57587.994	29.31	29.321
> Full GC logs are available at http://people.via.ecp.fr/~tony/tmp/gc_200802282216.zip
> Thanks in advance
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net

More information about the hotspot-gc-dev mailing list