flink 1.10.0中内存分配问题和超时问题

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

flink 1.10.0中内存分配问题和超时问题

site
你好,我在1.9.0升级到1.10.0的过程中,通过官网的升级说明文档了解到1.10版本在内存上有较大的变动,所以进行了一下尝试。我的环境是8核16G的内存的台式机服务器,centos7.4,JDK8u162。使用的是默认的单机集群配置,配置了4个slot。taskmanager.memory.flink.size起初开始配置是4096m,通过部署3个程序完成4个slot的分配。接着试着测试一个流处理程序往kafka里发了一条消息,这时整个flink集群就会挂掉,task manager日志里错误是Requested resource profile (ResourceProfile{UNKNOWN}) is unfulfillable,整个flink上部署的程序全部变为重启直到全部显示为“取消”状态,此时可用slot也没有了,无法再部署程序只能停了stop-cluster后再重启才会可以重新部署。这时通过查找官网上的内存更新说明,怀疑是内存不足,所以分配taskmanager.memory.flink.size为5120m和8196m,此时成功部署程序后再测试程序仍出现整个集群重启直到全部程序"取消“状态,并且slot不可分配使用,和前一次状态一样,此次分析日志是因为日志首先显示的是The heartbeat of TaskManager with id {xxxx}  timed out,是acck连接超时了。
回退到1.9.0后,同样配置下,分配4096内存和4个slot的集群运行正常,请问在1.10版本是是不是还要进一步的配置一些参数或者该版本有bug需要进一步的优先?
Reply | Threaded
Open this post in threaded view
|

Re:flink 1.10.0中内存分配问题和超时问题

chenxyz
有没有配置TaskManager的MaxMetaspaceSize呢?1.10默认的MaxMetaspaceSize比较小,UserCodeClassLoader加载class之后容易出现Metaspace区溢出,导致TM挂掉。可以在flink-conf.yaml文件里面进行配置
env.java.opts.taskmanager: "-XX:MaxMetaspaceSize=1024m"

















在 2020-03-23 14:44:42,"site" <[hidden email]> 写道:
>你好,我在1.9.0升级到1.10.0的过程中,通过官网的升级说明文档了解到1.10版本在内存上有较大的变动,所以进行了一下尝试。我的环境是8核16G的内存的台式机服务器,centos7.4,JDK8u162。使用的是默认的单机集群配置,配置了4个slot。taskmanager.memory.flink.size起初开始配置是4096m,通过部署3个程序完成4个slot的分配。接着试着测试一个流处理程序往kafka里发了一条消息,这时整个flink集群就会挂掉,task manager日志里错误是Requested resource profile (ResourceProfile{UNKNOWN}) is unfulfillable,整个flink上部署的程序全部变为重启直到全部显示为“取消”状态,此时可用slot也没有了,无法再部署程序只能停了stop-cluster后再重启才会可以重新部署。这时通过查找官网上的内存更新说明,怀疑是内存不足,所以分配taskmanager.memory.flink.size为5120m和8196m,此时成功部署程序后再测试程序仍出现整个集群重启直到全部程序"取消“状态,并且slot不可分配使用,和前一次状态一样,此次分析日志是因为日志首先显示的是The heartbeat of TaskManager with id {xxxx}  timed out,是acck连接超时了。
>回退到1.9.0后,同样配置下,分配4096内存和4个slot的集群运行正常,请问在1.10版本是是不是还要进一步的配置一些参数或者该版本有bug需要进一步的优先?
Reply | Threaded
Open this post in threaded view
|

Re: flink 1.10.0中内存分配问题和超时问题

Xintong Song
Hi,

Requested resource profile (ResourceProfile{UNKNOWN}) is unfulfillable

这个应该是 jobmanager 日志里面的报错,有没有看过 taskmanager 日志,心跳超时的原因是什么?

另外,你提到你的作业是流处理,是否用了 state,statebackend 的类型是什么?在同等大小情况下,Flink 1.10 默认配置相比
Flink 1.9,会分配更多的堆外空间,而 JVM 堆空间的会变小。对于无状态或者使用 HeapStateBackend 的作业,建议是把
taskmanager.memory.managed.fraction 设成 0.

你也可以先参考一下官方文档中的升级指南[1]。

Thank you~

Xintong Song


[1]
https://ci.apache.org/projects/flink/flink-docs-release-1.10/zh/ops/memory/mem_migration.html

On Mon, Mar 23, 2020 at 3:29 PM chenxyz <[hidden email]> wrote:

>
> 有没有配置TaskManager的MaxMetaspaceSize呢?1.10默认的MaxMetaspaceSize比较小,UserCodeClassLoader加载class之后容易出现Metaspace区溢出,导致TM挂掉。可以在flink-conf.yaml文件里面进行配置
> env.java.opts.taskmanager: "-XX:MaxMetaspaceSize=1024m"
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2020-03-23 14:44:42,"site" <[hidden email]> 写道:
> >你好,我在1.9.0升级到1.10.0的过程中,通过官网的升级说明文档了解到1.10版本在内存上有较大的变动,所以进行了一下尝试。我的环境是8核16G的内存的台式机服务器,centos7.4,JDK8u162。使用的是默认的单机集群配置,配置了4个slot。taskmanager.memory.flink.size起初开始配置是4096m,通过部署3个程序完成4个slot的分配。接着试着测试一个流处理程序往kafka里发了一条消息,这时整个flink集群就会挂掉,task
> manager日志里错误是Requested resource profile (ResourceProfile{UNKNOWN}) is
> unfulfillable,整个flink上部署的程序全部变为重启直到全部显示为“取消”状态,此时可用slot也没有了,无法再部署程序只能停了stop-cluster后再重启才会可以重新部署。这时通过查找官网上的内存更新说明,怀疑是内存不足,所以分配taskmanager.memory.flink.size为5120m和8196m,此时成功部署程序后再测试程序仍出现整个集群重启直到全部程序"取消“状态,并且slot不可分配使用,和前一次状态一样,此次分析日志是因为日志首先显示的是The
> heartbeat of TaskManager with id {xxxx}  timed out,是acck连接超时了。
>
> >回退到1.9.0后,同样配置下,分配4096内存和4个slot的集群运行正常,请问在1.10版本是是不是还要进一步的配置一些参数或者该版本有bug需要进一步的优先?
>