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