Jorgen's blog Jorgen's blog
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
newland
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

jorgen

Love it, make mistakes, learn, keep grinding.
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
newland
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 大数据入门
  • flink
  • flink第二弹
  • Flink-Config
    • 内存配置
      • Flink进程内存
      • JobManager
      • Taskmanager
      • 部署推荐
  • Flink架构原理:深入理解分布式数据处理引擎
  • Flink API编程模型-掌握DataStream与Table API
  • Flink SQL与Table API - 结构化数据处理的新范式
  • Flink SQL与Table API - 结构化数据处理的高级接口
  • Flink Table API & SQL - 关系型数据处理在流计算中的应用
  • Flink核心API详解-掌握流处理编程模型
  • Flink核心编程模型与DataStream API实践指南
  • Flink流批统一模型-批处理是流处理的一种特殊情况
  • Flink状态管理-流处理应用的核心支柱
  • Flink状态管理与容错机制-保证流处理可靠性的核心
  • Flink状态管理与容错机制-构建可靠的数据处理管道
  • Flink状态管理与容错机制-构建可靠的流处理应用
  • Flink状态管理与容错机制
  • HDFS架构原理-大数据存储的基石
  • Flink性能优化与调优-构建高效流处理应用的关键
  • Flink连接器详解-无缝集成外部系统的桥梁
  • Flink部署与运维-构建稳定可靠的流处理平台
  • Flink的窗口机制与时间语义-流处理的核心支柱
  • Flink的Watermark机制-流处理中的时间控制器
  • Flink CEP详解-流数据中的复杂事件处理
  • Flink作业提交与资源管理-构建高效流处理应用的关键
  • Flink与机器学习:构建实时智能数据处理管道
  • Flink的测试与调试-构建健壮流处理应用的关键
  • Flink Exactly-Once语义实现-构建高可靠流处理应用的核心
  • Flink的监控与可观测性-构建健壮流处理系统的眼睛
  • Flink CDC入门与实践:构建实时数据同步管道
  • big_data
Jorgen
2024-03-01
目录

Flink-Config

# 内存配置

# Flink进程内存

配置 Flink 进程内存最简单的方法是指定以下两个配置项中的任意一个:

配置项 TaskManager配置参数 JobManager配置参数 包含模块
Total process memory
进程总内存
taskmanager.memory.process.size jobmanager.memory.process.size 1. Total Flink memory 2. 运行 Flink 的 JVM 使用的内存
Total Flink memory
Flink总内存
taskmanager.memory.flink.size jobmanager.memory.flink.size 1. JVM Heap
2. Off-heap memory
2- 1. Direct
2- 2. Native

不建议同时设置进程总内存(Total process memory)和 Flink 总内存(Total Flink memory)。 这可能会造成内存配置冲突,从而导致部署失败。 额外配置其他内存部分时,同样需要注意可能产生的配置冲突。

详细参见:配置 Flink 进程的内存 (opens new window)

clash

# JobManager

如果同时配置了 Flink 总内存(Total Flink Memory)和 JVM 堆内存(JVM Heap),且没有配置堆外内存,那么堆外内存的大小将会是 Flink 总内存(Total Flink Memory)减去JVM 堆内存(JVM Heap)。 这种情况下,堆外内存的默认大小将不会生效。

组成部分 配置参数 描述
JVM HeapJVM 堆内存 jobmanager.memory.heap.size JobManager 的 JVM 堆内存。
Off-Heap Memory 堆外内存 jobmanager.memory.off-heap.size JobManager 的堆外内存(直接内存或本地内存)。
JVM Metaspace jobmanager.memory.jvm-metaspace.size Flink JVM 进程的 Metaspace。
JVM OverheadJVM 开销 jobmanager.memory.jvm-overhead.minjobmanager.memory.jvm-overhead.maxjobmanager.memory.jvm-overhead.fraction 用于其他 JVM 开销的本地内存,例如栈空间、垃圾回收空间等。该内存部分为基于进程总内存 (opens new window)的受限的等比内存部分 (opens new window)。

如果已经明确设置了 JVM 堆内存,建议不要再设置进程总内存(total process memory)或 Flink 总内存(total Flink memory),否则可能会造成内存配置冲突。

详情参见:配置 JobManager 内存 (opens new window)

clash

# Taskmanager

组成部分 配置参数 描述
Framework Heap框架堆内存 taskmanager.memory.framework.heap.size 用于 Flink 框架的 JVM 堆内存(进阶配置)。
Task Heap任务堆内存 taskmanager.memory.task.heap.size 用于 Flink 应用的算子及用户代码的 JVM 堆内存。
Managed Memory托管内存 taskmanager.memory.managed.size
taskmanager.memory.managed.fraction
由 Flink 管理的用于排序、哈希表、缓存中间结果及 RocksDB State Backend 的本地内存。
Framework Off-Heap
框架堆外内存 taskmanager.memory.framework.off-heap.size 用于 Flink 框架的堆外内存(直接内存或本地内存)(进阶配置)。
Task Off-Heap任务堆外内存 taskmanager.memory.task.off-heap.size 用于 Flink 应用的算子及用户代码的堆外内存(直接内存或本地内存)。
Network网络内存 taskmanager.memory.network.min
taskmanager.memory.network.max
taskmanager.memory.network.fraction
用于任务之间数据传输的直接内存(例如网络传输缓冲)。该内存部分为基于 Flink 总内存的受限的等比内存部分。这块内存被用于分配网络缓冲
JVM Metaspace taskmanager.memory.jvm-metaspace.size Flink JVM 进程的 Metaspace。
JVM Overhead taskmanager.memory.jvm-overhead.min
taskmanager.memory.jvm-overhead.max
taskmanager.memory.jvm-overhead.fraction
用于其他 JVM 开销的本地内存,例如栈空间、垃圾回收空间等。该内存部分为基于进程总内存的受限的等比内存部分。

详情参见:配置 TaskManager 内存 (opens new window)

# 部署推荐

独立部署模式下,通常更关注 Flink 应用本身使用的内存大小。 建议配置

  • Flink 总内存(taskmanager.memory.flink.size 或者 jobmanager.memory.flink.size)
  • 其组成部分。 此外,如果出现 Metaspace 不足的问题,可以调整 JVM Metaspace 的大小。 这种情况下通常无需配置进程总内存,因为不管是 Flink 还是部署环境都不会对 JVM 开销 进行限制,它只与机器的物理资源相关。
上次更新: 2026/01/28, 13:30:02
flink第二弹
Flink架构原理:深入理解分布式数据处理引擎

← flink第二弹 Flink架构原理:深入理解分布式数据处理引擎→

最近更新
01
LLM
01-30
02
intro
01-30
03
intro
01-30
更多文章>
Theme by Vdoing | Copyright © 2019-2026 Jorgen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式