生产环境3.0.2版本FE连续3天崩溃

【详述】FE宕机
【背景】
【业务影响】
【StarRocks版本】3.0.2
【集群规模】2fe +2be(fe与be混部)
【机器信息】72C/376G/万兆
【联系方式】社区群3: 阿坚
【附件】
fe.out
fe.out.txt (17.2 KB)

fe.warn

fe.warn.txt (19.6 KB)

fe.conf中java配置

JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx32768m -XX:+UseMembar -XX:Survivv
orRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails
-XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSPP
arallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMM
SPerMB=0 -Xloggc:${LOG_DIR}/fe.gc.log.$DATE -XX:+PrintConcurrentLocks"

fe.log中搜 starting,日志上下附近看看有没有一些报错信息

这是昨天fe崩溃的时间点附近的fe.log,里面有几个WARN,有一行 ‘catch a execute exception’
fe.log.txt (74.1 KB)

这是 8月26号18点24左右一台fe崩溃时的日志
fe.log-0826 1824.txt (23.4 KB)

这个是0827号宕机的fe.log日志
fe.log-0827 0210.txt (48.3 KB)

当前集群的 tablet 个数多么,写入频繁么,show backends; 看下结果

当前集群每个小时会有近百个任务通过brokerload的方式进行导入。
目前是greenplum集群计算出来的数据通过pxf写入starrocks集群所在机器上的hdfs上,然后再用brokerload方式导入表中

最近7天的cpu负载,峰值最高能达到23倍

cpu使用率


内存情况

磁盘读写情况

根据fe.log中的日志看,初步判断是 fe的jvm内存不够,可能是Leader节点内存使用过高发生了Full GC,也可能是Follower节点内存使用过高发生了Full GC。

目前看2个be,单个be上的tablet个数有 52万多个,但是集群数据量不大,说明存在非常多的tablet个数设置不合理的表。过多的tablet容易造成fe内存压力大。

看看fe的jvm内存监控情况,以及看看 fe.gc.log 是否触发了 full gc 或者 gc时间超过60秒

这个最近发生full gc是在8月28号的10点半左右有那么几次,然后11:18时,fe崩溃的,崩溃前是没有发生fullgc的,然后执行时间基本上再20s左右,其它时间就没有fullgc了

这个tablet的话,我们单台机器: 72c+376g+6块ssd ,一共两台机器,建表时指定BUCKETS 24,然后基本都是分区表,这个不合理吗?

buckets个数根据数据量来,2.4以上的版本 单个桶最大可以达到10G,一般 100M-1G左右,避免tablet个数太多

如果提高FE内存,能暂时解决崩溃问题不~

这是交换区还开着么,需要关掉交换区。可以参考检查下机器系统参数。

先调大 fe的jvm 大小,观察一段时间看是否还会频繁重启

是Follower挂了,还是Leader挂了

如果是Folloer的话,这个版本有Follower内存泄漏的问题: 常见 Crash / BUG / 优化 查询

leader和follow都挂过,我暂时先调大一下内存,后续升级

gc日志能发下吗,先定位下问题