Flink TaskManager内存计算图

计算实例
案例一、假设Task Process内存4GB。
taskmanager.memory.process.size=4096m
先排减JVM内存。
JVM Metaspace固定内存256mJVM Overhead固定比例process * 0.1 = 4096 * 0.1 = 410m
得到Total Flink Memory = 4096-256-410 = 3430m
计算Total Flink Memory内的各内存
基数:3430m
Framework Heap固定内存128mFramework Off_Heap固定内存128mTask Off-Heap固定内存0mNetwork固定比例flink * 0.1 = 3430 * 0.1 = 343mManaged Memory固定比例flink * 0.4 = 3430 * 0.4 = 1372mTask Heap剩余内存3430-128-128-0-343-1372=1459m
案例二、指定部分参数
指定
taskmanager.memory.process.size=4096mb
taskmanager.memory.task.heap.size=2048mb
taskmanager.memory.managed.size=512mb
taskmanager.memory.network.max=128mb
基本还是基于以上计算逻辑。但是剩余内存会分配给JVM Overhead了。如下图:

计算过程如下:
总Flink Process内存设置4096m
(1)JVM内存
JVM Metaspace固定内存256mJVM Overhead待定
(2)计算Total Flink Memory内的各内存
Framework Heap固定内存128mFramework Off_Heap固定内存128mTask Off-Heap固定内存0mNetwork参数指定128mManaged Memory参数指定512mTask Heap参数指定2048m
综合剩余内存 4096-256-128-128-0-128-512-2048 = 896m
所以剩余内存分配给 JVM Overhead 是 896m










