PermGen occupancy triggering CMS?

Bernd Eckenfels bernd.eckenfels at googlemail.com
Tue Oct 2 21:26:31 PDT 2012


Am 28.09.2012, 20:39 Uhr, schrieb Bernd Eckenfels  
<bernd.eckenfels at googlemail.com>:
> So this seems like 80% should trigger

It works like this:

src\share\vm\gc_implementation\concurrentMarkSweep\concurrentMarkSweepGeneration.cpp:276
ConcurrentMarkSweepGeneration::init_initiating_occupancy:

if CMSInitiatingPermOccupancyFraction >= 0 then this ratio is used,
otherwise it uses _initiating_occupancy = (100% - MinHeapFreeRatio%) +
                                           (CMSTriggerPermRatio% *  
MinHeapFreeRatio%)

(Not sure if it makes sense to actually consider MinHeapFreeRatio for  
PermGen, but anyway...

This will result (with the default CMSTriggerPermRatio=80 and  
MinHeapFreeRatio=40) in 92% occupancy trigger.

I can see that also in the logs:

CMSCollector shouldConcurrentCollect: 8.147
time_until_cms_gen_full 12.9501194
free=2640592
contiguous_available=1427177472
promotion_rate=159296
cms_allocation_rate=0
occupancy=0.5314856
initiatingOccupancy=0.9200000
_initiatingPermOccupancy=0.9200000_

Bernd


More information about the hotspot-gc-use mailing list