1、flink中taskmanager内存模型?
Task Manager的内存模型,分为5大部分:堆内存、堆外内存、直接内存、MetaSpace内存以及JVM Overhead内存。
如上图所示:
例如:taskmanager.memory.process.size = 4096m 那么总内存就是4GB
-
Heap
使用Java代码new出来的对象说占用的内存都是存放在Heap(堆)内存中,它由JVM垃圾收集器维护。
Native Memory/Off-Heap
NativeMemory或者是Off-heap是在进程地址空间内分配的内存,这部分内存不再堆内。JVM的GC是不会自动回收这个部分的内存的。
Direct Memory
Direct Memory是off-heap Big Memory的实现,能够在内存中序列化大批量的Java对象,并且不影响JVM GC性能。
Total Process Memory和Total Flink Memory。
Total Process Memory表示整个Task Manager的进程内存,所有这张图的内存加在一块就是Total Process Memory。
而Total Flink Memory表示Task Executor消耗的所有内存,也就是除了JVM Metaspace和JVM Overhead其他的加在一起就是Total Flink Memory。Task Executor是专门负责