flink-user-zh mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Xintong Song <tonysong...@gmail.com>
Subject Re: Flink1.10执行sql超出内存限制被yarn杀掉
Date Tue, 24 Mar 2020 01:57:50 GMT
Hi Faaron,

内存超用被杀说明是 native memory 用的比实际配置多,常见有以下几种可能:

   - JVM Overhead 配置大小不够。这个默认大小是 TM 大小的 10%,但是不会超过
1G。你的情况是 TM
   的总内存比较大,可以尝试调大一点。相关配置项:taskmanager.memory.jvm-overhead.[min|max|fraction]
   - UDF 中使用了 native memory,可能是用户代码,也可能是依赖的第三方库。这种属于
task off-heap 内存,默认大小是
   0,相关配置项:taskmanager.memory.task.off-heap.size
   - 如果使用了 RocksDBStateBackend,也有可能 RocksDB 的内存超用。Flink 会设置
RocksDB
   使用的缓存大小为 managed memory 大小,但是我们发现 RocksDB 存在缺陷,在极个别情况下有可能会限制不住。可以尝试关闭
   RocksDB 的内存控制,这样 RocksDB 会使用默认缓存大小,不会随着 Flink
TM
   的增大而增大。配置项:state.backend.rocksdb.memory.managed


Thank you~

Xintong Song



On Mon, Mar 23, 2020 at 10:15 PM LakeShen <shenleifighting@gmail.com> wrote:

> Hi farron ,
>
> 能否在详细描述一下你的 SQL 的逻辑
>
>
>
> faaron zheng <faaronzheng@gmail.com> 于2020年3月23日周一 下午10:12写道:
>
> >
> >
> 大家好,我在用flink1.10执行sql时,当数据比较大的时候,3T左右,100多亿条数据,在执行hash和sort的时候经常超出内存限制,被yarn杀掉,我的tm给了40g内存,每个有10个slot,每个slot3g内存。我也试过给更大的内存,但是没什么效果。不知道这是什么原因?
> >
> >
> >
> >
>
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message