赞
踩
官方给出的图示如下。
下面看图说话,分区域介绍之。
Flink总内存(Total Flink Memory)
Flink框架(Framework)内存
托管(Managed)内存
网络(Network)缓存
任务(Task)内存
TaskManager进程总内存(Total Process Memory)
JVM元空间(Metaspace)
JVM额外开销(Overhead)
含义
为JVM预留的其他本地内存,用于线程栈、代码缓存等,作用有些类似于之前版本中为容器预留的截断(cutoff)内存。当然在1.10版本中,原先的containerized.heap-cutoff-ratio与containerized.heap-cutoff-min参数对TM就不再生效了。
参数
上述内存参数会直接影响启动TaskManager时使用的JVM参数,使用相关工具可以观察到。
一大堆参数看得人眼花缭乱,但实际用起来并不需要管那么多。简而言之:
其他部分内存的分配大可交给Flink本身去决定。如果需要依照业务特点做微调的话,建议首先修改网络缓存占比taskmanager.memory.network.fraction(根据网络流量大小)与托管内存占比taskmanager.memory.managed.fraction(根据RocksDB状态大小等),进而能够间接影响任务内存的配额。手动指定较多的参数——特别是固定内存量的参数——容易使内存配额出现冲突,导致部署失败,要小心。
假设Flink on YARN环境,设置如下:
1 | taskmanager.memory.process.size = 4096 MB |
可以推算得出各内存指标为:
1 | taskmanager.memory.jvm-overhead = 4096 * 0.1 = 409.6 MB |
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。