首页 笔记 图片 查字 
所属分类:Flink
关键词: Flink 内存 模型
浏览:112
内容:

Memory Model内存模型图



基本概念:

JVM Heap

JVM堆内存


JVM Off-Heap

JVM堆外内存


Direct Memory

直接内存


1、Total Process Memory  

整个TaskManager进程的内存

配置 taskmanager.memory.process.size: xxxm,默认为1728m


    1.1、Total Flink Memory

    属于Flink的内存

    配置 taskmanager.memory.flink.size: xxxm,没有默认值


        1.1.1、JVM Heap

            1.1.1.1、Framework Heap

            TaskManager框架自己所以的Heap内存,不用于执行task

            配置 taskmanager.memory.framework.heap.size: xxxm,默认为128m


            1.1.1.2、Task Heap

            执行task所需的Heap内存

            配置 taskmanager.memory.task.heap.size: xxxm,默认等于 Total Flink Memory – Framework Heap – Managed Memory – Direct Memory


        1.1.2、Managed Memory

        属于Off Heap内存,主要用于排序、哈希表、中间结果缓存、RocksDB的backend

        配置 taskmanager.memory.managed.size: xxxm,没有默认值

        配置 taskmanager.memory.managed.fraction: 0.xx,默认为0.4,即Total Flink Memory的40%

        

        1.1.3、Direct Memory

            1.1.3.1、Framework Off-Heap

            taskManager保留的Off-Heap内存,不会分配给任何slot

            配置 taskmanager.memory.framework.off-heap.size: xxxm,默认为128m,不建议修改


            1.1.3.2、Task Off-Heap

            用于Flink代码中调用Native方法

            配置 taskmanager.memory.task.off-heap.size: xxxm,默认为0m

            

            1.1.3.3、Network

            Task与Task之间进行数据Shuffle时的缓存内存

            配置 taskmanager.memory.network.min: xxxm,默认为64m

            配置 taskmanager.memory.network.max: xxxm,默认为1g

            配置 taskmanager.memory.network.fraction: 0.xx,默认为0.1


    1.2、JVM Metaspace

    属于Off Heap内存,主要储存类的元数据

    配置 taskmanager.memory.jvm-metaspace.size: xxxm,默认为256m

    

    1.3、JVM Overhead

    属于Off Heap内存,保留给JVM其他的内存开销

    配置 taskmanager.memory.jvm-overhead.min: xxxm,默认为192m

    配置 taskmanager.memory.jvm-overhead.max: xxxm,默认为1g

    配置 taskmanager.memory.jvm-overhead.fraction: 0.xx,默认为0.1