Avoiding 1 long CMS with a big heap

Jon Masamitsu jon.masamitsu at oracle.com
Wed Apr 14 14:58:18 PDT 2010

On 04/14/10 14:15, Matt Khan wrote:
> .

> I still don't understand *why* the 2nd initial mark happened. I 
> thought CMS was only triggered once the occupation passed the 
> threshold (IIRC this is 50% by default), since occupation was actually 
> more like 10% or so then why did it even feel the need to do anything 
> at all?

CMS tries to project how early to start a cycle based on past
behavior.  When there hasn't been much data gathered about
collections, the projection can just be wrong.

> >> If you add -XX:+CMSScavengeBeforeRemark it will schedule a ParNew 
> collection before the remark.
> slightly naive Q.... why isn't this default behaviour? is it because a 
> "normal" heap has a bigger tenured than eden hence the cost isn't 
> skewed in the way I have it configured?

That would put a young gen collection and a remark back-to-back and users
see it as a single longer pause.  We work to keep space between those two

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20100414/dd4d0116/attachment.html 
-------------- next part --------------
hotspot-gc-use mailing list
hotspot-gc-use at openjdk.java.net

More information about the hotspot-gc-dev mailing list