This is an automated email from the ASF dual-hosted git repository.
jinsongzhou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new 03131c947 [Improvement] Add JDK8+ support for `optimizer.sh` (#3702)
03131c947 is described below
commit 03131c947fb4800900aa53cd5fcf53c69d526164
Author: CatchYouIfICan <[email protected]>
AuthorDate: Thu Jul 31 14:51:25 2025 +0800
[Improvement] Add JDK8+ support for `optimizer.sh` (#3702)
[Improvement] Add jvm parameter to optimizer.sh
---
dist/src/main/amoro-bin/bin/optimizer.sh | 40 +++++++++++++++++++++++++++++++-
1 file changed, 39 insertions(+), 1 deletion(-)
diff --git a/dist/src/main/amoro-bin/bin/optimizer.sh
b/dist/src/main/amoro-bin/bin/optimizer.sh
index 5d2af0f76..19b598b06 100755
--- a/dist/src/main/amoro-bin/bin/optimizer.sh
+++ b/dist/src/main/amoro-bin/bin/optimizer.sh
@@ -44,7 +44,45 @@ if [ ! -f $STDERR_LOG ];then
touch $STDERR_LOG
fi
-JAVA_OPTS="-Xmx$2m -Dlog.home=${OPTIMIZER_LOG_DIR}"
+# get jdk major version(such as 8, 11, 17)
+JAVA_VERSION=$(java -version 2>&1 | head -1 | cut -d'"' -f2 | cut -d'.' -f1)
+
+# base jvm parameter
+BASE_JVM_OPTS="-server -XX:+UseG1GC -Xmx$2m \
+-Dlog4j.configurationFile=${OPTIMIZER_LOG_CONF_FILE}
-Dlog.home=${OPTIMIZER_LOG_DIR} \
+-XX:+ExitOnOutOfMemoryError -XX:MaxGCPauseMillis=200"
+
+# set jvm gc log parameter according jdk major version
+if [ "$JAVA_VERSION" -eq "8" ]; then
+ GC_LOG_OPTS="-verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps \
+ -Xloggc:${OPTIMIZER_LOG_DIR}/gc.log \
+ -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M"
+else
+
GC_LOG_OPTS="-Xlog:gc*,gc+heap*,gc+metaspace*:file=${OPTIMIZER_LOG_DIR}/gc-%t.log::filecount=10,filesize=10M:time,level,tags"
+fi
+
+# jdk 9+ add-opens
+if [ "$JAVA_VERSION" -ge "9" ]; then
+ MODULE_OPTS="--add-opens=java.base/java.lang=ALL-UNNAMED \
+ --add-opens=java.base/java.lang.invoke=ALL-UNNAMED \
+ --add-opens=java.base/java.lang.reflect=ALL-UNNAMED \
+ --add-opens=java.base/java.io=ALL-UNNAMED \
+ --add-opens=java.base/java.net=ALL-UNNAMED \
+ --add-opens=java.base/java.nio=ALL-UNNAMED \
+ --add-opens=java.base/java.util=ALL-UNNAMED \
+ --add-opens=java.base/java.util.concurrent=ALL-UNNAMED \
+ --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED \
+ --add-opens=java.base/sun.nio.ch=ALL-UNNAMED \
+ --add-opens=java.base/sun.nio.cs=ALL-UNNAMED \
+ --add-opens=java.base/sun.security.action=ALL-UNNAMED \
+ --add-opens=java.base/sun.util.calendar=ALL-UNNAMED"
+else
+ MODULE_OPTS=""
+fi
+
+# merge parameter
+JAVA_OPTS="$BASE_JVM_OPTS $GC_LOG_OPTS $MODULE_OPTS"
+
RUN_SERVER="org.apache.amoro.optimizer.standalone.StandaloneOptimizer"
CMDS="$JAVA_RUN $JAVA_OPTS $RUN_SERVER $ARGS"