CMS-Initial-Mark 时间过长解决

During   initial mark CMS should collect all root references to start marking of old space. This includes:
References from thread stacks,
References from young space.
References from stacks are usually collected very quickly (less than 1ms), but time to collect references from young space depends on size of objects in young space. Normally initial mark starts right after young space collection, so Eden space is empty and only live objects are in one of survivor space. Survivor space is usually small and initial mark after young space collection often takes less than millisecond. But if initial mark is started when Eden is full it may take quite long (usually longer than young space collection itself).
Once CMS collection is triggered, JVM may wait some time for young collection to happen before it will start initial marking. JVM configuration option –XX:CMSWaitDuration=<t> can be used to set how long CMS will wait for young space collection before start of initial marking. If you want to avoid long initial marking pauses, you should configure this time to be longer than typical period of young collections in your application.
http://stackoverflow.com/questions/10669482/parnew-and-cms-initial-corelation
http://blog.ragozin.info/2011/06/understanding-gc-pauses-in-jvm-hotspots_02.html


你可能感兴趣的:(init)