Component | Configuration options | Description |
---|---|---|
Framework Heap Memory | taskmanager.memory.framework.heap.size |
JVM heap memory dedicated to Flink framework (advanced option) |
Task Heap Memory | taskmanager.memory.task.heap.size |
JVM heap memory dedicated to Flink application to run operators and user code |
Managed memory | taskmanager.memory.managed.size taskmanager.memory.managed.fraction |
Native memory managed by Flink, reserved for sorting, hash tables, caching of intermediate results and RocksDB state backend |
Framework Off-heap Memory | taskmanager.memory.framework.off-heap.size |
Off-heap direct (or native) memory dedicated to Flink framework (advanced option) |
Task Off-heap Memory | taskmanager.memory.task.off-heap.size |
Off-heap direct (or native) memory dedicated to Flink application to run operators |
Network Memory | taskmanager.memory.network.min taskmanager.memory.network.max taskmanager.memory.network.fraction |
Direct memory reserved for data record exchange between tasks (e.g. buffering for the transfer over the network), it is a capped fractionated component of the total Flink memory |
JVM metaspace | taskmanager.memory.jvm-metaspace.size |
Metaspace size of the Flink JVM process |
JVM Overhead | taskmanager.memory.jvm-overhead.min taskmanager.memory.jvm-overhead.max taskmanager.memory.jvm-overhead.fraction |
Native memory reserved for other JVM overhead: e.g. thread stacks, code cache, garbage collection space etc, it is a capped fractionated component of the total process memory |
JVM Parameters
Flink根据配置的或派生的内存组件大小,在启动任务执行程序进程时显式添加以下与内存相关的JVM参数:
JVM Arguments | Value |
---|---|
-Xmx and -Xms | Framework + Task Heap Memory |
-XX:MaxDirectMemorySize | Framework + Task Off-Heap + Network Memory |
-XX:MaxMetaspaceSize | JVM Metaspace |
Configure Total Memory
- 在Flink中设置内存的最简单方法是配置以下两个选项之一:
| Component | Option for TaskManager | Option for JobManager |
| :—- | :—- | :—- |
| Total Flink memory |
taskmanager.memory.flink.size
|jobmanager.memory.flink.size
| | Total process memory |taskmanager.memory.process.size
|jobmanager.memory.process.size
|
taskmanager.memory.process.size
- TM 的总内存: 粗粒度所有内存,不需要配置一般启动命令指定TM 内存
- 通常我们配置 TM 内存为 1g、2g 或 4g,对应的就是这个参数
- 注:请不要配置该参数,⼀般通过启动命令指定 TM 内存
- 命令:flflink run -yjm 4096 -ytm 4096
taskmanager.memory.flink.size
- TM 内 Flink 使⽤的总内存
- 计算规则:
process.size
-JVM Metaspace
-JVM Overhead
- 计算 flink.size 没有实质的意义,仅仅是为了计算其他参数,
- 例如 Heap 的⼤⼩就依赖 flink.size
- 注:请不要配置该参数,该参数会⾃动根据 TM 总内存⽽计算出来