From e46d13e296d831a9731c04a04d9006e80d02875a Mon Sep 17 00:00:00 2001 From: Christos Malliaridis Date: Sun, 1 Dec 2024 04:23:23 +0100 Subject: [PATCH] Revert removal of default GC configuration --- solr/benchmark/jmh.sh | 2 +- solr/bin/solr | 3 ++- solr/bin/solr.cmd | 3 ++- solr/cross-dc-manager/bin/cross-dc-manager | 7 +++++++ solr/cross-dc-manager/bin/cross-dc-manager.cmd | 1 + solr/prometheus-exporter/bin/solr-exporter | 7 +++++++ solr/prometheus-exporter/bin/solr-exporter.cmd | 1 + .../configuration-guide/pages/system-info-handler.adoc | 2 ++ .../pages/monitoring-with-prometheus-and-grafana.adoc | 2 +- .../deployment-guide/pages/taking-solr-to-production.adoc | 2 +- 10 files changed, 25 insertions(+), 5 deletions(-) diff --git a/solr/benchmark/jmh.sh b/solr/benchmark/jmh.sh index 2027fd712a4..18f9875da19 100755 --- a/solr/benchmark/jmh.sh +++ b/solr/benchmark/jmh.sh @@ -52,7 +52,7 @@ echo "running JMH with args: $@" # MRM: I've also seen 15 claimed as a sweet spot. jvmArgs="-jvmArgs -Djmh.shutdownTimeout=5 -jvmArgs -Djmh.shutdownTimeout.step=3 -jvmArgs -Djava.security.egd=file:/dev/./urandom -jvmArgs -XX:+UnlockDiagnosticVMOptions -jvmArgs -XX:+DebugNonSafepoints -jvmArgs --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" -gcArgs="-jvmArgs -XX:+ParallelRefProcEnabled" +gcArgs="-jvmArgs -XX:+UseG1GC -jvmArgs -XX:+ParallelRefProcEnabled" # -jvmArgs -Dlog4j2.debug loggingArgs="-jvmArgs -Dlog4jConfigurationFile=./log4j2-bench.xml -jvmArgs -Dlog4j2.is.webapp=false -jvmArgs -Dlog4j2.garbagefreeThreadContextMap=true -jvmArgs -Dlog4j2.enableDirectEncoders=true -jvmArgs -Dlog4j2.enable.threadlocals=true" diff --git a/solr/bin/solr b/solr/bin/solr index f4b7e2c7060..38d7ed10d82 100755 --- a/solr/bin/solr +++ b/solr/bin/solr @@ -1187,7 +1187,8 @@ function start_solr() { # define default GC_TUNE if [ -z "${GC_TUNE}" ]; then - GC_TUNE_ARR=('-XX:+PerfDisableSharedMem' \ + GC_TUNE_ARR=('-XX:+UseG1GC' \ + '-XX:+PerfDisableSharedMem' \ '-XX:+ParallelRefProcEnabled' \ '-XX:MaxGCPauseMillis=250' \ '-XX:+UseLargePages' \ diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd index 0df856c2ac0..baa3ba47957 100755 --- a/solr/bin/solr.cmd +++ b/solr/bin/solr.cmd @@ -973,7 +973,8 @@ set SCRIPT_SOLR_OPTS=%SOLR_JAVA_STACK_SIZE% %SCRIPT_SOLR_OPTS% IF "%SOLR_TIMEZONE%"=="" set SOLR_TIMEZONE=UTC IF "%GC_TUNE%"=="" ( - set GC_TUNE=-XX:+PerfDisableSharedMem ^ + set GC_TUNE=-XX:+UseG1GC ^ + -XX:+PerfDisableSharedMem ^ -XX:+ParallelRefProcEnabled ^ -XX:MaxGCPauseMillis=250 ^ -XX:+UseLargePages ^ diff --git a/solr/cross-dc-manager/bin/cross-dc-manager b/solr/cross-dc-manager/bin/cross-dc-manager index 1dc4969af8d..82eea73b554 100755 --- a/solr/cross-dc-manager/bin/cross-dc-manager +++ b/solr/cross-dc-manager/bin/cross-dc-manager @@ -84,6 +84,13 @@ else JAVA_MEM_OPTS="-Xms$JAVA_HEAP -Xmx$JAVA_HEAP" fi +# define default GC_TUNE +if [ -z ${GC_TUNE+x} ]; then + GC_TUNE='-XX:+UseG1GC' +else + GC_TUNE="$GC_TUNE" +fi + # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` diff --git a/solr/cross-dc-manager/bin/cross-dc-manager.cmd b/solr/cross-dc-manager/bin/cross-dc-manager.cmd index 3506ef2a024..5be7731d133 100644 --- a/solr/cross-dc-manager/bin/cross-dc-manager.cmd +++ b/solr/cross-dc-manager/bin/cross-dc-manager.cmd @@ -65,6 +65,7 @@ set BASEDIR=%~dp0.. IF NOT "%JAVA_HEAP%"=="" set JAVA_MEM=-Xms%JAVA_HEAP% -Xmx%JAVA_HEAP% IF "%JAVA_MEM%"=="" set JAVA_MEM=-Xms512m -Xmx512m +IF "%GC_TUNE%"=="" set GC_TUNE=-XX:+UseG1GC if "%JAVACMD%"=="" set JAVACMD=java diff --git a/solr/prometheus-exporter/bin/solr-exporter b/solr/prometheus-exporter/bin/solr-exporter index 49b03c99492..20377c4b171 100755 --- a/solr/prometheus-exporter/bin/solr-exporter +++ b/solr/prometheus-exporter/bin/solr-exporter @@ -84,6 +84,13 @@ else JAVA_MEM_OPTS="-Xms$JAVA_HEAP -Xmx$JAVA_HEAP" fi +# define default GC_TUNE +if [ -z ${GC_TUNE+x} ]; then + GC_TUNE='-XX:+UseG1GC' +else + GC_TUNE="$GC_TUNE" +fi + # For Cygwin, switch paths to Windows format before running java if $cygwin; then [ -n "$CLASSPATH" ] && CLASSPATH=`cygpath --path --windows "$CLASSPATH"` diff --git a/solr/prometheus-exporter/bin/solr-exporter.cmd b/solr/prometheus-exporter/bin/solr-exporter.cmd index 26c20873882..c55133db616 100644 --- a/solr/prometheus-exporter/bin/solr-exporter.cmd +++ b/solr/prometheus-exporter/bin/solr-exporter.cmd @@ -65,6 +65,7 @@ set BASEDIR=%~dp0.. IF NOT "%JAVA_HEAP%"=="" set JAVA_MEM=-Xms%JAVA_HEAP% -Xmx%JAVA_HEAP% IF "%JAVA_MEM%"=="" set JAVA_MEM=-Xms512m -Xmx512m +IF "%GC_TUNE%"=="" set GC_TUNE=-XX:+UseG1GC if "%JAVACMD%"=="" set JAVACMD=java diff --git a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc index 745cb296741..afd8680858d 100644 --- a/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc +++ b/solr/solr-ref-guide/modules/configuration-guide/pages/system-info-handler.adoc @@ -173,6 +173,7 @@ curl http://localhost:8983/solr/admin/info/system "classpath":"start.jar", "commandLineArgs":["-Xms512m", "-Xmx512m", + "-XX:+UseG1GC", "-XX:+PerfDisableSharedMem", "-XX:+ParallelRefProcEnabled", "-XX:MaxGCPauseMillis=250", @@ -283,6 +284,7 @@ curl http://localhost:8983/solr/gettingstarted/admin/system "classpath":"start.jar", "commandLineArgs":["-Xms512m", "-Xmx512m", + "-XX:+UseG1GC", "-XX:+PerfDisableSharedMem", "-XX:+ParallelRefProcEnabled", "-XX:MaxGCPauseMillis=250", diff --git a/solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-with-prometheus-and-grafana.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-with-prometheus-and-grafana.adoc index 8be95297d75..006888ede88 100644 --- a/solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-with-prometheus-and-grafana.adoc +++ b/solr/solr-ref-guide/modules/deployment-guide/pages/monitoring-with-prometheus-and-grafana.adoc @@ -228,7 +228,7 @@ This is ignored if `JAVA_HEAP` is provided. + [%autowidth,frame=none] |=== -|Optional |Default: none +|Optional |Default: `-XX:+UseG1GC` |=== + Custom Java garbage collection settings. diff --git a/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc b/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc index b006fcd5b0e..4adb5fd6b57 100644 --- a/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc +++ b/solr/solr-ref-guide/modules/deployment-guide/pages/taking-solr-to-production.adoc @@ -193,7 +193,7 @@ The status command should give some basic information about the running Solr nod Tasks: 41 (limit: 25056) Memory: 517.1M CGroup: /system.slice/solr.service - └─3708 java -server -Xms256M -Xmx512M -XX:+PerfDisableSharedMem -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=250 -XX:+UseLargePages -XX:+AlwaysPreTouch -Xlog:gc*:file=/var/solr/logs/solr_gc.log:time,... + └─3708 java -server -Xms256M -Xmx512M -XX:+UseG1GC -XX:+PerfDisableSharedMem -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=250 -XX:+UseLargePages -XX:+AlwaysPreTouch -Xlog:gc*:file=/var/solr/logs/solr_gc.log:time,... Apr 16 20:41:47 localhost.localdomain systemd[1]: Starting Apache Solr... Apr 16 20:42:01 localhost.localdomain solr[3661]: [326B blob data] Apr 16 20:42:01 localhost.localdomain solr[3661]: Started Solr server on port 8983 (pid=3708). Happy searching!