This is an automated email from the ASF dual-hosted git repository.
yiguolei pushed a commit to branch branch-1.1-lts
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/branch-1.1-lts by this push:
new 675166711a [improvement](memory) set TCMALLOC_HEAP_LIMIT_MB to control
memory consumption of tcmalloc (#12981)
675166711a is described below
commit 675166711a84e060365c822260866d89f0d11a01
Author: Yongqiang YANG <[email protected]>
AuthorDate: Wed Sep 28 15:44:18 2022 +0800
[improvement](memory) set TCMALLOC_HEAP_LIMIT_MB to control memory
consumption of tcmalloc (#12981)
---
bin/start_be.sh | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/bin/start_be.sh b/bin/start_be.sh
index ca9bdd483f..903f8c5405 100755
--- a/bin/start_be.sh
+++ b/bin/start_be.sh
@@ -117,6 +117,39 @@ fi
export
ASAN_OPTIONS=symbolize=1:abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1
export UBSAN_OPTIONS=print_stacktrace=1
+## set TCMALLOC_HEAP_LIMIT_MB to limit memory used by tcmalloc
+set_tcmalloc_heap_limit() {
+ total_mem_mb=$(free -m | grep Mem | awk '{print $2}')
+ mem_limit_str=$(grep ^mem_limit "${DORIS_HOME}"/conf/be.conf)
+ digits_unit=${mem_limit_str##*=}
+ digits_unit="${digits_unit#"${digits_unit%%[![:space:]]*}"}"
+ digits_unit="${digits_unit%"${digits_unit##*[![:space:]]}"}"
+ digits=${digits_unit%%[^[:digit:]]*}
+ unit=${digits_unit##*[[:digit:] ]}
+
+ mem_limit_mb=0
+ case ${unit} in
+ t | T) mem_limit_mb=$((digits * 1024 * 1024)) ;;
+ g | G) mem_limit_mb=$((digits * 1024)) ;;
+ m | M) mem_limit_mb=$((digits)) ;;
+ k | K) mem_limit_mb=$((digits / 1024)) ;;
+ %) mem_limit_mb=$((total_mem_mb * digits / 100)) ;;
+ *) mem_limit_mb=$((digits / 1024 / 1024 / 1024)) ;;
+ esac
+
+ if [[ "${mem_limit_mb}" -eq 0 ]]; then
+ mem_limit_mb=$((total_mem_mb * 80 / 100))
+ fi
+
+ if [[ "${mem_limit_mb}" -gt "${total_mem_mb}" ]]; then
+ echo "mem_limit is larger than whole memory of the server.
${mem_limit_mb} > ${total_mem_mb}."
+ return 1
+ fi
+ export TCMALLOC_HEAP_LIMIT_MB=${mem_limit_mb}
+}
+
+set_tcmalloc_heap_limit || exit 1
+
if [ ${RUN_DAEMON} -eq 1 ]; then
nohup $LIMIT ${DORIS_HOME}/lib/doris_be "$@" >> $LOG_DIR/be.out 2>&1 <
/dev/null &
else
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]