Flink 内存管理

打印 上一主题 下一主题

主题 1381|帖子 1381|积分 4143

一、内存模子


上图是一个 Flink 步伐历程总体的内存模子,其包含 Flink 利用内存、JVM 元空间以及 JVM 开销。



  • Flink 利用了堆上内存和堆外内存;
  • 框架内存利用了堆上内存和堆外内存的直接内存;
  • Task 利用堆上内存和堆外内存的直接内存;
  • 管理内存、JVM 元空间以及 JVM 内存开销利用了堆外内存;
  • 网络内存利用了堆外内存;
概念解释
         JVM Heap:JVM 堆上内存
                 Framework Heap Memory:Flink 框架本身利用的内存,不计入 Slot 资源中;
                 Task Heap Memory:Task 执行用户代码时所利用的堆上内存;
         Off-Heap Memory:JVM 堆外内存
                 Direct Memory:JVM 直接内存
                         Framework Off-Heap Memory:Flink 框架本身所利用的堆外内存,不计入 Slot 资源;
                         Task Off-Heap Memory:Task 执行用户代码所利用的堆外内存;
                         Network Memory:网络数据交换所利用的对外内存大小,如网络交换缓冲区;
                 Managed Memory:Flink 管理的堆外内存,用于管理排序、哈希表、缓存中心效果以及 RocksDB State Backend 的本地内存;
      
Flink 利用内存 = 框架堆内和堆外内存 + Task 堆内和堆外内存 + 网络内存 + 管理内存
历程内存 = Flink 利用内存 + JVM 本身利用的内存
1.1、JobManager 内存模子

源码在 JobManagerFlinkMemory.java

配置在 flink-conf.yaml 中的 jobmanager.memory.process.size:
1.2 TaskManager 内存模子

源码在 TaskExecutorFlinkMemory.java

配置在 flink-conf.yaml 中的 taskmanager.memory.flink.size:
1.3 内存分配

1.3.1、JobManager 内存分配

调用 YarnClusterDescriptor.java 中的 startAppMaster()方法:
  
  1. private ApplicationReport startAppMaster(
  2.                         Configuration configuration,
  3.                         String applicationName,
  4.                         String yarnClusterEntrypoint,
  5.                         JobGraph jobGraph,
  6.                         YarnClient yarnClient,
  7.                         YarnClientApplication yarnApplication,
  8.                         ClusterSpecification clusterSpecification) throws Exception {
  9.     ... ...
  10.     final JobManagerProcessSpec processSpec = JobManagerProcessUtils.processSpecFromConfigWithNewOptionToInterpretLegacyHeap(
  11.                         flinkConfiguration,
  12.                         JobManagerOptions.TOTAL_PROCESS_MEMORY);
  13.                 final ContainerLaunchContext amContainer = setupApplicationMasterContainer(
  14.                                 yarnClusterEntrypoint,
  15.                                 hasKrb5,
  16.                                 processSpec);
  17.     ... ...
  18. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

小小小幸运

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表