我这边有个flink job 周末一直在报GC频繁,然后oom ,然后连接异常,被判定失联,怎么解决?但是我从监控图上又看不出 jvm 内存水位线有多高
您好,针对您的问题,可能的原因和解决方案如下:
内存不足:Flink作业在执行时,如果遇到大表读取或其他大数据操作,可能会导致TaskManager的内存不足。这种情况下,可能会出现GC频繁、OOM异常和连接异常等问题。建议您检查TaskManager的内存设置,根据实际情况适当调大其内存值。
网络问题:分布式物理机网络失联可能导致作业连接异常,进而被判定失联。Failover后的节点对应TM的内存设置太小可能会引起GC严重,从而导致心跳超时。您可以考虑调大对应节点的内存值以避免此问题。
JVM内存水位线问题:虽然您提到从监控图上看不出JVM内存水位线有多高,但可以考虑进一步配置JVM参数来调整内存使用。例如,当JobManager出现GC频繁或OOM异常时,可以调高其内存,默认最大可以调整到16 GiB。
代码逻辑问题:根据实践经验,Flink Checkpoint异常大多是由于用户代码逻辑引起的。建议您仔细审查作业代码,特别是与数据处理和资源管理相关的部分,确保其逻辑正确并且高效。
你这个应该是overhead区域内存炸了,可以尝试调大该部分内存大小。因为只有overhead这部分区域内存超用之后,容器会被kill,taskmanager.memory.jvm-overhead.fraction。可能是你使用了状态函数,你看你managedMemory占用还挺高的。此回答整理自钉群“实时计算Flink产品交流群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。