From cbf1b1718f07024950cdcbf3f4bd4738a05d4f05 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Thu, 15 Oct 2020 03:50:50 +0530 Subject: [PATCH 1/2] packaging: enable Parallel Collector GC for management server The default GC algorithm G1 that is enabled by default with Java11 serves well on multiprocessor machines with large amount of memory where GC is probablistic with low pauses, where response time is more important than throughput and GC is kept shorter. The CloudStack management server is largely a multi-threaded server application that handles and orchestrates several network requests, and has the default max. heap size of only 2G that can be considered a small/medium application from a heap size perspective. Perhaps a more aggresive GC algorithm such as ParallelGC as used in Java8 and before (that is previous CloudStack releases) would serve better for throughput and cause more aggresive GC. Reference: https://docs.oracle.com/en/java/javase/11/gctuning/available-collectors.html#GUID-13943556-F521-4287-AAAA-AE5DE68777CD Signed-off-by: Rohit Yadav --- packaging/systemd/cloudstack-management.default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/systemd/cloudstack-management.default b/packaging/systemd/cloudstack-management.default index d59ebad9d748..672af9ed261a 100644 --- a/packaging/systemd/cloudstack-management.default +++ b/packaging/systemd/cloudstack-management.default @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -JAVA_OPTS="-Djava.security.properties=/etc/cloudstack/management/java.security.ciphers -Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:ErrorFile=/var/log/cloudstack/management/cloudstack-management.err " +JAVA_OPTS="-Djava.security.properties=/etc/cloudstack/management/java.security.ciphers -Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -XX:+UseParallelGC -Xmx2G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:ErrorFile=/var/log/cloudstack/management/cloudstack-management.err " CLASSPATH="/usr/share/cloudstack-management/lib/*:/etc/cloudstack/management:/usr/share/cloudstack-common:/usr/share/cloudstack-management/setup:/usr/share/cloudstack-management:/usr/share/java/mysql-connector-java.jar" From 8b6d985b30f8d1f4f06cf7b1f500fd4c83400acb Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Thu, 15 Oct 2020 14:56:14 +0530 Subject: [PATCH 2/2] add max pause millis to 500 Signed-off-by: Rohit Yadav --- packaging/systemd/cloudstack-management.default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/systemd/cloudstack-management.default b/packaging/systemd/cloudstack-management.default index 672af9ed261a..a431e8b20298 100644 --- a/packaging/systemd/cloudstack-management.default +++ b/packaging/systemd/cloudstack-management.default @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -JAVA_OPTS="-Djava.security.properties=/etc/cloudstack/management/java.security.ciphers -Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -XX:+UseParallelGC -Xmx2G -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:ErrorFile=/var/log/cloudstack/management/cloudstack-management.err " +JAVA_OPTS="-Djava.security.properties=/etc/cloudstack/management/java.security.ciphers -Djava.awt.headless=true -Dcom.sun.management.jmxremote=false -Xmx2G -XX:+UseParallelGC -XX:MaxGCPauseMillis=500 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/cloudstack/management/ -XX:ErrorFile=/var/log/cloudstack/management/cloudstack-management.err " CLASSPATH="/usr/share/cloudstack-management/lib/*:/etc/cloudstack/management:/usr/share/cloudstack-common:/usr/share/cloudstack-management/setup:/usr/share/cloudstack-management:/usr/share/java/mysql-connector-java.jar"