开发者社区> 问答> 正文

flink内存参数是用来做什么的?

我正在做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邮件归档

展开
收起
彗星halation 2021-12-02 17:53:46 712 0
1 条回答
写回答
取消 提交回答
    1. 你提到的三个Metric(Direct_MemoryUsed, NonHeap_Used, Heap_Used)是从MXBean获取到的,可以了解下java.lang.management包的作用,Flink这部分Metric源码好像在MerticUtils类里;

    2. 从你的描述获取不到太多可定位OOM的信息,若非state算子则先关注下自己代码本身是否有内存泄漏的情况吧;

    3. 可以在flink-conf.yml里配置个JMX监控,用VisualVM实时观察下Job Task运行情况;也可以通过配置env.java.opts来添加诸如-XX:+HeapDumpOnOutOfMemoryError等相关参数来获取heap dump以备后续问题排查;*来自志愿者整理的FLINK邮件归档

    2021-12-02 18:02:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

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