任务内存增长

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

任务内存增长

张坤
Hi:

       最近在使用Flink(1.7.2)提交任务到yarn(per job),任务在yarn上运行几个小时就会被kill掉,观察到任务的内存一直在增长,任务提交时有内存参数设置,任务逻辑为kafka数据简单处理后,注册成table,使用窗口聚合,

大家有没有遇到类似的问题,原因是什么?怎么解决或者优化?谢谢!

Reply | Threaded
Open this post in threaded view
|

Re: 任务内存增长

Yun Tang
hi 张坤

使用的是RocksDBStateBackend么,一般被YARN的node manager内存超用而kill是native 内存超用导致的。可以在Flink 参数env.java.opts.taskmanager里面加上 -XX:NativeMemoryTracking=detail [1],这样可以观察内存是否增长。另外你使用的内存配置和被kill时候的YARN的日志分别是什么呢,可以考虑增大JVM heap 申请的资源来变相加大向YARN申请的总内存,某种程度上可以缓解被kill的概率。


[1] https://docs.oracle.com/javase/8/docs/technotes/guides/troubleshoot/tooldescr007.html

祝好
唐云
________________________________
From: 张坤 <[hidden email]>
Sent: Monday, August 26, 2019 10:45
To: [hidden email] <[hidden email]>
Subject: 任务内存增长

Hi:

       最近在使用Flink(1.7.2)提交任务到yarn(per job),任务在yarn上运行几个小时就会被kill掉,观察到任务的内存一直在增长,任务提交时有内存参数设置,任务逻辑为kafka数据简单处理后,注册成table,使用窗口聚合,

大家有没有遇到类似的问题,原因是什么?怎么解决或者优化?谢谢!

Reply | Threaded
Open this post in threaded view
|

Re: 任务内存增长

Xintong Song
In reply to this post by 张坤
你用的是heap state backend吗?可以看下checkpoint
size是否持续在增大,如果是的话很可能就是state增大导致的。作业运行后,随着处理的数据越来越多,state的key数量也会越来越多,大小随之增大。解决方案要么是改用RocksDB,要么是把tm内存配大为state增大留出富裕。

另外,如果checkpoint size持续增长没有趋于平缓的趋势,那么也可能state的使用有问题。

如果观察到不是state的问题,那么可能需要dump下tm的内存,看看是否哪里有内存泄露的情况。

Thank you~

Xintong Song



On Mon, Aug 26, 2019 at 10:46 AM 张坤 <[hidden email]> wrote:

> Hi:
>
>        最近在使用Flink(1.7.2)提交任务到yarn(per
> job),任务在yarn上运行几个小时就会被kill掉,观察到任务的内存一直在增长,任务提交时有内存参数设置,任务逻辑为kafka数据简单处理后,注册成table,使用窗口聚合,
>
> 大家有没有遇到类似的问题,原因是什么?怎么解决或者优化?谢谢!
>
>
Reply | Threaded
Open this post in threaded view
|

Re: 任务内存增长

张坤
感谢您的回复,checkpoint使用的rocksDB,现在查看GC日志得到以下信息,堆内存使用正常,线程数使用在500左右,线程回收,但是线程占用的内存好像并没有回收掉。

在 2019/8/27 下午5:02,“Xintong Song”<[hidden email]> 写入:

    你用的是heap state backend吗?可以看下checkpoint
    size是否持续在增大,如果是的话很可能就是state增大导致的。作业运行后,随着处理的数据越来越多,state的key数量也会越来越多,大小随之增大。解决方案要么是改用RocksDB,要么是把tm内存配大为state增大留出富裕。
   
    另外,如果checkpoint size持续增长没有趋于平缓的趋势,那么也可能state的使用有问题。
   
    如果观察到不是state的问题,那么可能需要dump下tm的内存,看看是否哪里有内存泄露的情况。
   
    Thank you~
   
    Xintong Song
   
   
   
    On Mon, Aug 26, 2019 at 10:46 AM 张坤 <[hidden email]> wrote:
   
    > Hi:
    >
    >        最近在使用Flink(1.7.2)提交任务到yarn(per
    > job),任务在yarn上运行几个小时就会被kill掉,观察到任务的内存一直在增长,任务提交时有内存参数设置,任务逻辑为kafka数据简单处理后,注册成table,使用窗口聚合,
    >
    > 大家有没有遇到类似的问题,原因是什么?怎么解决或者优化?谢谢!
    >
    >
   




Reply | Threaded
Open this post in threaded view
|

Re: 任务内存增长

Xintong Song
In reply to this post by Xintong Song
这个邮件列表看不到图片附件的,文本内容可以直接贴出来,图片的话需要放外部链接

Thank you~

Xintong Song



On Tue, Aug 27, 2019 at 5:17 PM 张坤 <[hidden email]> wrote:

>
> 感谢您的回复,checkpoint使用的rocksDB,现在查看GC日志得到以下信息,堆内存使用正常,线程数使用在500左右,线程回收,但是线程占用的内存好像并没有回收掉。
>
> 在 2019/8/27 下午5:02,“Xintong Song”<[hidden email]> 写入:
>
>     你用的是heap state backend吗?可以看下checkpoint
>
> size是否持续在增大,如果是的话很可能就是state增大导致的。作业运行后,随着处理的数据越来越多,state的key数量也会越来越多,大小随之增大。解决方案要么是改用RocksDB,要么是把tm内存配大为state增大留出富裕。
>
>     另外,如果checkpoint size持续增长没有趋于平缓的趋势,那么也可能state的使用有问题。
>
>     如果观察到不是state的问题,那么可能需要dump下tm的内存,看看是否哪里有内存泄露的情况。
>
>     Thank you~
>
>     Xintong Song
>
>
>
>     On Mon, Aug 26, 2019 at 10:46 AM 张坤 <[hidden email]> wrote:
>
>     > Hi:
>     >
>     >        最近在使用Flink(1.7.2)提交任务到yarn(per
>     >
> job),任务在yarn上运行几个小时就会被kill掉,观察到任务的内存一直在增长,任务提交时有内存参数设置,任务逻辑为kafka数据简单处理后,注册成table,使用窗口聚合,
>     >
>     > 大家有没有遇到类似的问题,原因是什么?怎么解决或者优化?谢谢!
>     >
>     >
>
>
>
>
>
>