Hung JVM consuming 100% CPU

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


Kirk,

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.

Jon

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...
URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20110302/055ac2cd/attachment-0001.html 
-------------- next part --------------
_______________________________________________
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use


More information about the hotspot-gc-dev mailing list