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回复 内存模型获得内存配置示例。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容