Hi Thomas,

Thanks for your kind interpretation. The whole GC log is available at
https://github.com/JerryLead/Misc/blob/master/AllocatedLargerThanUsage-G1/stdout-E18
.

This wrong size problem affects our GC performance analysis. Maybe we can
enhance the G1 log mechanism to let it output the precise usage/allocated
sizes of eden, humongous, and old generation in the future releases.

Thanks,
Lijie



On Fri, Apr 13, 2018 at 3:35 PM, Thomas Schatzl <thomas.scha...@oracle.com>
wrote:

> Hi,
>
> On Fri, 2018-04-13 at 10:49 +0800, Lijie Xu wrote:
> > Hi all,
> >
> > I currently found a "allocated < usage" problem in the G1 log as
> > follows.
> >
> >    [Eden: 342.0M(3296.0M)->0.0B(3890.0M) Survivors: 1024.0K->1024.0K
> > Heap: 5541.2M(6655.0M)->1886.0M(6655.0M)]
> >  [Times: user=0.03 sys=0.00, real=0.02 secs]
> >
> > This log reveals that
> > (1) The allocated space of "Old+Humongous" is (5541.2 - 342) =
> > 5199.2MB before GC.
> > (2) The usage of "Old+Humongous" is (6655 - 3296)=3359MB before GC.
> > (3) The usage of "Old+Humongous" > the allocated space of
> > "Old+Humongous" (Wrong)
> >
> > There may be a bug in the GC statistics profiler.
>
>   due to fragmentation (holes) within the heap where G1 can not
> allocate into, the usage (inverse of the space G1 can actually allocate
> into) can be higher than what is actually allocated (i.e. live
> objects).
>
> This may also explain the premature garbage collection, i.e. where Eden
> is much smaller than expected before GC (there are other reasons,
> including bugs, but without more detailed log output you can't tell).
>
> A frequent cause for this can be humongous objects. Consider increasing
> heap region size in this case (it seems to be 2M on your heap right
> now), to 4M or even 8M. Use -XX:G1HeapRegionSize=xx to do this.
>
> Thanks,
>   Thomas
>
>
_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use

Reply via email to