Flink JobManager | TaskManager内存模型

Flink内存模型分析

JobManager内存模型
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 HEYDATA回复 内存模型获得内存配置示例。

你可能感兴趣的:(Flink JobManager | TaskManager内存模型)