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 黄志高 <hu...@163.com> on 2021/07/08 02:44:20 UTC

关于任务运行一定时间后,physical内存超出,container被kill,导致任务重启

flink环境1.11.0
任务部署方式yarn per-job
状态后台设置的是:env.setStateBackend(new FsStateBackend("ckPath"))
每个taskManager分配8g内存,2个slot
每10分钟做一次checkpoint,每次ck大小平均400k
任务逻辑是:source(kafka)->keyBy->timeWindow->reduce的count计数->redis
                     source(kafka)->sink(s3 文件)


问题是任务每天都会应该container被杀,导致任务重启
Container [pid=26148,containerID=container_e02_1622516404559_0038_01_000008] is running beyond physical memory limits. Current usage: 8.0 GB of 8 GB physical memory used; 9.8 GB of 40 GB virtual memory used. Killing container


我的理解是缓存数据应该不会那么多,怎么就能达到物理内存限制呢,我的window操作,理应都是key下对应一个值,key的数据也不多,缓存应该也只记录这个状态,而且window采用的是reduce操作,来一条处理一条,增量处理,而不是processFunction的攒一批处理一次
望各位大佬帮忙看看,感谢




Re:Re:关于任务运行一定时间后,physical内存超出,container被kill,导致任务重启

Posted by 黄志高 <hu...@163.com>.
目前虚拟内存和物理内存比例为5,而且我这是物理内存超出,并非虚拟内存




















在 2021-07-08 10:49:08,"Roc Marshal" <fl...@126.com> 写道:
>Hi, 
>    可以先校对一下yarn的container的虚拟内存和物理内存比例的阈值参数(yarn-site.xml)。
>
>
>   
>
>祝好,Roc.
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>在 2021-07-08 10:44:20,"黄志高" <hu...@163.com> 写道:
>>flink环境1.11.0
>>任务部署方式yarn per-job
>>状态后台设置的是:env.setStateBackend(new FsStateBackend("ckPath"))
>>每个taskManager分配8g内存,2个slot
>>每10分钟做一次checkpoint,每次ck大小平均400k
>>任务逻辑是:source(kafka)->keyBy->timeWindow->reduce的count计数->redis
>>                     source(kafka)->sink(s3 文件)
>>
>>
>>问题是任务每天都会应该container被杀,导致任务重启
>>Container [pid=26148,containerID=container_e02_1622516404559_0038_01_000008] is running beyond physical memory limits. Current usage: 8.0 GB of 8 GB physical memory used; 9.8 GB of 40 GB virtual memory used. Killing container
>>
>>
>>我的理解是缓存数据应该不会那么多,怎么就能达到物理内存限制呢,我的window操作,理应都是key下对应一个值,key的数据也不多,缓存应该也只记录这个状态,而且window采用的是reduce操作,来一条处理一条,增量处理,而不是processFunction的攒一批处理一次
>>望各位大佬帮忙看看,感谢
>>
>>
>>

Re:关于任务运行一定时间后,physical内存超出,container被kill,导致任务重启

Posted by Roc Marshal <fl...@126.com>.
Hi, 
    可以先校对一下yarn的container的虚拟内存和物理内存比例的阈值参数(yarn-site.xml)。


   

祝好,Roc.














在 2021-07-08 10:44:20,"黄志高" <hu...@163.com> 写道:
>flink环境1.11.0
>任务部署方式yarn per-job
>状态后台设置的是:env.setStateBackend(new FsStateBackend("ckPath"))
>每个taskManager分配8g内存,2个slot
>每10分钟做一次checkpoint,每次ck大小平均400k
>任务逻辑是:source(kafka)->keyBy->timeWindow->reduce的count计数->redis
>                     source(kafka)->sink(s3 文件)
>
>
>问题是任务每天都会应该container被杀,导致任务重启
>Container [pid=26148,containerID=container_e02_1622516404559_0038_01_000008] is running beyond physical memory limits. Current usage: 8.0 GB of 8 GB physical memory used; 9.8 GB of 40 GB virtual memory used. Killing container
>
>
>我的理解是缓存数据应该不会那么多,怎么就能达到物理内存限制呢,我的window操作,理应都是key下对应一个值,key的数据也不多,缓存应该也只记录这个状态,而且window采用的是reduce操作,来一条处理一条,增量处理,而不是processFunction的攒一批处理一次
>望各位大佬帮忙看看,感谢
>
>
>