flink1.12 内存和提交参数

时间:2021-08-15 23:08:46   收藏:0   阅读:273

在使用yarn cluster模式提交flink的任务时候,往往会涉及到很多内存参数的配置

例如下面的提交命令:

flink run -d -m yarn-cluster  -yjm 512 -ytm 5028  -yD jobmanager.memory.off-heap.size=64m -yD jobmanager.memory.jvm-metaspace.size=128m -yD jobmanager.memory.jvm-overhead.min=64m -yD  taskmanager.memory.jvm-metaspace.size=128m -yD taskmanager.memory.jvm-overhead.max=192m -yD taskmanager.memory.network.max=128m -yD taskmanager.memory.managed.size=64m -c com.xxx.xxx  ./xxx.jar

我们需要知道Jobmanager和Taskmanager对应的内存模型,来分配相应的内存,让内存利用率最大化。

JobManager内存模型:

技术分享图片

参数设置:

  那么如果设置了  -yjm 1024 ,JobManager的JVM的堆内存大小是多少呢?

  首先,在没有显示的设置其它内存的情况下,所有的内存组成部分都用默认值

  通过观察启动日志也可以发现:JVM Overhead的大小为448mb

  技术分享图片

  有点时候,我们会希望运用到JVM Head的内存更多一点,那么就可以尝试着把其它的部分调低,来给到JVM Head更多的内存。

TaskManager的内存模型:

  技术分享图片

  参数设置:

  那么如果设置了  -ytm 1024 、Managed Memory 为100mb,TaskManager的JVM的堆内存大小是多少呢?

  首先,在没有显示的设置其它内存的情况下,所有的内存组成部分都用默认值

  在启动日志中也能够看得到:

 技术分享图片

  技术分享图片

  在设置内存的时候 如果托管内存(Managed Memory)用不到的话,可以设置为0,以至于能将更多的内存用于JVM Head内存上。

 并行度和TaskManager的关系

  taskmanager的数量 = p / ys + 1
  jobmanager的数量 = 1
  消耗的container的数量 = TaskManager的数量+1,+1是因为还有JobManager这个进程。
  消耗的vcore的数量 =  TaskManager的数量 * solt + 1,+1理由同上
  消耗的yarn内存数 = jobmanager的数量 * yjm + taskmanager的数量 * ytm 

原文:https://www.cnblogs.com/yangsj666/p/15119841.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!