【问题标题】:"Cannot allocate memory" when starting new Flink job启动新的 Flink 作业时“无法分配内存”
【发布时间】:2018-11-25 20:05:35
【问题描述】:

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

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

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

我(还)无权访问集群,因此我在笔记本电脑上的独立集群上尝试了一些测试并监控了任务管理器 RAM:

  • 使用 jvisualvm,我可以看到一切都按预期工作。我加载作业内存,然后清理它并等待(几分钟)让 GB 启动。堆被释放。
  • 而使用 top,内存是 - 并且保持 - 高。

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

我很确定这不是 Flink 问题,但有人能指出我们在这里做错了什么的正确方向吗?

【问题讨论】:

  • 您必须获得访问权限! :-)

标签: out-of-memory apache-flink


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-13
    • 2011-12-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多