CMS: "premature" minor GCs w/ ParNew
john.cuthbertson at oracle.com
Wed May 15 17:00:52 UTC 2013
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.
On 5/15/2013 8:05 AM, Vladimir Ivanov wrote:
> 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