CMS: "premature" minor GCs w/ ParNew

John Cuthbertson john.cuthbertson at oracle.com
Wed May 15 17:00:52 UTC 2013


Hi Vladimir,

Can you run with an early access jdk8? If so then enable the flag 
PrintGCCause and you should get the reasons for these GCs. How do the 
timestamps of these premature GCs compare to the previous GC? Are they 
back to back with a non-premature GC? Does it look like the application 
didn't run between a normal GC and the premature GC? You can use 
PrintGCApplicationConcurrentTime and PrintGCApplicationStoppedTime to 
see how long the application runs between safepoints.

These premature GCs could be GC locker related. When the last thread 
exits a critical region there is a slight window before the GC locker 
initiated GC where another application can nip in and successfully 
schedule a regular GC.

JohnC

On 5/15/2013 8:05 AM, Vladimir Ivanov wrote:
> Hi,
>
> I see minor GCs occurring when young gen occupancy is very low, e.g.:
> [ParNew: 8446K->7381K(943744K), 0.0274200 secs]
>
> Does anybody know what provokes such "premature" GCs?
>
> There's no CMS concurrent cycle running or any other interesting GC 
> events occurred around that moment - just a sequence of minor GCs with 
> such outlier.
>
> Such premature minor GCs occur on a regular basis.
>
> JDK version: 6u37, 64-Bit Server VM (20.12-b01, mixed mode)
>
> Best regards,
> Vladimir Ivanov




More information about the hotspot-gc-dev mailing list