From 31c689cd09787e6ba8cb19f18d4fd14789ce3a75 Mon Sep 17 00:00:00 2001 From: Lei Zhang <27994433+SWJTU-ZhangLei@users.noreply.github.com> Date: Mon, 25 Dec 2023 17:40:34 +0800 Subject: [PATCH] [feature](script) Add check_jvm_xmx for `start_fe.sh` * When -Xmx is configured more than 90% of total physical memory, start_fe.sh will not allowed to start, because fe maybe been killed by operating system with a high probability. --- bin/start_fe.sh | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/bin/start_fe.sh b/bin/start_fe.sh index f52e47c93ed90f9..2e96de5497b3fe1 100755 --- a/bin/start_fe.sh +++ b/bin/start_fe.sh @@ -197,6 +197,24 @@ fi echo "using java version ${java_version}" >>"${LOG_DIR}/fe.out" echo "${final_java_opt}" >>"${LOG_DIR}/fe.out" +function check_jvm_xmx() { + local os_type=$(uname -s) + if [[ "${os_type}" == "Linux" ]]; then + local total_mem_byte="$(free -b | grep Mem | awk '{print $2}')" + local jvm_xmx_byte="$(${JAVA} ${final_java_opt} -XX:+PrintFlagsFinal -version 2>&1 | awk '/MaxHeapSize/ {print $4}')" + local total_mem_mb=$(($total_mem_byte / 1024 / 1024)) + local ninety_percent_mem_mb=$(($total_mem_byte / 10 * 9 / 1024 / 1024)) + local jvm_xmx_mb=$(($jvm_xmx_byte / 1024 / 1024)) + + if [ ${jvm_xmx_mb} -gt ${ninety_percent_mem_mb} ]; then + echo "java opt -Xmx is more than 90% of total physical memory" + echo "total_mem_mb:${total_mem_mb}MB ninety_percent_mem_mb:${ninety_percent_mem_mb}MB jvm_xmx_mb:${jvm_xmx_mb}MB" + exit 1; + fi + fi +} +check_jvm_xmx + # add libs to CLASSPATH DORIS_FE_JAR= for f in "${DORIS_HOME}/lib"/*.jar; do