frequent full GC: why?

Y.S.Ramakrishna at Sun.COM Y.S.Ramakrishna at Sun.COM
Tue May 19 22:33:20 UTC 2009


<hack>
I vaguely recall someone on this list pointing out a hack to work around
that apparent Catch-22. I think they said they used to run with -XX:+DisableExplicitGC
and at night when they wanted to do a compacting collection they'd run:

% jmap -histo:live <pid>

to force their JVM to compact the heap. You'll probably find the exchange
in the archives for this list.

However, of course, the compacting side-effect of jmap may or may not
be present in a future JVM (besides, I do not recall whether this will
work with older jvm's).
</hack>

-- ramki

On 05/19/09 11:36, Anuj Lal wrote:
> We purposefully not adding -XX:+DisableExplicitGC as we do force full gc during night time so that compaction of old space can happen.
> 
> Any other reason why this may be happening?
> 
> Alal
> 
> -----Original Message-----
> From: Y.S.Ramakrishna at Sun.COM [mailto:Y.S.Ramakrishna at Sun.COM]
> Sent: Tuesday, May 19, 2009 11:20 AM
> To: Anuj Lal
> Cc: hotspot-gc-dev at openjdk.java.net
> Subject: Re: frequent full GC: why?
> 
> Please add -XX:+DisableExplicitGC just in case, unbeknownst to you,
> some third-party library (or the jdk libraries) are calling system gc.
> 
> -- ramki
> 
> On 05/19/09 10:12, Anuj Lal wrote:
>>
>> Jdk version 1.5.0_16rev9
>>
>> What can the cause of full gc back to back?.
>>
>> We are seeing frequent full GC even though enough space there in old
>> space as well as in perm space ?.
>>
>> When new space fills up I expect only new gc but not FULL GC.
>>
>>
>>
>> Old space is only 126 MB filled ( out of 194MB)
>>
>> Permspace is only 129MB out of 215 ( max perm space is 256mb)
>>
>>
>>
>> These is our setting
>>
>> -Xms2410m -server -XX:CMSInitiatingOccupancyFraction=75 Xmx2410m
>> -XX:NewSize=512M -XX:MaxNewSize=512M -XX:MaxTenuringThreshold=6
>> -XX:SurvivorRatio=5 -XX:TargetSurvivorRatio=80  -XX:MaxPermSize=256M
>> -XX:ThreadStackSize=256 -verbose:gc -XX:+PrintGCTimeStamps
>> -XX:+PrintClassHistogram -XX:+UseConcMarkSweepGC -XX:+UseParNewGC
>> -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection
>> -XX:CMSFullGCsBeforeCompaction=0 -XX:+HandlePromotionFailure
>>  -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSMarkStackSize=32M
>> -XX:CodeCacheMinimumFreeSpace=2M -XX:ReservedCodeCacheSize=64M -
>> -XX:CMSMaxAbortablePrecleanTime=1 -XX:+PrintGCDetails -XX:+PrintHeapAtGC
>> -XX:+PrintTenuringDistribution -
>>
>>
>>
>>
>>
>> 1071256.659: [Full GC {Heap before gc invocations=4293:
>>
>>  par new generation   total 449408K, used 380965K [0x4f800000,
>> 0x6f800000, 0x6f800000)
>>
>>   eden space 374528K,  99% used [0x4f800000, 0x66517448, 0x665c0000)
>>
>>   from space 74880K,   9% used [0x665c0000, 0x66cb2318, 0x6aee0000)
>>
>>   to   space 74880K,   0% used [0x6aee0000, 0x6aee0000, 0x6f800000)
>>
>>  concurrent mark-sweep generation total 1943552K, used 141477K
>> [0x6f800000, 0xe6200000, 0xe6400000)
>>
>>  concurrent-mark-sweep perm gen total 215832K, used 129513K [0xe6400000,
>> 0xf36c6000, 0xf6400000)
>>
>> 1071256.661: [CMS: 141477K->126065K(1943552K), 3.9483474 secs]
>> 522443K->126065K(2392960K), [CMS Perm : 129513K->129487K(215832K)]Heap
>> after gc invocations=4294:
>>
>>  par new generation   total 449408K, used 0K [0x4f800000, 0x6f800000,
>> 0x6f800000)
>>
>>   eden space 374528K,   0% used [0x4f800000, 0x4f800000, 0x665c0000)
>>
>>   from space 74880K,   0% used [0x665c0000, 0x665c0000, 0x6aee0000)
>>
>>   to   space 74880K,   0% used [0x6aee0000, 0x6aee0000, 0x6f800000)
>>
>>  concurrent mark-sweep generation total 1943552K, used 126065K
>> [0x6f800000, 0xe6200000, 0xe6400000)
>>
>>  concurrent-mark-sweep perm gen total 215832K, used 129487K [0xe6400000,
>> 0xf36c6000, 0xf6400000)
>>
>> }
>>
>> , 3.9511002 secs]
>>
>> 1071289.014: [Full GC {Heap before gc invocations=4294:
>>
>>  par new generation   total 449408K, used 129843K [0x4f800000,
>> 0x6f800000, 0x6f800000)
>>
>>   eden space 374528K,  34% used [0x4f800000, 0x576ccd88, 0x665c0000)
>>
>>   from space 74880K,   0% used [0x665c0000, 0x665c0000, 0x6aee0000)
>>
>>   to   space 74880K,   0% used [0x6aee0000, 0x6aee0000, 0x6f800000)
>>
>>  concurrent mark-sweep generation total 1943552K, used 126065K
>> [0x6f800000, 0xe6200000, 0xe6400000)
>>
>>  concurrent-mark-sweep perm gen total 215832K, used 129496K [0xe6400000,
>> 0xf36c6000, 0xf6400000)
>>
>> 1071289.016: [CMS[Unloading class
>> sun.reflect.GeneratedSerializationConstructorAccessor1251]
>>
>> [Unloading class sun.reflect.GeneratedMethodAccessor3111]
>>
>> : 126065K->123793K(1943552K), 4.6073158 secs]
>> 255908K->123793K(2392960K), [CMS Perm : 129496K->129483K(215832K)]Heap
>> after gc invocations=4295:
>>
>>  par new generation   total 449408K, used 0K [0x4f800000, 0x6f800000,
>> 0x6f800000)
>>
>>   eden space 374528K,   0% used [0x4f800000, 0x4f800000, 0x665c0000)
>>
>>   from space 74880K,   0% used [0x665c0000, 0x665c0000, 0x6aee0000)
>>
>>   to   space 74880K,   0% used [0x6aee0000, 0x6aee0000, 0x6f800000)
>>
>>  concurrent mark-sweep generation total 1943552K, used 123793K
>> [0x6f800000, 0xe6200000, 0xe6400000)
>>
>>  concurrent-mark-sweep perm gen total 215832K, used 129483K [0xe6400000,
>> 0xf36c6000, 0xf6400000)
>>
>> }
>>
>> , 4.6100803 secs]
>>
> 




More information about the hotspot-gc-dev mailing list