佳豪你好,非常详细的描述

应该是低版本最后一个分片过大可能导致TM oom,具体修复是在[1] 。


祝好,
雪尽

[1]https://github.com/apache/flink-cdc/pull/3856



> 2025 5月 14 13:09,陈佳豪 <jagec...@yeah.net> 写道:
> 
> 尊敬的 Flink CDC 社区开发者和维护者们,
> 
> 
> 您好!
> 
> 
> 我在使用 Flink CDC 进行数据同步的过程中遇到了一个问题,希望能得到社区的帮助和建议,判断这是否为当前版本的一个 bug。以下是问题的详细描述:
> 
> 
> 
> 问题背景
> 我正在使用 Flink CDC 从源表同步数据,源表具有超过 100 个字段,数据量多达 200 万 + 条记录。在这个过程中,我使用的是 Flink 
> 版本 1.17.2,Flink CDC 版本为 2.4.2。
> 
> 
> 问题描述
> 在测试过程中,我发现 TaskManager 
> 的堆内存一直持续飙升,并且没有释放的迹象。即使任务已经完成部分数据的处理,堆内存的占用仍然居高不下,这可能会导致后续任务因为内存不足而失败。
> 
> 
> 已尝试的解决措施
> 为了解决这个问题,我进行了以下尝试,但均未取得明显效果:
> 1 调整 Flink 内存配置:   
> 
>   taskmanager.memory.process.size: 20000m
>   taskmanager.memory.jvm-overhead.fraction: 0.05
>   taskmanager.memory.managed.fraction: 0.05
>   taskmanager.memory.network.fraction: 0.05
> 2 调整 Flink SQL 增量快照读取大小:我在 Flink SQL 中尝试减小增量快照读取的大小,例如设置 
> scan.incremental.snapshot.chunk.size 为一个较小的值,但 TaskManager 堆内存仍然持续上升。
> 3 新版本测试情况(Flink 1.19.2 + Flink CDC 3.3.0)
> 当我将 Flink 升级到 1.19.2 版本,Flink CDC 升级到 3.3.0 版本,并且堆内存设置为 4g 时,发现 Task Heap 
> 稳定使用在 500m 左右,并不会出现堆内存飙升的情况。
> 
> 
> 期望确认的问题
> 基于以上情况,我想向社区咨询,这种 TaskManager 堆内存一直飙升且不释放的情况是否是 Flink 1.17.2 和 Flink CDC 
> 2.4.2 版本组合下的一个已知或未知的 bug?如果不是 bug,是否有其他的解决办法或者配置建议可以解决这个问题?
> 
> 
> 感谢社区的支持和帮助,期待您的回复。
> 
> 
> 祝好,

回复