这个问题比较奇怪,我尝试加大了task.offheap的内存,主要是为了加大 direct memory 的限制,部分作业加大后ok了。
今天又发现一个作业,direct mem 达到9G了还不行(5G
task.offheap额外配置,另外4G是network部分配置的,所以jvm参数部分对direct mem的限制是9G)。

Yuxin Tan <tanyuxinw...@gmail.com> 于2023年5月26日周五 18:15写道:
>
> hi, yidan
>
> 除 jvm 参数外,flink 其他配置完全一样吗?比如 state backend 是否有变化?
>
> 另外, jdk11 是不是用的最新版本,不是的话,觉得也可以尝试一下最新版本。
>
> 如果 jdk11 用的最新版本,可以尝试下使用其他 GC 算法是否也有同样问题。比如 -XX:+UseParallelGC
> -XX:NewRatio=3 -XX:ParallelGCThreads=4 -XX:CICompilerCount=4
> -XX:-CompactStrings
>
> Best,
> Yuxin
>
>
> yidan zhao <hinobl...@gmail.com> 于2023年5月26日周五 17:39写道:
>
> > 最近升级flink版本和jdk版本,flink从1.15.2升级到1.17.0,jdk从8升级到11。然后出现大量full gc。
> > 分析后,发现主要是 System.gc() 导致。 进一步定位到是 redisson 库中 netty 部分用到了 DirectMemory
> > 导致。 直接内存不足,导致频繁调用 System.gc 触发 full gc。
> > 我现在问题是,通过测试对比实验发现,jdk8+flink1.17没问题,jdk11+flink1.17就会有该问题。
> > 有人知道原因嘛?
> >
> > 其他信息:
> >
> > jdk8和jdk11情况下都是G1GC,且vm参数一致,直接内存max限制也一致。但是通过jinfo等查看,确实jdk8场景下的directMemory使用较少。
> >

回复