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-use/attachments/20110302/055ac2cd/attachment.html
More information about the hotspot-gc-use
mailing list