Checkpoint时内存不够TaskManager被Kill掉

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Checkpoint时内存不够TaskManager被Kill掉

Jason Lee
各位社区伙伴大家好
首先描述一下我的问题:最近我们发现有几个任务平时运行将近一个月都没发生问题,最近在进行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的问题,除了不断增加并发内存外,有没有好的解决方案,谢谢大家。

Best,
Jason Lee


Reply | Threaded
Open this post in threaded view
|

Re: Checkpoint时内存不够TaskManager被Kill掉

Smile
哪个版本的 Flink 啊,我们最近用 1.12.2 也有出现内存超限的情况,不过是 RocksDB,Savepoint 的时候内存增大。



--
Sent from: http://apache-flink.147419.n8.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Checkpoint时内存不够TaskManager被Kill掉

JasonLee
In reply to this post by Jason Lee
hi

增大一下 taskmanager.memory.jvm-overhead 的内存试试



-----
Best Wishes
JasonLee
--
Sent from: http://apache-flink.147419.n8.nabble.com/
Best Wishes
JasonLee