From 0fca30fcf466630214d2198b524658622900a95a Mon Sep 17 00:00:00 2001 From: Christos Malliaridis Date: Tue, 29 Oct 2024 13:49:48 +0100 Subject: [PATCH 1/3] Use new unified GC options and remove -XX:+UseG1GC Starting from JDK 9, G1 is the default GC. This commit fixes the issue of unrecognized VM options. --- solr/benchmark/jmh.sh | 2 +- solr/bin/solr | 24 +++---------------- solr/bin/solr.cmd | 10 ++------ solr/bin/solr.in.cmd | 5 ++-- solr/bin/solr.in.sh | 10 ++------ solr/cross-dc-manager/bin/cross-dc-manager | 7 ------ .../cross-dc-manager/bin/cross-dc-manager.cmd | 1 - solr/prometheus-exporter/bin/solr-exporter | 7 ------ .../prometheus-exporter/bin/solr-exporter.cmd | 1 - .../pages/system-info-handler.adoc | 2 -- ...onitoring-with-prometheus-and-grafana.adoc | 2 +- .../pages/taking-solr-to-production.adoc | 2 +- 12 files changed, 12 insertions(+), 61 deletions(-) diff --git a/solr/benchmark/jmh.sh b/solr/benchmark/jmh.sh index 18f9875da19..2027fd712a4 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:+UseG1GC -jvmArgs -XX:+ParallelRefProcEnabled" +gcArgs="-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 812972bf6af..edf28bf81b6 100755 --- a/solr/bin/solr +++ b/solr/bin/solr @@ -1052,26 +1052,9 @@ if [[ -n ${SOLR_DATA_HOME:-} ]] && [ ! -e "$SOLR_DATA_HOME" ]; then exit 1 fi -# Establish default GC logging opts if no env var set (otherwise init to sensible default) +# Establish default GC logging opts if no env var set if [ -z "${GC_LOG_OPTS}" ]; then - GC_LOG_OPTS=('-Xlog:gc*') -fi - -# if verbose gc logging enabled, setup the location of the log file and rotation -if [ "${#GC_LOG_OPTS[@]}" -gt 0 ]; then - if [ "$JAVA_VENDOR" == "OpenJ9" ]; then - GC_LOG_OPTS+=("-Xverbosegclog:$SOLR_LOGS_DIR/solr_gc.log" '-XX:+UseGCLogFileRotation' '-XX:NumberOfGCLogFiles=9' '-XX:GCLogFileSize=20M') - else - # https://openjdk.java.net/jeps/158 - for i in "${!GC_LOG_OPTS[@]}"; - do - # for simplicity, we only look at the prefix '-Xlog:gc' - # (if 'all' or multiple tags are used starting with anything other then 'gc' the user is on their own) - # if a single additional ':' exists in param, then there is already an explicit output specifier - # shellcheck disable=SC2001 - GC_LOG_OPTS[$i]=$(echo "${GC_LOG_OPTS[$i]}" | sed "s|^\(-Xlog:gc[^:]*$\)|\1:file=$SOLR_LOGS_DIR/solr_gc.log:time,uptime:filecount=9,filesize=20M|") - done - fi + GC_LOG_OPTS=("-Xlog:gc*:file=$SOLR_LOGS_DIR\solr_gc.log:time,level,tags:filecount=9,filesize=20M") fi if [ "${SOLR_MODE:-}" == 'solrcloud' ]; then @@ -1202,8 +1185,7 @@ function start_solr() { # define default GC_TUNE if [ -z "${GC_TUNE}" ]; then - GC_TUNE_ARR=('-XX:+UseG1GC' \ - '-XX:+PerfDisableSharedMem' \ + GC_TUNE_ARR=('-XX:+PerfDisableSharedMem' \ '-XX:+ParallelRefProcEnabled' \ '-XX:MaxGCPauseMillis=250' \ '-XX:+UseLargePages' \ diff --git a/solr/bin/solr.cmd b/solr/bin/solr.cmd index d6ff9e62492..7167b1e3e9c 100755 --- a/solr/bin/solr.cmd +++ b/solr/bin/solr.cmd @@ -996,8 +996,7 @@ 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:+UseG1GC ^ - -XX:+PerfDisableSharedMem ^ + set GC_TUNE=-XX:+PerfDisableSharedMem ^ -XX:+ParallelRefProcEnabled ^ -XX:MaxGCPauseMillis=250 ^ -XX:+UseLargePages ^ @@ -1009,12 +1008,7 @@ REM Add vector optimizations module set SCRIPT_SOLR_OPTS=%SCRIPT_SOLR_OPTS% --add-modules jdk.incubator.vector IF "%GC_LOG_OPTS%"=="" ( - set GC_LOG_OPTS="-Xlog:gc*" -) -if "%JAVA_VENDOR%" == "OpenJ9" ( - set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xverbosegclog:!SOLR_LOGS_DIR!\solr_gc.log" -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M -) else ( - set GC_LOG_OPTS=!GC_LOG_OPTS! "-Xloggc:!SOLR_LOGS_DIR!\solr_gc.log" -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=9 -XX:GCLogFileSize=20M + set GC_LOG_OPTS="-Xlog:gc*:file=!SOLR_LOGS_DIR!\solr_gc.log:time,level,tags:filecount=9,filesize=20M" ) IF "%verbose%"=="1" ( diff --git a/solr/bin/solr.in.cmd b/solr/bin/solr.in.cmd index 9c2d9822eb2..0e48ca4834d 100755 --- a/solr/bin/solr.in.cmd +++ b/solr/bin/solr.in.cmd @@ -39,9 +39,8 @@ REM Increase Java Min/Max Heap as needed to support your indexing / query needs REM set SOLR_JAVA_MEM=-Xms512m -Xmx512m REM Configure verbose GC logging: -REM For Java 8: if this is set, additional params will be added to specify the log file & rotation -REM For Java 9 or higher: GC_LOG_OPTS is currently not supported unless you are using OpenJ9. Otherwise if you set it, the startup script will exit with failure. -REM set GC_LOG_OPTS=-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime +REM Settings this value overrides the default configuration. +REM set GC_LOG_OPTS=-Xlog:gc*:time,level,tags,heap,tenuring,stop:filecount=9,filesize=20M REM Various GC settings have shown to work well for a number of common Solr workloads. REM See solr.cmd GC_TUNE for the default list. diff --git a/solr/bin/solr.in.sh b/solr/bin/solr.in.sh index 9d83a48c1c2..1834f29668c 100644 --- a/solr/bin/solr.in.sh +++ b/solr/bin/solr.in.sh @@ -39,15 +39,9 @@ #SOLR_JAVA_MEM="-Xms512m -Xmx512m" # Enable verbose GC logging... -# * If this is unset, various default options will be selected depending on which JVM version is in use -# * For Java 8: if this is set, additional params will be added to specify the log file & rotation -# * For Java 9 or higher: each included opt param that starts with '-Xlog:gc', but does not include an -# output specifier, will have a 'file' output specifier (as well as formatting & rollover options) -# appended, using the effective value of the SOLR_LOGS_DIR. +# If this is unset, various default options will be selected depending on which JVM version is in use # -#GC_LOG_OPTS='-Xlog:gc*' # (Java 9+) -#GC_LOG_OPTS="-verbose:gc -XX:+PrintHeapAtGC -XX:+PrintGCDetails \ -# -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintTenuringDistribution -XX:+PrintGCApplicationStoppedTime" +#GC_LOG_OPTS='-Xlog:gc*:time,level,tags,heap,tenuring,stop:filecount=9,filesize=20M' # These GC settings have shown to work well for a number of common Solr workloads #GC_TUNE=" \ diff --git a/solr/cross-dc-manager/bin/cross-dc-manager b/solr/cross-dc-manager/bin/cross-dc-manager index 82eea73b554..1dc4969af8d 100755 --- a/solr/cross-dc-manager/bin/cross-dc-manager +++ b/solr/cross-dc-manager/bin/cross-dc-manager @@ -84,13 +84,6 @@ 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 5be7731d133..3506ef2a024 100644 --- a/solr/cross-dc-manager/bin/cross-dc-manager.cmd +++ b/solr/cross-dc-manager/bin/cross-dc-manager.cmd @@ -65,7 +65,6 @@ 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 452e597ab55..61144d20cf5 100755 --- a/solr/prometheus-exporter/bin/solr-exporter +++ b/solr/prometheus-exporter/bin/solr-exporter @@ -84,13 +84,6 @@ 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 7e9dd2a91f2..5216403d019 100644 --- a/solr/prometheus-exporter/bin/solr-exporter.cmd +++ b/solr/prometheus-exporter/bin/solr-exporter.cmd @@ -65,7 +65,6 @@ 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 afd8680858d..745cb296741 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,7 +173,6 @@ curl http://localhost:8983/solr/admin/info/system "classpath":"start.jar", "commandLineArgs":["-Xms512m", "-Xmx512m", - "-XX:+UseG1GC", "-XX:+PerfDisableSharedMem", "-XX:+ParallelRefProcEnabled", "-XX:MaxGCPauseMillis=250", @@ -284,7 +283,6 @@ 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 898be24b339..13d029eb8b5 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: `-XX:+UseG1GC` +|Optional |Default: none |=== + 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 4adb5fd6b57..b006fcd5b0e 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:+UseG1GC -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:+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! From e46d13e296d831a9731c04a04d9006e80d02875a Mon Sep 17 00:00:00 2001 From: Christos Malliaridis Date: Sun, 1 Dec 2024 04:23:23 +0100 Subject: [PATCH 2/3] 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! From 3e719866b06512270fcd249287c4defe0fd48992 Mon Sep 17 00:00:00 2001 From: Christos Malliaridis Date: Mon, 23 Dec 2024 19:29:42 +0100 Subject: [PATCH 3/3] Fix wrong path separator in bin/solr --- solr/bin/solr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/solr/bin/solr b/solr/bin/solr index 73b5b516338..6df002eaf22 100755 --- a/solr/bin/solr +++ b/solr/bin/solr @@ -1053,7 +1053,7 @@ fi # Establish default GC logging opts if no env var set if [ -z "${GC_LOG_OPTS}" ]; then - GC_LOG_OPTS=("-Xlog:gc*:file=$SOLR_LOGS_DIR\solr_gc.log:time,level,tags:filecount=9,filesize=20M") + GC_LOG_OPTS=("-Xlog:gc*:file=$SOLR_LOGS_DIR/solr_gc.log:time,level,tags:filecount=9,filesize=20M") fi if [ "${SOLR_MODE:-}" == 'solrcloud' ]; then