开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

Flink 1.15.2 内存已经调整到15GB了,每秒600多条数据。 这个有什么好的方式解决吗?

Flink 1.15.2, Flink MySql CDC 2.4.1. MySql中有一张表,其中一列是longtext, 存的值长度都很长,大部分1MB以上,有的几十MB. CDC的时候,只要有这个表就OOM,内存已经调整到15GB了,每秒600多条数据。 这个有什么好的方式解决吗?java.lang.OutOfMemoryError: GC overhead limit exceeded

展开
收起
真的很搞笑 2023-09-06 18:21:36 94 0
1 条回答
写回答
取消 提交回答
  • 如果您的 Flink 任务每秒处理的数据量较大,并且已经将内存调整到 15GB 但仍然无法满足需求,可以考虑以下几种方式来解决问题:

    增加集群资源:如果您的集群规模允许,可以增加 Flink 集群的计算资源,例如增加 TaskManager 的数量或增加 TaskManager 的内存大小,以提高整体的处理能力。

    调整任务并行度:可以尝试增加 Flink 任务的并行度,将数据并行处理在多个任务实例上,以提高整体的处理吞吐量。通过增加并行度,可以让任务更好地利用集群资源。

    优化算子和数据结构:检查任务中的算子实现和数据结构,优化代码逻辑和数据处理方式。例如,使用更高效的算法、数据结构和算子,减少不必要的内存开销和计算复杂度。

    调整窗口和水位线策略:如果任务中使用了窗口操作和水位线策略,可以根据实际需求和数据特点,调整窗口大小和水位线的生成逻辑,以减少数据的存储和计算开销。

    分区和数据本地性:根据数据的分布情况,合理划分任务的分区策略,将相关的数据分配到同一个任务实例上,以减少数据的网络传输和跨节点的通信开销。

    使用异步 IO 和批量提交:如果任务需要与外部系统进行交互,可以考虑使用异步 IO 或批量提交的方式来减少每条数据的交互成本,提高整体的处理效率。

    评估数据量和处理需求:重新评估数据量和处理需求,确保调整后的资源配置能够满足实际的数据处理要求。如果数据量持续增加,可能需要进一步调整和优化资源配置。

    需要注意的是,每个应用的情况可能不同,解决问题的方式也会有所差异。建议根据具体的场景和需求,结合实际的性能监控和调优分析,在多个方面进行综合优化,以获得更好的性能和吞吐量。

    另外,可以根据具体情况参考 Flink 的官方文档和社区资源,了解更多有关性能调优和资源管理的最佳实践。

    2023-10-23 11:51:44
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    Flink CDC Meetup PPT - 龚中强 立即下载
    Flink CDC Meetup PPT - 王赫 立即下载
    Flink CDC Meetup PPT - 覃立辉 立即下载