00:00
好了,那么接下来咱们要看task manager的一个内存模型,这个也是咱们的重点,什么时候改的呀,注意。1.10加粗啊。1.10的时候对task manager的内存模型做了巨大的改动,啊,巨大的改动,这个版本号大家要记住,因为这个也是一个常识,好吧,1.10task能理解好了,那么怎么改呢?哎。诶,卡住了。啊,这边咱们做了一个动图来1.10做了重大改动,啊,特地再强调一遍,好开始,那具体现在是什么样呢?点。Flink即使用了堆内存,也使用了堆外内存好点,首先有一块内存叫框架的内存,什么叫框架flink?本身就是flink框架嘛,对不对,或者说本身运行需要的内存对不对啊,那它框架用到的内存既包含了堆内存,也包含了对外内存啊,都用了啊都用了好。
01:13
咱们task执行的时候是不是在槽上面啊。哎,它是不是也需要内存呢?它既用了堆上内存,也用了堆外内存啊都用了啊都用了,诶大家注意这个框架可不记录slot资源啊。就前面这个框架不记录slot资源好再往后。对外内存还有一个叫网络缓冲内存,这个是干嘛的?数据传输是不是要通过网络缓冲啊,哎,这个就涉及到网络数据交换使用的这个缓冲区啊,就大家注意是不是在堆外啊,好再往下,那么堆外内存的这三个框架的,Task的,还有缓冲区的,在对外的这三个合起来统称叫直接内存。
02:04
啊,这三个叫直接内存。好再点,那么在对外内存里面,跟直接内存同级的还有一个叫管理内存,那这里面放啥东西啊。放的咱们做一些排序呀,哈希呀,比如说sot,还有哈希呀,还有缓存中间结果及这什么loss DB状态的本地内存,它用的是对外的管理内存。明白吧,对外的管理内存啊,是做这些事的。他是不是划分的很细啊,对吧,这是flink自主管理内存模型啊再点。那咱们说了JVM本身是不是有开销啊。对吧?什么开销?JVM原空间和执行开销,这个是JVM本身运行需要占用的资源,那么综合起来看,堆外内存是不是分了三块内容啊?
03:09
对不对啊好,再往下还没完。咱们有一个概念叫flink内存。啊,注意名词啊,Flink内存它指的是什么呢?对内对外都有,除了J本身的开销之外,这一块不包含其他的,堆内的堆外的都包括这一块,统称叫flink使用的内存。能理解吧?就抛开JVM本身的开销啊,剩下所有是flink内存。好,再往后。还有一个概念叫进程内存。进程内存是什么呢?所有的包含了JVM本身的开销,也就是flink内存,再加上JVM开销,这个叫进程内存。
04:04
怎么体现呢?来看咱们的配置文件,这是1.12版本的配置文件,看啊看task manager是不是有一个内存配置项啊,叫什么啊。说明这个配置的是什么进程内存,他在前面注释也讲到了,包括了。JVM本身的开销对吧,还有他说了还可以另一种配法,他住掉了,这个叫什么。Li内存不包含JVM开销啊,所以大家能理解这个区别吧,对吧?呃,那包括前面job manager也是表示进程内存,它也是包含了JVM自身的开销啊。这个内存模型大家要去记一下,还有这些名字好吧,怎么分布的啊?这个就是大家重点要记忆的一个东西,内存模型。
05:03
1.10啊1.10,那后面呢,其实呃,咱们也可以看一下源码里面啊,怎么来的,嗯,它是有这么一个类叫tasklink memory。这个东西来找CTRL加N粘贴好找到你看啊。他这个图是什么。这个图是什么?Flink内存不包含JVM开销对吧?啊,这是它的封装的一个类,它这个啊,内存模型对应的一个类就是这个好吧,你看分为对内对外啊,那这三个统称。直接内存还有一块叫管理内存对吧?啊,就你就记咱们那个PPT就可以了,好吧,那这个是官方截的一张图啊。那上面这个是咱们自己做的图,好吧,更直白一点,那下面呢,就是一些内存的解释了啊,内存的解释咱们简单。
06:09
丑吧,框架内存,刚才其实记这个就行了啊,框架内存是什么?是flink框架本身运行需要的内存对吧?好。Task内存,这个task执行的时候需要的内存,那么这两个是不是分别有对外也有跟它对应的呀,对吧,那我就不再啰嗦啊,对外的一样的,对外的一样的,好,那还有一个网络缓冲区,我们说什么数据通过网络传输的时候需要有一个缓冲区,用的是这个啊,好再往后。管理内存刚才也讲了。对外的这个管理内存用于排序哈希中间结果,还有lost DB本地内存的存储。本地内存。DB干嘛的?
07:01
是不是lost DB类型的状态后端呢?状态后端是不是关注两件事情,第一件事。本地状态存在哪里?第二件事,Checkpoint存在哪里?是不是?那么本地内存是不是存在RODB里面了?Lo DB又用到的内存加磁盘对吧,那lo DB用到的内存就在这里。就到这里,那后面呢,两个JVM本身需要用到的啊,需要用到的。好,那最后就是总体内存两个概念,一个进程内存,一个叫flink内存,对吧?啊,它们的区别在哪里啊。包不包括JVM原空间跟执行开销对吧?哎,包不包括这个啊,那这个呢,就是咱们前面这一块内存模型啊内存模型。
我来说两句