最近升级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使用较少。