flink内存管理

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
简介: flink内存管理

Flink

Flink

60a6bcefe26f4b118e50f46e4d0afd1d.png

Flink

FlinkJVMTotalProcessMemoryFlink使FlinkFlinkJVM使FlinkTotalFlinkMemoryJVMHeapMemoryOff-HeapMemoryDirectMemoryNativeMemory

60a6bcefe26f4b118e50f46e4d0afd1d.png

75f0e2306cfe4b549332ab598e15c984.png

JobManager

JobManagerFlinkResourceManagerDispatcherJobMaster

60a6bcefe26f4b118e50f46e4d0afd1d.png

75f0e2306cfe4b549332ab598e15c984.png

TaskManager

FlinkTaskManagerTaskManagerFlink

60a6bcefe26f4b118e50f46e4d0afd1d.png

FlinkTaskManager

FrameworkHeapMemory taskmanager.memory.framework.heap.size FlinkJVM
TaskHeapMemory taskmanager.memory.task.heap.size FlinkJVM
Managedmemory

taskmanager.memory.managed.size

taskmanager.memory.managed.fraction

FlinkRocksDBStateBackend
FrameworkOff-heapMemory taskmanager.memory.framework.off-heap.size Flink
TaskOff-heapMemory taskmanager.memory.task.off-heap.size Flink
NetworkMemory

taskmanager.memory.network.min

taskmanager.memory.network.max

taskmanager.memory.network.fraction

Flink
JVMMetaspace taskmanager.memory.jvm-metaspace.size FlinkJVMMetaspace
JVMOverhead

taskmanager.memory.jvm-overhead.min

taskmanager.memory.jvm-overhead.max

taskmanager.memory.jvm-overhead.fraction

FlinkFlinkHadoop

TotalProcessMemory=2gb

TotalProcessMemory=TotalFlinkMemory+JVMMetaspace+JVMOverhead

JVMMetaspacetaskmanager.memory.jvm-metaspace.size,96mb

JVMOverhead:

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

JVMOverhead=TotalProcessMemory*taskmanager.memory.jvm-overhead.fraction=2gb*0.1=204.8mb

JVMOverhead<taskmanager.memory.jvm-overhead.mintaskmanager.memory.jvm-overhead.min;

JVMOverhead>taskmanager.memory.jvm-overhead.maxtaskmanager.memory.jvm-overhead.max;

taskmanager.memory.jvm-overhead.min<=JVMOverhead<=taskmanager.memory.jvm-overhead.maxJVMOverhead.

192mb<204.8mb<1gb, JVMOverhead=204.8mb

TotalFlinkMemory=TotalProcessMemory-JVMMetaspace-JVMOverhead=2gb-96mb-204.8mb=1747.2mb

Managedmemory=TotalFlinkMemory*taskmanager.memory.managed.fraction=1747.2mb*0.4=698.88mb

FrameworkOff-heapMemorytaskmanager.memory.framework.off-heap.size,128mb

TaskOff-heapMemory0byte

NetworkMemoryJVMoverhead

taskmanager.memory.network.min 64mb
taskmanager.memory.network.max 1gb
taskmanager.memory.network.fraction 0.1

TotalFlinkMemory*taskmanager.memory.network.fraction=1747.2mb*0.1=174.72mb

64mb<174.72mb<1gb NetworkMemory=174.72mb

DirectMemory=FrameworkOff-heapMemory+TaskOff-heapMemory+NetworkMemory=128mb+0+174.72mb=302.72mb

**OffHeapMemory**=Managedmemory+DirectMemory=698.88mb+302.72mb=1001.6mb

JVMHeap=TotalFlinkMemory-OffHeapMemory=1747.2mb-1001.6mb=745.6mb  web-ui

FrameworkHeapMemorytaskmanager.memory.framework.heap.size 128mb

TaskHeap JVMHeap-FrameworkHeapMemory=617.6mb

 

Flink

 

Flink


3.1Flink

FlinkMemorySegmentFlink32KBJavabyteNettyDirectByteBuffer

60a6bcefe26f4b118e50f46e4d0afd1d.png

HeapMemorySegment;


HybridMemorySegment;2017使HybridMemorySegment


Flink使MemorySegment

60a6bcefe26f4b118e50f46e4d0afd1d.png

Tuple3intdoublePersonPersonintIDStringname


1Tuple3intIntSerializerint


2PersonPojoPojoSerializer使MemorySegment


3.2Flink

MemorySegment访DataInputViewDataOutputView使MemorySegmentMemorySegment


3.2.1DataInputView

DataInputViewMemorySegmentjava.io.DataInputInputViewMemorySegmentMemorySegment[]MemorySegmentPage,MemorySegment

60a6bcefe26f4b118e50f46e4d0afd1d.png

3.2.2DataOutputView

DataOutputViewMemorySegmentjava.io.DataOutputOutputViewMemorySegmentMemorySegment[]MemorySegmentPage,MemorySegment

60a6bcefe26f4b118e50f46e4d0afd1d.png

3.2.3Buffer

BufferMemorySegmentTask


BufferNetworkBufferFlinkTaskManger使1NetworkBufferMemorySegmentBuffer

60a6bcefe26f4b118e50f46e4d0afd1d.png

BufferMemorySegmentBufferFlinkFlinkBuffer1Buffer10Buffer


3.2.4Buffer

BufferFlinkBufferPoolBufferPoolBufferBufferBufferLocalBufferPoolTaskLocalBufferPool


BufferPool

60a6bcefe26f4b118e50f46e4d0afd1d.png

(NetworkBuffer)

(NetworkBuffer)MemorySegment

60a6bcefe26f4b118e50f46e4d0afd1d.png

NetworkBuffer使BufferFlinkTask-


60a6bcefe26f4b118e50f46e4d0afd1d.png

-TaskTaskManager使


TMTM-

60a6bcefe26f4b118e50f46e4d0afd1d.png

NettyServerbufferLocalBufferPoolsubpartitionbufferbufferchannelbuffer(ExclusiveBuffers)buffer(FloatingBuffers)NetworkBuffer使


TaskManagerbuffersTaskManagerTask使networkbufferNetworkBuffer使NetworkBuffer

Flink

 

FlinkJobManagerMemoryTaskManagerMemory


5.1Standalone

StandaloneFlinkJobManagerTaskManagerflink.sizeFlink

参数配置:
taskmanager.memory.flink.size:
jobmanager.memory.flink.size:

5.2Containers()

KubernetesYarnprocess.sizeFlinkJVM

参数配置:
taskmanager.memory.process.size:
jobmanager.memory.process.size:


FlinkFlinkJVM

 

Flink


5.3statebackends()

statebackends()TaskManager

Flink使


5.3.1HashMap

使HashMapStateBackendJVM

配置参数:设置size:0
taskmanager.memory.managed.size:0

5.3.2RocksDB

EmbeddedRocksDBStateBackend使RocksDBRocksDBRocksDBTaskManager


5.4batchJob()

batchJob()TaskManager

FlinkJavaFlink使OutOfMemoryErrorsFlinkFlink



(98)Flink_湿-CSDN_flinklocalbufferpool





相关实践学习
基于Hologres轻松玩转一站式实时仓库
本场景介绍如何利用阿里云MaxCompute、实时计算Flink和交互式分析服务Hologres开发离线、实时数据融合分析的数据大屏应用。
Linux入门到精通
本套课程是从入门开始的Linux学习课程,适合初学者阅读。由浅入深案例丰富,通俗易懂。主要涉及基础的系统操作以及工作中常用的各种服务软件的应用、部署和优化。即使是零基础的学员,只要能够坚持把所有章节都学完,也一定会受益匪浅。
相关文章
|
4月前
|
关系型数据库 MySQL 数据库
实时计算 Flink版操作报错合集之网络缓冲池(NetworkBufferPool)中可用内存不足,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
5月前
|
消息中间件 存储 Kafka
实时计算 Flink版产品使用问题之 从Kafka读取数据,并与两个仅在任务启动时读取一次的维度表进行内连接(inner join)时,如果没有匹配到的数据会被直接丢弃还是会被存储在内存中
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
NoSQL 关系型数据库 MySQL
实时计算 Flink版产品使用问题之全量同步的内存释放该怎么实现
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
3月前
|
SQL 存储 关系型数据库
实时计算 Flink版产品使用问题之同步MySQL多张表的过程中,内存释放依赖于什么
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
存储 缓存 监控
Flink内存管理机制及其参数调优
Flink内存管理机制及其参数调优
|
4月前
|
SQL Java 调度
实时计算 Flink版产品使用问题之使用Spring Boot启动Flink处理任务时,使用Spring Boot的@Scheduled注解进行定时任务调度,出现内存占用过高,该怎么办
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
缓存 关系型数据库 MySQL
实时计算 Flink版产品使用问题之缓存内存占用较大一般是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
资源调度 Java 关系型数据库
实时计算 Flink版产品使用问题之如何解决内存占用过大的问题
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4月前
|
SQL 资源调度 关系型数据库
实时计算 Flink版产品使用问题之在使用Flink on yarn模式进行内存资源调优时,如何进行优化
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
6月前
|
消息中间件 SQL Java
实时计算 Flink版产品使用合集之管理内存webui上一直是百分百是什么导致的
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStreamAPI、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
下一篇
无影云桌面