目前我觉得最好的解决办法就是定期重启JM和TM进程。
知而不惑 <chenliangv...@qq.com.invalid> 于2022年7月4日周一 17:07写道: > 这个问题没有人解答吗? > > > > > ------------------ 原始邮件 ------------------ > 发件人: > "知而不惑" > < > chenliangv...@qq.com>; > 发送时间: 2022年5月18日(星期三) 上午10:45 > 收件人: "user-zh"<user-zh@flink.apache.org>; > > 主题: 反复提交Job会导致TaskManager 元空间oom? > > > > 请问大家一个问题, > 场景: > 版本是Flink 1.14 > 我们使用standalone 模式,我们的Flink job由supervisorctl托管,JM和TM用systemd托管 > > > 异常: > job异常重启设置了两次的flink延迟重启:restart-strategy.fixed-delay.attempts: 2, > 我们线上有个业务代码没有捕获一个异常,导致job重启两次后,再由supervisorctl重新提交job,循环了很多次之后, > > TM出现了元空间OOM(我们已经把元空间的内存加大,还是会出现),然后TM就掉了,控制台上没有TM了,这影响了其他的job,但是TM进程也没有退出,我们的TM由Systemd托管,所以TM一直没有重启, > 处在一个“假死”状态,我们是用的standalone模式,只有一个TM, > > > 日志: > TM日志出现:TM metaspace oom > JM日志:Association with remote system [akka.tcp://flink@localhost:43583] > has failed, address is now gated for [50] ms. Reason: [Association failed > with [akka.tcp://flink@localhost:43583]] Caused by: > [java.net.ConnectException: Connection refused: localhost/127.0.0.1:43583] > JM 连接 TM接口失败,unreachable > > > > 补充: > 我们把元空间内存配置放到512M。再次重现: > 发现每次提交job的时候: > 观察tm metaspace 内存变化:179MB 183MB 207MB 232MB 256MB > 280MB 352MB 372MB > 元空间一直没回收,这样最终会导致TM metaspace oom > > > > 问题: > 1.想问下TM元空间oom异常,是反复提交job造成,还是job的业务代码有问题, > 2.TM元空间OOM为什么会导致JM认为TM掉线,TM也不自己退出进程 > > > 希望获得的帮助: > 1.上述问题原因 > 2.有什么办法可以在standalone模式下,识别到TM掉线,从而我们能做一些自动的运维操作:比如重启整个集群