开发者社区> 问答> 正文

Checkpoint时内存不够TaskManager被Kill掉怎么办?

各位社区伙伴大家好 首先描述一下我的问题:最近我们发现有几个任务平时运行将近一个月都没发生问题,最近在进行checkpoint的时候经常失败,然后一直容错恢复重启,我们通过日志查看,发现某个TM在进行checkpoint的时候内存使用过大导致内存不够被Kill掉了; 报错日志:

java.lang.Exception: Container [pid=24859,containerID=container_e01_1618927404581_0181_01_002010] is running beyond physical memor y limits. Current usage: 4.0 GB of 4 GB physical memory used; 6.9 GB of 8.4 GB virtual memory used. Killing container.

但是我们从他历史的checkpoint记录中可以看到它发生问题那次checkpoint时候并不是进行全量checkpoint的时候(很抱歉当时失败的时候忘记截图,给任务重启了,现在这幅图是任务重启之后的历史checkpoint截图,);

我们为了减少增量checkpoint的大小设置了State DDL,但是这种任务还是发生了TM内存不够被KIll掉的问题,我们现在的解决途径是增大内存,或者并发,但是我们现在任务已经配置了64个并发,每个TM内存给了4G,如果不断增加并发或者内存的话会对资源有很大的浪费,因为我们可以看到平时堆内存的使用率是有限的,所以一味增加会造成很大的资源浪费。

综上。想问一下社区的伙伴有没有遇到类似checkpoint时候某个TM内存不够被Kill的问题,除了不断增加并发内存外,有没有好的解决方案,谢谢大家。*来自志愿者整理的flink邮件归档

展开
收起
moonlightdisco 2021-12-02 14:11:41 1017 0
1 条回答
写回答
取消 提交回答
  • 增大一下 taskmanager.memory.jvm-overhead 的内存试试*来自志愿者整理的FLINK邮件归档

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

相关电子书

更多
内存取证与IaaS云平台恶意行 为的安全监控 立即下载
云服务器ECS内存增强型实例re6全新发布 立即下载
低代码开发师(初级)实战教程 立即下载