我正在做flink算子的性能测试,发现了以下问题。 flink加大数据量后运行时报OOM错误,但metrics中flink_taksmanager_Status_JVM_Memory_Direct_MemoryUsed,flink_taksmanager_Status_JVM_Memory_NonHeap_Used,flink_taksmanager_Status_JVM_Memory_Heap_Used一直没有波动(没有使用checkpoint,也没有网络方面的内存需求)。 想请问大家flink中这三个参数对应的内存具体是用来做什么的,OOM有可能是什么原因?*来自志愿者整理的flink邮件归档
你提到的三个Metric(Direct_MemoryUsed, NonHeap_Used, Heap_Used)是从MXBean获取到的,可以了解下java.lang.management包的作用,Flink这部分Metric源码好像在MerticUtils类里;
从你的描述获取不到太多可定位OOM的信息,若非state算子则先关注下自己代码本身是否有内存泄漏的情况吧;
可以在flink-conf.yml里配置个JMX监控,用VisualVM实时观察下Job Task运行情况;也可以通过配置env.java.opts
来添加诸如-XX:+HeapDumpOnOutOfMemoryError
等相关参数来获取heap dump以备后续问题排查;*来自志愿者整理的FLINK邮件归档
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。