You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-zh@flink.apache.org by Guo Thompson <gw...@gmail.com> on 2023/04/21 10:04:21 UTC

Flink rocksDB疑似内存泄露,导致被Linux kernel killed

Flink
Job是基于sql的,Flink版本为1.13.3,state用rocksDB存,发现会存在内存泄露的情况,作业运行一段时间后,会被linux内核kill掉,求助,如何解决?
网上
http://www.whitewood.me/2021/01/02/%E8%AF%A6%E8%A7%A3-Flink-%E5%AE%B9%E5%99%A8%E5%8C%96%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84-OOM-Killed/
讲很可能就是rocksDB的内存没法回收导致。

1、分配 tm的30G内存,jvm堆内的远远没有使用完。
[image: 8f47b109-a04b-4bc1-8f64-fed21c58838d.jpeg]
2、从linux上查看内存使用,实际使用内存 44.4G,远远超出设置的30G
[image: image.png]
3、dump下tm的jvm内存,实际不到2G(dump会触发full gc)
[image: image.png]

Re: Flink rocksDB疑似内存泄露,导致被Linux kernel killed

Posted by Yanfei Lei <fr...@gmail.com>.
Hi,
请问作业有配置ttl吗?
另外可以参考下是否与下面两个问题类似:
1. pin L0 index in memory : https://issues.apache.org/jira/browse/FLINK-31089
2. max open files:https://issues.apache.org/jira/browse/FLINK-31225

Biao Geng <bi...@gmail.com> 于2023年4月23日周日 15:35写道:
>
> Hi,
> 可以配置下jemalloc来进行堆外内存泄漏的定位。
> 具体操作可以参考下这两篇文章。
> https://cloud.tencent.com/developer/article/1884177
> https://chenhm.com/post/2018-12-05-debuging-java-memory-leak#_native_method_%E5%86%85%E5%AD%98
>
> Best,
> Biao Geng
>
> Guo Thompson <gw...@gmail.com> 于2023年4月22日周六 09:57写道:
>
> > yarn,我已经关闭了yarn的内存检查,glibc的那个参数已经配置成1了
> >
> > Weihua Hu <hu...@gmail.com> 于2023年4月21日周五 19:23写道:
> >
> > > Hi,
> > >
> > > 你作业运行在 YARN 还是 Kubernetes 上?可以先关注下文档里的 Glibc 泄露问题
> > >
> > > Best,
> > > Weihua
> > >
> > >
> > > On Fri, Apr 21, 2023 at 6:04 PM Guo Thompson <gw...@gmail.com>
> > > wrote:
> > >
> > > > Flink
> > > >
> > >
> > Job是基于sql的,Flink版本为1.13.3,state用rocksDB存,发现会存在内存泄露的情况,作业运行一段时间后,会被linux内核kill掉,求助,如何解决?
> > > > 网上
> > > >
> > >
> > http://www.whitewood.me/2021/01/02/%E8%AF%A6%E8%A7%A3-Flink-%E5%AE%B9%E5%99%A8%E5%8C%96%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84-OOM-Killed/
> > > > 讲很可能就是rocksDB的内存没法回收导致。
> > > >
> > > > 1、分配 tm的30G内存,jvm堆内的远远没有使用完。
> > > > [image: 8f47b109-a04b-4bc1-8f64-fed21c58838d.jpeg]
> > > > 2、从linux上查看内存使用,实际使用内存 44.4G,远远超出设置的30G
> > > > [image: image.png]
> > > > 3、dump下tm的jvm内存,实际不到2G(dump会触发full gc)
> > > > [image: image.png]
> > > >
> > >
> >



-- 
Best,
Yanfei

Re: Flink rocksDB疑似内存泄露,导致被Linux kernel killed

Posted by Biao Geng <bi...@gmail.com>.
Hi,
可以配置下jemalloc来进行堆外内存泄漏的定位。
具体操作可以参考下这两篇文章。
https://cloud.tencent.com/developer/article/1884177
https://chenhm.com/post/2018-12-05-debuging-java-memory-leak#_native_method_%E5%86%85%E5%AD%98

Best,
Biao Geng

Guo Thompson <gw...@gmail.com> 于2023年4月22日周六 09:57写道:

> yarn,我已经关闭了yarn的内存检查,glibc的那个参数已经配置成1了
>
> Weihua Hu <hu...@gmail.com> 于2023年4月21日周五 19:23写道:
>
> > Hi,
> >
> > 你作业运行在 YARN 还是 Kubernetes 上?可以先关注下文档里的 Glibc 泄露问题
> >
> > Best,
> > Weihua
> >
> >
> > On Fri, Apr 21, 2023 at 6:04 PM Guo Thompson <gw...@gmail.com>
> > wrote:
> >
> > > Flink
> > >
> >
> Job是基于sql的,Flink版本为1.13.3,state用rocksDB存,发现会存在内存泄露的情况,作业运行一段时间后,会被linux内核kill掉,求助,如何解决?
> > > 网上
> > >
> >
> http://www.whitewood.me/2021/01/02/%E8%AF%A6%E8%A7%A3-Flink-%E5%AE%B9%E5%99%A8%E5%8C%96%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84-OOM-Killed/
> > > 讲很可能就是rocksDB的内存没法回收导致。
> > >
> > > 1、分配 tm的30G内存,jvm堆内的远远没有使用完。
> > > [image: 8f47b109-a04b-4bc1-8f64-fed21c58838d.jpeg]
> > > 2、从linux上查看内存使用,实际使用内存 44.4G,远远超出设置的30G
> > > [image: image.png]
> > > 3、dump下tm的jvm内存,实际不到2G(dump会触发full gc)
> > > [image: image.png]
> > >
> >
>

Re: Flink rocksDB疑似内存泄露,导致被Linux kernel killed

Posted by Guo Thompson <gw...@gmail.com>.
yarn,我已经关闭了yarn的内存检查,glibc的那个参数已经配置成1了

Weihua Hu <hu...@gmail.com> 于2023年4月21日周五 19:23写道:

> Hi,
>
> 你作业运行在 YARN 还是 Kubernetes 上?可以先关注下文档里的 Glibc 泄露问题
>
> Best,
> Weihua
>
>
> On Fri, Apr 21, 2023 at 6:04 PM Guo Thompson <gw...@gmail.com>
> wrote:
>
> > Flink
> >
> Job是基于sql的,Flink版本为1.13.3,state用rocksDB存,发现会存在内存泄露的情况,作业运行一段时间后,会被linux内核kill掉,求助,如何解决?
> > 网上
> >
> http://www.whitewood.me/2021/01/02/%E8%AF%A6%E8%A7%A3-Flink-%E5%AE%B9%E5%99%A8%E5%8C%96%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84-OOM-Killed/
> > 讲很可能就是rocksDB的内存没法回收导致。
> >
> > 1、分配 tm的30G内存,jvm堆内的远远没有使用完。
> > [image: 8f47b109-a04b-4bc1-8f64-fed21c58838d.jpeg]
> > 2、从linux上查看内存使用,实际使用内存 44.4G,远远超出设置的30G
> > [image: image.png]
> > 3、dump下tm的jvm内存,实际不到2G(dump会触发full gc)
> > [image: image.png]
> >
>

Re: Flink rocksDB疑似内存泄露,导致被Linux kernel killed

Posted by Weihua Hu <hu...@gmail.com>.
Hi,

你作业运行在 YARN 还是 Kubernetes 上?可以先关注下文档里的 Glibc 泄露问题

Best,
Weihua


On Fri, Apr 21, 2023 at 6:04 PM Guo Thompson <gw...@gmail.com> wrote:

> Flink
> Job是基于sql的,Flink版本为1.13.3,state用rocksDB存,发现会存在内存泄露的情况,作业运行一段时间后,会被linux内核kill掉,求助,如何解决?
> 网上
> http://www.whitewood.me/2021/01/02/%E8%AF%A6%E8%A7%A3-Flink-%E5%AE%B9%E5%99%A8%E5%8C%96%E7%8E%AF%E5%A2%83%E4%B8%8B%E7%9A%84-OOM-Killed/
> 讲很可能就是rocksDB的内存没法回收导致。
>
> 1、分配 tm的30G内存,jvm堆内的远远没有使用完。
> [image: 8f47b109-a04b-4bc1-8f64-fed21c58838d.jpeg]
> 2、从linux上查看内存使用,实际使用内存 44.4G,远远超出设置的30G
> [image: image.png]
> 3、dump下tm的jvm内存,实际不到2G(dump会触发full gc)
> [image: image.png]
>