[feat](docker)Modify the init_be and start_be scripts to meet the requirements for rapid Docker startup(Merge 2.1). (#45858)

### What problem does this PR solve?

Issue Number: close #xxx

Related PR: #45267

Master PR: #45269

Problem Summary:

To meet the needs of rapid Docker startup, I have made adjustments to
two related scripts in the Docker startup process. First, I added a env
`SKIP_CHECK_ULIMIT` to the `start_be.sh` script, which will skip the
size checks for `swap`, `ulimit`, and `max_map_count`. At the same time,
I used `--console` to start the process and print logs. The reason why I
did not use the `--daemon` daemon command to execute is that starting
with a foreground log printing method in a Docker container is the
correct and reliable approach.

At the same time, I added a check logic for a `be.conf` configuration
item in the `init_be.sh` script: if it is the first time starting,
append the export `SKIP_CHECK_ULIMIT=true` to skip the `ulimit` value
check in the BE process. In summary, these adjustments can meet the
basic requirements for rapid Docker startup usage.
This commit is contained in:
FreeOnePlus
2024-12-25 12:11:14 +08:00
committed by GitHub
parent 547e88b1ee
commit 980f28f9e2
2 changed files with 20 additions and 18 deletions

View File

@ -64,29 +64,30 @@ DORIS_HOME="$(
)"
export DORIS_HOME
if [[ "$(uname -s)" != 'Darwin' ]]; then
MAX_MAP_COUNT="$(cat /proc/sys/vm/max_map_count)"
if [[ "${MAX_MAP_COUNT}" -lt 2000000 ]]; then
echo "Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'."
exit 1
if [[ "${SKIP_CHECK_ULIMIT:- "false"}" != "true" ]]; then
if [[ "$(uname -s)" != 'Darwin' ]]; then
MAX_MAP_COUNT="$(cat /proc/sys/vm/max_map_count)"
if [[ "${MAX_MAP_COUNT}" -lt 2000000 ]]; then
echo "Please set vm.max_map_count to be 2000000 under root using 'sysctl -w vm.max_map_count=2000000'."
exit 1
fi
if [[ "$(swapon -s | wc -l)" -gt 1 ]]; then
echo "Please disable swap memory before installation."
exit 1
fi
fi
if [[ "$(swapon -s | wc -l)" -gt 1 ]]; then
echo "Please disable swap memory before installation."
MAX_FILE_COUNT="$(ulimit -n)"
if [[ "${MAX_FILE_COUNT}" -lt 60000 ]]; then
echo "Set max number of open file descriptors to a value greater than 60000."
echo "Ask your system manager to modify /etc/security/limits.conf and append content like"
echo " * soft nofile 655350"
echo " * hard nofile 655350"
echo "and then run 'ulimit -n 655350' to take effect on current session."
exit 1
fi
fi
MAX_FILE_COUNT="$(ulimit -n)"
if [[ "${MAX_FILE_COUNT}" -lt 60000 ]]; then
echo "Set max number of open file descriptors to a value greater than 60000."
echo "Ask your system manager to modify /etc/security/limits.conf and append content like"
echo " * soft nofile 655350"
echo " * hard nofile 655350"
echo "and then run 'ulimit -n 655350' to take effect on current session."
exit 1
fi
# add java libs
# Must add hadoop libs, because we should load specified jars
# instead of jars in hadoop libs, such as avro

View File

@ -161,6 +161,7 @@ _main() {
fi
check_be_status
doris_note "Ready to start BE!"
export SKIP_CHECK_ULIMIT=true
${DORIS_HOME}/be/bin/start_be.sh --console &
child_pid=$!
wait $child_pid