栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

flink state存储(flink实时计算复杂例子)

flink state存储(flink实时计算复杂例子)

Flink 第1章 Flink资源与内存模型
资源配置调优

开发了一些程序,那么怎么评估这些程序所需要的资源配比这些呢?
比如使用标准的Flink任务提交脚本 Generic CLI模式(通用客户端模型)

从1.11开始,增加了通用的客户端模型 使用-D指定kv变量(这里演示以1.13.2为准)。

bin/flink run  
-t yarn-per-job  
-d 
-p 5   # 执行并行度
-Dyarn.application.queue=test  # 指定yarn队列
-Djobmanager.memory.preocess.size=1024mb  # 指定JM总进程的内存
-Dtaskmanager.memory.process.size=1024mb  #指定每个TM的总进程大小
-Dtaskmanage.numberOfTaskSlots=2  #指定每个TM的slot数
-c com.huangyichun.flink.Demo  #指定运行类
./flink-test-1.0.jar  #指定jar包


内存设置

在Flink1.10之后,对内存模型有很大的改动,变为以下图示:

两大部分,堆内存和堆外内存。


内存模型详解 JVM 特定内存

JVM本身需要使用到的内存,比如JVM的metaspace和over-head

JVM metaspace 元空间

taskmanager.memort.jvm-metaspace.size 256mb

JVM over-head 执行开销

JVM执行时自身所需要的内容,包括线程堆栈、IO、编译缓存等所使用的内存。有个OOM不就是 over-head

taskmanage.memory.jvm-overhead.fraction 0.1
taskmanage.memory.jvm-overhead.min 192mb
taskmanage.memory.jvm-overhead.max 1gb


Flink 框架内存

Flink框架,即TaskManager本身所占用的内存,不计入Slot的资源中。
分为两部分,堆内的和堆外的。

堆内

taskmanager.memory.framework.heap.size 128mb

堆外

taskmanager.memory.framework.off-heap.size 128mb


Task内存

Task 执行用户代码时所使用的的内存,也分为堆内和堆外。

堆内

taskmanager.memory.task.heap.size none
扣除其他部分的内存,剩余的

堆外

taskmanage.memory.task.off-heap.size 0
不适用堆外内存


网络内存

网络数据交换所使用的堆外内存大小,如网络数据交换缓冲区

网络内存

taskmanager.memory.network.fraction 0.1
这里注意并不是总内存的0.1,而是扣除JVM特定内存的0.1
taskmanager.memory.network.min 64mb
taskmanager.memory.nerwork.max 1gb


托管内存

托管内存,只要使用了RocksDB State Backend的本地内存和批的排序、哈希表、缓存中间结果就会占用这部分内存。

托管内存

taskmanager.memory.managed.fraction 0.4
taskmanager.memory.managed.size none
size为空则等于Flink内存*0.4

内存使用实例

比如程序直接提交到Yarn上去,设置了

taskmanager.memory.process.size 进程的总内存 = 4G。

那么从下往上开始计算。

JVM 执行开销
192mb<=4G*0.1<=1gb,那么就占用0.4G。
JVM 元空间
固定0.2G
Flink的内存
4G-0.4G-256mb =3.4G
管理内存
3.4G*0.4 = 1.36G
网络缓冲区
364mb<=3.4*0.1<=1gb,占用0.34G
Flink框架堆内对外
0.1G*2 = 0.2G
Task堆外
默认为0
Task堆内

4 − 0.4 − 0.2 − 1.36 − 0.34 − 0.2 − 0 = 1.5 G 4 - 0.4 -0.2 -1.36 - 0.34 -0.2 -0 =1.5 G 4−0.4−0.2−1.36−0.34−0.2−0=1.5G
(页面上可能有一点点偏差,为显示问题)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771770.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号