If you are a Managed Hosting customer, this topic doesn't apply to you.

The Java Virtual Machine (JVM) contains non-standard HotSpot VM options that are used to improve virtual machine behavior, performance, and debugging. Non-standard options are prefixed with -XX.

Many non-standard options are available that can provide greater throughput and reduce overall latency. Use tuning exercises to determine which options are best suited for the conditions in your production environment. Use different logging options to provide insight into the value of each option. Given the variety of options and the chance that these options may change from release to release, Blackboard recommends testing them in your environments based on the output found in the garbage collections logs.

Some of these options are platform-specific and will not work across all certified Blackboard operating system platforms. In addition, these options can change across releases and patches, so pay close attention when using them.

The following table describes the options that are applicable to Java 11 JVMs.

JVM Option Description
-XX:+UseG1GC Under Java 11, Learn will use the Garbage First Garbage Collector (G1 GC) garbage collector by default. The G1 GC uses concurrent and parallel phases to achieve its target pause time and to maintain good throughput.
-XX:+UseParNewGC This is used in conjunction with the concurrent collector on multiprocessor machines to enable young generation collection.
-XX:ParallelGCThreads Sets the value of the STW worker threads. Sets the value of n to the number of logical processors. The value of n is the same as the number of logical processors up to a value of 8.
-XX:ConcGCThreads Number of threads concurrent garbage collectors will use. Sets the number of parallel marking threads. Sets n to approximately 1/4 of the number of parallel garbage collection threads (ParallelGCThreads). The default value varies with the platform on which the JVM is running.
-XX:NewRatio This option sets the size ratio between young and old generational spaces. This is typically set to a value between 2 and 4 depending on garbage collection patterns.
-XX:NewSize, -XX:MaxNewSize This option sets the explicit size for the young generation space. This parameter requires explicit sizes, and is recommended in place of the -XX:NewRatio parameter for resizing the new generation space of the JVM.
-XX:MetaspaceSize, -XX:MaxMetaspaceSize -XX:MetaspaceSize=n sets the initial (and minimum size) of the Metaspace and -XX:MaxMetaspaceSize=n sets the maximum size of the Metaspace.

The following table describes the JVM options that are no longer supported or applicable under Java 11.

JVM Option Description
-XX:+UseConcMarkSweepsGC The Concurrent Mark Sweep (CMS) garbage collector, is deprecated as of Java 9 with the intent to stop supporting it in a future major release. Use -XX:+UseG1GC instead.
-XX:-UseParNewGC Support for Copy Deprecated along with the Concurrent Mark Sweep collector.
-XX:+PrintGCDetails, -XX:+PrintGCDateStamps These garbage collection logging options are removed. Java 9 and later implement the Unified JVM logging (See http://openjdk.java.net/jeps/158#Command-line-options). In Learn, GC logging options are located in tomcat/conf/wrapper.conf.bb with wrapper.java.additional.25=-Xlog:gc*:../../../logs/tomcat/gc.log:time.
-XX:PermSize, -XX:MaxPermSize The need to tune Permanent Generation (PermGen) space is removed from Java 8 and later. Replaced by a new space called Metaspace. See -XX:MetaspaceSize and -XX:MaxMetaspaceSize.

To learn more about the JVM options supported by Java 9 or later, see https://docs.oracle.com/javase/9/tools/java.htm