Back to back Full Garbage collections when conditions for Full GC do not seem met
Jon Masamitsu
Jon.Masamitsu at Sun.COM
Tue Feb 12 14:04:22 PST 2008
Alex Aisinzon wrote:
> Jon
>
> What you said about the different collectors used may actually be the
> most enlightening piece.
> The JVM options corresponding to the ProblematicFullGC.zip logs do not
> have "-server" as the first parameter. Therefore, we have reasons to
> believe that, in that case, the JVM is running in client mode.
> The JVM options corresponding to the OKGC.zip used the "-server" option
> as the first parameter.
> Is Serial GC the default for the client VM and Parallel GC the default
> for the server VM?
>
The serial GC is definitely the default collector for the client VM.
I'm a little puzzle how
the UseParallelGC collector is being in the OKGC log. I don't think it
is used by default.
It's an older release so something might have changed since I worked
with it but I thought
that UseParallelGC would explicitly have to be turned on for it to run.
Does the customer
have AggressiveHeap turned on? That would turn on UseParallelGC.
> In that light, we would ask our customer to use the -server option
> properly aka as a first parameter.
> Our application is actually certified on Server mode only.
>
> Thanks for letting us know.
>
> Regards
>
> Alex A
>
>
>
> -----Original Message-----
> From: Alex Aisinzon
> Sent: Tuesday, February 12, 2008 1:26 PM
> To: 'Jon.Masamitsu at Sun.COM'
> Cc: hotspot-gc-use at openjdk.java.net
> Subject: RE: Back to back Full Garbage collections when conditions for
> Full GC do not seem met
>
> Jon
>
> Thanks for the amazingly quick answer.
> Would you want me to gather additional information? If so, please
> provide me details on how to gather that additional information.
> One theory that I am testing is that, in the customer settings, the
> "-server" option was not in front.
> I was told that, in that case, the JVM would not pick that option.
> To check this further, I just restarted a perf run with the -server not
> in front, like the customer.
>
> Regards
>
> Alex Aisinzon
>
> -----Original Message-----
> From: Jon.Masamitsu at Sun.COM [mailto:Jon.Masamitsu at Sun.COM]
> Sent: Tuesday, February 12, 2008 1:22 PM
> To: Alex Aisinzon
> Cc: hotspot-gc-use at openjdk.java.net
> Subject: Re: Back to back Full Garbage collections when conditions for
> Full GC do not seem met
>
> Alex,
>
> The log in ProblematicFullGC.zip is from the serial GC collector which
> is subject to the "young generation guarantee". The log from OKGC.zip
> is from the parallel (UseParallelGC) collector and that collector is
> not subject to the "young generation guarantee".
>
> I don't see yet why the collections are starting in
> ProblematicFullGC.zip.
>
> Jon
>
> Alex Aisinzon wrote:
>
>> Hi all
>>
>> A customer of ours is experiencing instances whereby the Sun JDK
>> 1.4.2_16 on Windows goes through many Full GCs for no good reason.
>>
>> The Sun JDK parameters used are: -Xms1280m -Xmx1280m -XX:NewSize=500m
>> -XX:MaxNewSize=500m -XX:PermSize=150m -XX:MaxPermSize=150m -server
>> -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC
>>
>> I have enclosed a snippet of the garbage collection logs with minor GC
>>
>
>
>> before and after (ProblematicFullGC.zip).
>>
>> From timestamp 21928.044 to 21958.226 + 5 seconds aka 35 seconds, the
>> JVM goes through 8 Full GCs with hardly any time in between.
>>
>> To the users, the JVM is frozen. The JVM needs to get restarted to get
>>
>
>
>> back to a good state.
>>
>> The most surprising is that the new generation is almost empty (1 or 2
>>
>
>
>> MB max used out of 460MB) in all but the first Full GC and that there
>> is a lot of free space in the tenured generation (more than 400MB).
>>
>> Our thinking is that the JVM may be triggering a Full GC because of
>> the "Young Generation Guarantee".
>>
>> If such is the case, the behaviour is not consistent across platforms:
>>
>
>
>> we have run a similar load test in house with Sun JDK 1.4.2_16 on
>> Linux with the identical parameters ("-server -Xms1280m -Xmx1280m
>> -XX:NewSize=500m -XX:MaxNewSize=500m -XX:PermSize=150m
>> -XX:MaxPermSize=150m -XX:+PrintGCDetails -XX:+PrintHeapAtGC
>> -XX:+PrintGCTimeStamps -verbose:gc". In that case, the Full GCs occur
>> very normally though the tenured space is much fuller (140-180MB free
>> only). A snippet of the GC logs is enclosed at OKGC.zip. It shows
>> several Full GCs with a healthy dose of minor GC in between.
>>
>> So far, we have recommended to the customer that they use a smaller
>> New Generation, as this may make it less likely to get closer to the
>> "Young Generation Guarantee" threshold. Nevertheless, as the math is
>> not there for that "Young Generation Guarantee", we want to dig
>> further into this.
>>
>> Thanks in advance for any help.
>>
>> Alex Aisinzon
>>
>>
>>
> ------------------------------------------------------------------------
>
>> _______________________________________________
>> hotspot-gc-use mailing list
>> hotspot-gc-use at openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/hotspot-gc-use
>>
>>
> _______________________________________________
> 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-use
mailing list