In the DS Administration Guide (5.5 onwards) and specifically in 19.3.2. Java Settings the following statements should be reviewed:
- under -Xmn and -XX:+UseConcMarkSweepGC references to the G1GC are made, which implies that G1GC is officially supported by the product. Although internally tested and used by a variety of customers either an official statement should be made that G1GC is supported or not. At this time no such statement exists for any platform product and all recommendations including those in KBAs are advising the usage of the CMS GC. In case G1GC is stated as officially supported it may be a good idea to have separate tuning sections for CMS and G1GC.Matt: Ludovic Poitou - what is the official statement regarding G1GC?
- the 6.0 and 6.5 version of the document states in the -server section to use the flag when Java is run in 32-bit mode: Matt: -server and -d64 are default nowadays. I don't think it's even possible to download or use a 32-bit JVM any more
- the -d64 option is omitted in the 6.0 and 6.5 documentation. The recommendation to use 64-bit has though been used already since 5.0 (2.4. Preparing the Java Environment). Matt: -d32 is no longer supported AFAIK. See above
- the -Xmn option, stated to be used when using CMS, states to be set to 512M. It may be advisable to state to start with 3/8 of the overall heap size in the tuning exercise. Matt: 3/8 is not a good choice for large heaps - it'll just waste memory that could be used for the DB cache. I suggest not setting this option for small heaps (<2G) or at least setting it to a smaller value than 512M
- the -XX:MaxTenuringThreshold option is explained as "Force an OpenDJ server to only create objects that have either a short lifetime, or a long lifetime.". A less confusing statement might be to note, that the MaxTenuringThreshold value states the number of times a surviving object is copied into another survivor space before copied into the old generation. In addition: using a setting of 1 is not always desirable and depends on the role the DS instance is taking on. Matt: I'd like to know which use cases require a different setting. I'm not aware of any