Monday July 13, 2009
G1 Collector
In 6u14, a preliminary version of the new Garbage First (G1) garbage collector is included.
Garbage First, or G1, is a low pause, server style garbage collector targeted for multi-processors with large memories. G1's primary advantages over the Concurrent Mark-Sweep (CMS) collector include incremental compaction, better predictability and ease of use.
For using G1, need to specify following command line options:
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC
The following options can be used to affect G1's behavior:
* To set the max GC pause time goal in milliseconds that G1 will attempt to meet:
-XX:MaxGCPauseMillis=n
* To set the time interval over which GC pauses totaling up to MaxGCPauseMillis may take place:
-XX:GCPauseIntervalMillis=n
Posted at 08:35AM Jul 13, 2009 by poonam in Sun | Comments[0]
Sunday July 12, 2009
Important CMS Fixes
In this entry, I would like to talk about some CMS (Concurrent Mark Sweep) issues, their workarounds and the releases these are fixed in.
* 6558100: CMS crash following parallel work queue overflow.
This crash is seen when -XX:+ParallelRefProcEnabled is set.
Workaround is to use -XX:-ParallelRefProcEnabled.
This is fixed in 1.4.2_17, 5.0u14 and 6u4
* 6578335: CMS: BigApps failure with -XX:CMSInitiatingOccupancyFraction=1
-XX:+CMSMarkStackOverflowALot.
For clarity sake, this issue was broken into three separate bugs 6722112, 6722113 and 6722116.
* 6722112: CMS: Incorrect encoding of overflown ObjectArrays during concurrent precleaning.
Workaround is to use -XX:-CMSPrecleaningEnabled and also increasing the size of the marking stack via -XX:CMSMarkStackSize{,Max} would reduce the probability of hitting this bug.
This is fixed in 1.4.2_19-rev-b09, 5.0u18-rev-b03, 6u7-rev-b15 and 6u12.
* 6722113: CMS: Incorrect overflow handling during Precleaning of Reference lists.
Workaround is to use options -XX:-CMSPrecleanRefLists1 and -XX:-CMSPrecleanRefLists2
This is fixed in 6u14, 5.0u18-rev-b05 and 6u13-rev-b05.
* 6722116: CMS: Incorrect overflow handling when using parallel concurrent marking.
Workaround is to switch off parallel concurrent marking with -XX:-CMSConcurrentMTEnabled. Also increasing the CMS marking stack size (-XX:CMSMarkStackSize, -XX:CMSMarkStackSizeMax) would reduce the probability of hitting this bug.
This is fixed in 6u7-rev-b15 and 6u12.
So, if you face any of these above crashes, please upgrade to the JDK version in which it is fixed. And if upgrade is not possible, workaround can be used to avoid the issue.
Please note that Java SE for Business support contract is required for using Revision Releases (e.g. 1.4.2_19-rev-b09).
Posted at 03:46PM Jul 12, 2009 by poonam in Sun | Comments[0]