我们正在3vm集群上运行flink。每个虚拟机大约有40个内存。每天我们停止一些工作,开始新的工作。几天后,启动新作业将被拒绝,并出现“无法分配内存”错误:
openjdk 64位服务器vm警告:信息:os::commit\ u memory(0x0000000340000000,12884901888,0)失败;error='cannot allocate memory'(错误号=12)
调查显示,任务管理器ram不断增长,甚至超过了允许的40 go,尽管作业被取消了。
我还没有访问群集的权限,所以我在笔记本电脑上的独立群集上尝试了一些测试,并监视了任务管理器ram:
使用jvisualvm,我可以看到一切都按预期工作。我加载作业内存,然后清理它并等待(几分钟)gb启动。堆被释放。
鉴于 top
,记忆力很高。
目前,我们每天早上都要重新启动集群来解决这个内存问题,但是我们负担不起了,因为我们需要24/7运行的作业。
我很确定这不是Flink的问题,但是有人能告诉我我们做错了什么吗?
1条答案
按热度按时间fcg9iug31#
在独立模式下,flink可能不会如您所愿释放资源。例如,资源由示例中的静态成员持有。
强烈建议使用Yarn或k8s作为运行时环境。