Hi 这是我之前看到一篇关于OOM 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/ On Thu, Feb 18, 2021 at 9:01 AM lian <lzp...@126.com> wrote: > 各位大佬好: > 1. 背景:使用Flink > SQL实现回撤流的功能,使用了Last_Value,第二层聚合进行sum求和计算,主要是依靠回撤流的方式,来实现对已经下发的数据进行减法的操作。 > 实现的功能和菜鸟如下基本是一致的。 > https://developer.aliyun.com/article/457392 > 2. 版本及调优:flink > 1.10.1,资源单个slot从2-6g,借助了rocksdb的状态后端来存储状态值,对flink的managed memory进行了反复的调优, > 调整过overhead内存,最小值设为1g,最大值设为2g > blockcache大小,由默认值8mb设置为128mb > block size大小,由默认值4kb设置为32kb > flush线程数,由默认值1设置为4 > writebuffer,由默认值0.5调整为0.25 > 采用了batch size,两阶段聚合参数 > 增量checkpoint > 预分配内存设置为false > 3. 状态大小: ck在100mb - 25g浮动,savepoint达到了120g > 4. 存在的问题: > 1. 内存出现不足,container被kill掉 > 2. ck时,状态大的很大,小的很小,不知道这个是什么原因? > 5. 看了很多关于内存oom被kill的文章,调整了overhead参数,增大tm的内存来扩大managed > memory,调整rocksdb的参数等一系列的参数,目前都还是运行一段时间后出现container 被kill。 > 6. 个人预留的问题:flink 的rocksdb的mertic的参数有添加,但是个人不是很清楚,如何进行打印和监控,如果后续的flink > 的ui界面能够加上对这一块的页面展示,那就会比较好了。 > 所以,对于到底是哪块内存超了,目前也还不是很清楚。 > > > 看看,有没有大佬能帮忙看一下,这个问题如何优化会比较好? > 看了2020 > flink峰会,唐云大佬对于rocksdb做的相关工作的分享,提到先提高overhead内存可以先解决这个问题,但是我目前还没有解决掉。以及提到用户的使用不当,也会导致这个问题,不知我的场景,是否是不合理的。 > > > 盼复~~~ > > > > >