Flink TaskManager内存计算图
计算实例
案例一、假设Task Process内存4GB。
taskmanager.memory.process.size=4096m
先排减JVM内存。
JVM Metaspace
固定内存256m
JVM Overhead
固定比例process * 0.1 = 4096 * 0.1 = 410m
得到Total Flink Memory = 4096-256-410 = 3430m
计算Total Flink Memory内的各内存
基数:3430m
Framework Heap
固定内存128m
Framework Off_Heap
固定内存128m
Task Off-Heap
固定内存0m
Network
固定比例flink * 0.1 = 3430 * 0.1 = 343m
Managed Memory
固定比例flink * 0.4 = 3430 * 0.4 = 1372m
Task 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
固定内存256m
JVM Overhead
待定
(2)计算Total Flink Memory内的各内存
Framework Heap
固定内存128m
Framework Off_Heap
固定内存128m
Task Off-Heap
固定内存0m
Network
参数指定128m
Managed Memory
参数指定512m
Task Heap
参数指定2048m
综合剩余内存 4096-256-128-128-0-128-512-2048 = 896m
所以剩余内存分配给 JVM Overhead
是 896m