MapReduce服务 MRS-Flink性能调优建议:内存总体调优
内存总体调优
Flink内部对内存进行了划分,整体上划分成为了堆内存和堆外内存两部分。Java堆内存是通过Java程序创建时指定的,这也是JVM可自动GC的部分内存。堆外内存可细分为可被JVM管理的和不可被JVM管理的,可被JVM管理的有Managed Memory、Direct Memory,这部分是调优的重点,不可被JVM管理的有JVM Metaspace、JVM Overhead,这部分是native memory。

参数 |
配置 |
注释 |
说明 |
---|---|---|---|
Total Memory |
taskmanager.memory.flink.size: none |
总体Flink管理的内存大小,没有默认值,不包含Metaspace和Overhead,Standalone模式时设置。 |
整体内存。 |
taskmanager.memory.process.size: none |
整个Flink进程使用的内存大小,容器模式时设置。 |
||
FrameWork |
taskmanager.memory.framework.heap.size: 128mb |
runtime占用的heap的大小,一般来说不用修改,占用空间相对固定。 |
RUNTIME底层占用的内存,一般不用做较大改变。 |
taskmanager.memory.framework.off-heap.size: 128mb |
runtime占用的off-heap的大小,一般来说不用修改,占用空间相对固定。 |
||
Task |
taskmanager.memory.task.heap.size:none |
没有默认值,flink.size减去框架、托管、网络等得到。 |
算子逻辑,用户代码(如UDF)正常对象占用内存的地方。 |
taskmanager.memory.task.off-heap.size:0 |
默认值为0,task使用的off heap内存。 |
||
Managed Memory |
taskmanager.memory.managed.fraction: 0.4 |
托管内存占taskmanager.memory.flink.size的比例,默认0.4。 |
managed内存用于中间结果缓存、排序、哈希等(批计算),以及RocksDB state backend(流计算),该内存在批模式下一开始就申请固定大小内存,而流模式下会按需申请。 |
taskmanager.memory.managed.size: 0 |
托管内存大小,一般不指定,默认为0,内存大小由上面计算出来。若指定了则覆盖比例计算的内存。 |
||
Network |
taskmanager.memory.network.min:64mb |
网络缓存的最小值。 |
用于taskmanager之间shuffle、广播以及与network buffer。 |
taskmanager.memory.network.max:1gb |
网络缓存的最大值。( MRS 3.3.1及之后版本无需修改该值,默认值已为Long#MAX_VALUE) |
||
taskmanager.memory.network.fraction:0.1 |
network memory占用taskmanager.memory.flink.size的大小,默认0.1,会被限制在network.min和network.max之间。 |
用于taskmanager之间shuffle、广播以及与network buffer。 |
|
Others |
taskmanager.memory.jvm-metaspace.size:256M |
metaspace空间的最大值,默认值256MB。 |
用户自己管理的内存。 |
taskmanager.memory.jvm-overhead.min:192M |
jvm额外开销的最小值,默认192MB。 |
||
taskmanager.memory.jvm-overhead.max:1G |
jvm额外开销的最大值,默认1GB。 |
||
taskmanager.memory.jvm-overhead.fraction:0.1 |
jvm额外开销占taskmanager.memory.process.size的比例,默认0.1,算出来后会被限制在jvm-overhead.min和jvm-overhead.max之间。 |

3.3.1及之后版本无需修改taskmanager.memory.network.max网络缓存的最大值
- 文档数据库服务DDS性能调优_MongoDB性能调优_华为云
- GaussDB性能怎么调_GaussDB性能调优_高斯数据库性能怎么调-华为云
- GaussDB硬件_金融级高可用_高斯数据库硬件-华为云
- GaussDB计算性能_gaussdb递归_高斯数据库计算性能_华为云
- GaussDB案例指南_高斯数据库函数_高斯数据库案例指南_华为云
- GaussDB数据库参数调优_GaussDB版本_高斯数据库参数调优
- GaussDB性能_性能统计_高斯数据库性能-华为云
- GaussDB数据库设计_GaussDB教程_高斯数据库设计
- MapReduce服务_什么是MapReduce服务_什么是HBase
- GaussDB华为部署_高斯数据库_高斯数据库华为部署_华为云