版本:2.1.7
安装方式:k8s
问题描述: doris2.1.7执行insert into 有时会将3个be同时搞挂,pod退出码为137,BE日志非常正常,此码说明内存超了,但是我配置的内存是没有超的,配置的最大内存是32G,但是top看到内存才7G
以下是具体信息:
执行SQL
set batch_size = 100;
-- 这个SQL中 有一个字段可能非常大
insert into ods.asset_struct_msg select pt,`database`,`table`,`begin`,`fields`,receive_time,src,ts from paimon.ods.asset_struct_msg where pt between '20250101' and '20251001';
现象:一执行,过几秒钟3个be节点部同时重启
be.conf:
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Xmx24576m -DlogPath=$DORIS_HOME/log/jni.log -Xloggc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -DJDBC_MIN_POOL=1 -DJDBC_MAX_POOL=100 -DJDBC_MAX_IDLE_TIME=300000 -DJDBC_MAX_WAIT_TIME=5000"
# For jdk 9+, this JAVA_OPTS will be used as default JVM options
JAVA_OPTS_FOR_JDK_9="-Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Xmx24576m -DlogPath=$DORIS_HOME/log/jni.log -Xlog:gc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -DJDBC_MIN_POOL=1 -DJDBC_MAX_POOL=100 -DJDBC_MAX_IDLE_TIME=300000 -DJDBC_MAX_WAIT_TIME=5000"
JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:15000,dirty_decay_ms:15000,oversize_threshold:0,lg_tcache_max:20,prof:false,lg_prof_interval:32,lg_prof_sample:19,prof_gdump:false,prof_accum:false,prof_leak:false,prof_final:false"
JEMALLOC_PROF_PRFIX=""
# INFO, WARNING, ERROR, FATAL
sys_log_level = INFO
内存配置还是很大的
k8s分配的be资源是8C32G 查看内存又非常正常, 以下可以看到,重启前最后的top信息
BE退出时日志: