当前位置 : 主页 > 编程语言 > 其它开发 >

Flink内存模型

来源:互联网 收集:自由互联 发布时间:2022-06-03
Flink内存模型分析JobManager内存模型 TaskManager内存模型 内存模型分析 Flink使用内存(Total Flink Memory)=框架堆内存+框架堆外内存+task堆内存+task堆外内存+网络缓冲内存+托管内存 进程内存(
Flink内存模型分析 JobManager内存模型

TaskManager内存模型

内存模型分析

Flink使用内存(Total Flink Memory)=框架堆内存+框架堆外内存+task堆内存+task堆外内存+网络缓冲内存+托管内存
进程内存(Total Process Memory)=Flink使用内存+JVM元空间+JVM执行开销

  1. 不建议同时设置进程总内存和 Flink总内存。这可能会造成内存配置冲突,从而导致部署失败。
  2. 通常情况下,不建议对框架堆内存和框架堆外内存进行调整。
  3. 如果只配置了进程总内存,则从进程总内存扣除JVM元空间和JVM执行开销,剩余内存作为Flink总内存
  4. 如果已经明确设置了任务堆内存和托管内存,建议不要再设置进程总内存或 Flink总内存,否则可能会造成内存配置冲突。
  5. 如果手动设置了托管内存,则使用其值,否则使用默认分配系数*Flink总内存
  6. 如果手动设置了网络缓冲内存,则使用其值,否则使用默认分配系数*Flink总内存
  7. 如果配置了Flink总内存,而没有配置Task堆上内存和托管内存,则从Flink总内存中划分网络缓冲内存和托管内存,剩下的作为Task内存。
  8. 在容器化部署模式(Containerized Deployment)下(Kubernetes 或 Yarn),建议配置进程总内存(taskmanager.memory.process.size 或者 jobmanager.memory.process.size)。 该配置参数用于指定分配给 Flink JVM 进程的总内存,也就是需要申请的容器大小。

关注gzh HEY DATA 一起交流更多。

网友评论