开始新的Flink作业时“无法分配内存”

时间:2018-11-25 20:05:35

标签: out-of-memory apache-flink

我们在3个VM群集上运行Flink。每个VM都有大约40 Go的RAM。每天我们都会停止一些工作并开始新的工作。几天后,开始新作业会被拒绝,并显示“无法分配内存”错误:

  

OpenJDK 64位服务器VM警告:信息:os :: commit_memory(0x0000000340000000,12884901888,0)失败; error ='无法分配内存'(errno = 12)

调查显示,任务管理器RAM一直在增长,直至超过了允许的40 Go,尽管作业已取消。

我还没有访问群集的权限,所以我在笔记本电脑上的独立群集上进行了一些测试,并监视了任务管理器RAM:

  • 使用jvisualvm,我可以看到一切正常工作。我加载作业内存,然后清理它并等待(几分钟),以使GB可用。堆被释放。
  • 对于top,内存为-并保持-高状态。

enter image description here

目前,我们每天早晨都在重新启动群集以解决此内存问题,但是我们负担不起,因为我们需要运行24/7的作业。

我很确定这不是Flink问题,但是有人可以为我指出我们在这里做错的正确方向吗?

1 个答案:

答案 0 :(得分:1)

在独立模式下,Flink可能不会释放所需的资源。 例如,资源由实例中的静态成员占有。

强烈建议使用YARN或K8作为运行时环境。