Flink 优化-资源配置优化
一、资源配置优化
1.1 内存设置
1.1.1 TaskManager 内存模型

- Flink 框架内存使用了堆上内存和堆外内存,且不计入 slot 资源
- Task 执行的内存使用了堆上内存和堆外内存
- 网络缓冲内容:网络数据交换所使用的堆外内存大小,如网络数据交换区
- 框架堆外内存、Task 堆外内存、网络缓冲区内存,都在堆外内存的直接内存里
- 管理内存:Flink 管理的堆外内存。用于管理排序、哈希表、缓存中间结果及 RocksDB State Backend 的本地内存
- JVM 特有内存:JVM 本身占用的内存,包括元空间和执行开销
- Flink 使用内存 = 框架堆外内存 + Task 堆内和堆外内存 + 网络缓内容 + 管理内存
- 进程内存 = Flink 内存 + JVM 特有内存
1.1.2 内存配置详解
- JVM 特有内存
 
 1)元空间:
 taskmanager.memory.jvm-metaspace.size,默认 256mb
 2)执行开销:JVM 执行时自身所需要的内容,包括线程堆栈、IO、编译缓存等所使用的内存taskmanager.memory.jvm-overhead.fraction,默认 0.1 taskmanager.memory.jvm-overhead.min,默认 192mb taskmanager.memory.jvm-overhead.max,默认 1gb总进程内存 * fraction,如果小于配置的 min(或大于配置的 max )大小,则使用 min/max 大小 
- 框架内存:Flink 框架,即 TaskManager 本身所占用的内存,不计入 Slot 的资源中。
 堆内:taskmanager.memor
