开发者社区> 问答> 正文

flink内存分配的问题

> taskmanager的内存设置为15G但实际的heap只有10G

> 看了tm内存分配的源码1.计算cutoff(15GB * 0.25) 2.计算heap大小(heap计算的入参是15GB -

cutoff大小)

> 3.计算offheap大小(offheap的大小等于15GB-heap大小)

> offheap就是最终的-XX:MaxDirectMemorySize的大小

> 想请教下MaxDirectMemorySize的大小有必要设置这么大吗?*来自志愿者整理的flink邮件归档

展开
收起
船长的小螺号 2021-12-03 10:15:29 980 0
1 条回答
写回答
取消 提交回答
  • FLINK TM 中是用到了大量的堆外内存的,除了通常意义的 JVM 的栈空间、方法区等堆外开销外,还包括网络 buffer、batch

    缓存、RocksDB等。

    默认配置是相对保守,为了保证大多数情况下预留出足够的堆外内存。具体是否设置过大了,要看具体运行的作业的情况。可以尝试通过配置'containerized.heap-cutoff-ratio'进行调整。

    另外,即将发布的flink 1.10版本中对TM的内存计算进行了优化,不再采用cutoff而是根据用途列出了更具体的配置项,欢迎试用

    *来自志愿者整理的FLINK邮件归档

    2021-12-03 11:20:51
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Flink CDC Meetup PPT - 龚中强 立即下载
Flink CDC Meetup PPT - 王赫 立即下载
Flink CDC Meetup PPT - 覃立辉 立即下载