G1 feedback: frantic GC cycles
Tony Printezis
tony.printezis at oracle.com
Wed May 4 14:20:53 UTC 2011
Igor,
FWIW, 518M->517M doesn't necessarily mean that we only filled on region.
It might mean that we filled, say, 5 but most objects survived. Having
said that, given how the previous GCs behaved, I think you're right that
we probably only collected one region. I'm quite perplexed with why we
went from collecting 256M of young gen to 1M (!!!):
[ 760M->506M(1024M)]
[ 507M->506M(1024M)]
[ 507M->506M(1024M)]
[ 507M->506M(1024M)]
Simone, you use 1g heap, right? Can you maybe add / set the following
params:
-Xms1g -Xmx1g -Xmn256m -XX:-UseAdaptiveSizePolicy
-XX:InitiatingHeapOccupancyPercent=60
Tony
Igor Veresov wrote:
> On 4/30/11 1:38 AM, Simone Bordet wrote:
>> Hi,
>>
>> On Sat, Apr 30, 2011 at 09:04, Igor Veresov<igor.veresov at oracle.com>
>> wrote:
>>> This is pretty weird. Simone, could you run it with
>>> -XX:+PrintHeapAtGC, it
>>> would be nice to see how big the survivor spaces are.
>>
>> Ok.
>>
>>> It seems like at the time a collection happens there is only one
>>> young region.
>>
>> Can I ask how do you know that ? From the logs ?
>
> Actually I was mistaken it's not always like that, but there one
> instance. These are the sizes at the end of the four consequent
> collections:
> [ 518M->517M(1024M)]
> [ 518M->517M(1024M)]
> [ 518M->518M(1024M)]
> [ 519M->518M(1024M)]
>
> It does look like we've filled about 1M before the next collection
> happened, which is the default size of a region. PrintHeapAtGC should
> give more details on how many regions are there in each portion of the
> heap.
>
> igor
More information about the hotspot-gc-dev
mailing list