[求助]fe中GC (Allocation Failure)导致的young gc特别多

【详述】fe内存配置6g,jvm其他参数采用默认参数未特殊设置。
3天左右下来,发现gc日志中GC (Allocation Failure)导致的young gc特别多,多达14892多次。
而老年代和新生代的内存占比将近9:1。
目前集群压力不大虽然未影响性能,但想请教下是否可以更合理配置gc参数,比如是否需要调大年轻代大小?应该以何种比例来配置?是否有经验值可以参考?
具体如下:
Java HotSpot™ 64-Bit Server VM (25.321-b07) for linux-amd64 JRE (1.8.0_321-b07), built on Dec 15 2021 19:16:05 by “java_re” with gcc 7.3.0
Memory: 4k page, physical 8154128k(6090992k free), swap 0k(0k free)
CommandLine flags: -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:-CMSParallelRemarkEnabled -XX:InitialHeapSize=130466048 -XX:MaxHeapSize=6442450944 -XX:MaxNewSize=697933824 -XX:MaxTenuringThreshold=7 -XX:OldPLABSize=16 -XX:+PrintConcurrentLocks -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseMembar -XX:+UseParNewGC

【StarRocks版本】3.0.3
【集群规模】3 fe + 3be
【联系方式】jie zhang(ijavatar@126.com)
【附件】



fe.conf中java相关配置请您发下

fe.conf
(仅修改了 -Xmx8192m -> -Xmx6144m)
JAVA_OPTS="-Dlog4j2.formatMsgNoLookups=true -Xmx6144m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:${LOG_DIR}/fe.gc.log.$DATE -XX:+PrintConcurrentLocks"

进程运行时的全部jvm参数:
VM Flags:
Non-default VM flags: -XX:CICompilerCount=4 -XX:+CMSClassUnloadingEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:-CMSParallelRemarkEnabled -XX:InitialHeapSize=132120576 -XX:MaxHeapSize=6442450944 -XX:MaxNewSize=697892864 -XX:MaxTenuringThreshold=7 -XX:MinHeapDeltaBytes=196608 -XX:NewSize=44040192 -XX:OldPLABSize=16 -XX:OldSize=88080384 -XX:+PrintConcurrentLocks -XX:+PrintGC -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:+UseCompressedClassPointers -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+UseMembar -XX:+UseParNewGC

Command line: -Dlog4j2.formatMsgNoLookups=true -Xmx6144m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:/opt/StarRocks-3.0.3/fe/log/fe.gc.log.20230714-152646 -XX:+PrintConcurrentLocks

麻烦您~

young gc比较频繁没关系,old区占用比较多是正常的,fe的元数据是常驻内存的。fe节点是什么内存配置,这个6G不大,集群数据量增长后可以调大些

目前测试集群是8g,所以给fe配置了6g。生产集群会调大。
感谢您的答复。