Hung JVM consuming 100% CPU

Jon Masamitsu jon.masamitsu at
Wed Mar 2 11:56:19 PST 2011


Just checked and the default values of MinHeapFreeRatio
results in an initiating occupancy of 92% so that answers that
(see ConcurrentMarkSweepGeneration::init_initiating_occupancy()).

Hopefully not to get too boring but I think the problem has to
do with a partially initialized object.  I've seen other parts of
the collector run into such objects but this may be a new
one.  Have to consult about this.


PS.  Don't think it is the mix of objects.  More likely a
timing issue plus some circumstance we have not run
into before.

On 3/2/2011 11:31 AM, Charles K Pepperdine wrote:
> Hi Jon,
> Thats a relief, I though I was going to have to rework a section of 
> slides!
> So, it seems like an unexpected glut of objects were promoted and the 
> cms-abortable-preclean wasn't able to get rid of anything grey. Could 
> it be that fragmentation was bad enough and free space was low enough 
> to make compaction difficult if not impossible? Certainly enough free 
> space to avoid OOME. How would one simulate that? Maps of Maps of Maps 
> of Maps ad nasium with holes punched into them containing randomly 
> sized data?
> TIA,
> Kirk
> PS not to figure out why I'm half subscribed...
> On Mar 2, 2011, at 7:45 PM, Jon Masamitsu wrote:
>> Kirk, you're right!  The MinFreeRatio and MaxFreeRatio do result in an
>> initiating occupancy as you describe.  Does seem like a concurrent
>> collection should have started.
>> On 3/1/2011 9:06 PM, Charles K Pepperdine wrote:
>>> Hi Jon,
>>>> I don't see CMSInitiatingOccupancyFraction on the command line.
>>>>         -Xmx896m -Xss128k -XX:NewSize=384M -XX:MaxPermSize=96m
>>>>         -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
>>>> so CMS isn't using occupancy of the tenured gen to start a cycle. 
>>>> That is the
>>>> default behavior.
>>> Ok, I'm trying to understand what you are saying. It was my 
>>> understanding that CMS is initiated when tenured reaches a value of 
>>> 68% = current occupancy +  the anticipated promotions. So are you 
>>> saying that setting the initiating occupancy fraction doesn't 
>>> override that value, it completely changes how CMS is triggered? Is 
>>> the flag UseCMSInitiatingOccupancyOnly only valid when you 
>>> use CMSInitiatingOccupancyFraction or does that flag also use 
>>> anticipated promotions as part of it's calculation?
>>> TIA,
>>> Kirk
-------------- next part --------------
An HTML attachment was scrubbed...
-------------- next part --------------
hotspot-gc-use mailing list
hotspot-gc-use at

More information about the hotspot-gc-dev mailing list