开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

我这边有个flink job周末一直在报GC频繁,然后oom ,然后连接异常,被判定失联,怎么解决?

我这边有个flink job 周末一直在报GC频繁,然后oom ,然后连接异常,被判定失联,怎么解决?但是我从监控图上又看不出 jvm 内存水位线有多高 8591f3ff7797d86d1d9cb09baa0d41f6.png
ff22fb17b4193304bbf19432aa02a20a.png
0ec3d108c583753dd23f13088ef6566b.png

展开
收起
三分钟热度的鱼 2023-11-15 20:44:29 106 0
2 条回答
写回答
取消 提交回答
  • 您好,针对您的问题,可能的原因和解决方案如下:

    1. 内存不足:Flink作业在执行时,如果遇到大表读取或其他大数据操作,可能会导致TaskManager的内存不足。这种情况下,可能会出现GC频繁、OOM异常和连接异常等问题。建议您检查TaskManager的内存设置,根据实际情况适当调大其内存值。

    2. 网络问题:分布式物理机网络失联可能导致作业连接异常,进而被判定失联。Failover后的节点对应TM的内存设置太小可能会引起GC严重,从而导致心跳超时。您可以考虑调大对应节点的内存值以避免此问题。

    3. JVM内存水位线问题:虽然您提到从监控图上看不出JVM内存水位线有多高,但可以考虑进一步配置JVM参数来调整内存使用。例如,当JobManager出现GC频繁或OOM异常时,可以调高其内存,默认最大可以调整到16 GiB。

    4. 代码逻辑问题:根据实践经验,Flink Checkpoint异常大多是由于用户代码逻辑引起的。建议您仔细审查作业代码,特别是与数据处理和资源管理相关的部分,确保其逻辑正确并且高效。

    2023-11-30 09:21:05
    赞同 展开评论 打赏
  • 你这个应该是overhead区域内存炸了,可以尝试调大该部分内存大小。因为只有overhead这部分区域内存超用之后,容器会被kill,taskmanager.memory.jvm-overhead.fraction。可能是你使用了状态函数,你看你managedMemory占用还挺高的。此回答整理自钉群“实时计算Flink产品交流群”

    2023-11-15 21:07:00
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载