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

Flink CDC 中Managed内存为什么一直都是100%,应该是没用到这部分内存?

Flink CDC 中Managed内存为什么一直都是100%,应该是没用到这部分内存?

展开
收起
真的很搞笑 2023-07-02 17:23:34 768 0
2 条回答
写回答
取消 提交回答
  • 在 Flink CDC 中,Managed Memory(托管内存)的使用率通常会显示为100%。这是因为 Flink 的 TaskManager 会预留一定的 Managed Memory,但实际上大部分情况下并没有被使用。

    Managed Memory 主要用于存储 Flink 算子的状态和缓存数据,例如 RocksDB 的内存缓存和状态后端的内存存储等。然而,Flink CDC 并不需要维护这些状态和缓存数据,因此并没有实际使用 Managed Memory。

    虽然 Managed Memory 的使用率显示为100%,但这并不代表 Flink CDC 在使用该部分内存。实际上,Flink CDC 的内存使用率主要取决于它所使用的 JVM 堆内存和 Off-heap 内存的使用情况。

    如果你观察到 Flink CDC 整体内存使用率过高,可能需要调整 Flink 的配置,以增加可用的内存资源或者优化任务的并行度和资源分配策略。具体的调整方法可以参考 Flink 的文档和配置指南,根据你的场景和需求进行相应的设置。

    需要注意的是,通过监控工具查看 Flink Web UI 或者 TaskManager 的日志中的 Managed Memory 使用率时,即使 Flink CDC 并未使用该部分内存,显示的使用率也会是100%。这是由于 Flink 的预留机制导致的,并不表示实际的内存使用情况。

    2023-07-30 10:54:54
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在 Flink 中,Managed Memory(托管内存)通常被用于存储 Flink 算子的状态和缓存数据,如 RocksDB 的内存缓存和状态后端的内存存储等。而 Flink CDC 因为并不需要维护这些状态和缓存数据,因此 Managed Memory 中的内存大部分情况下是没有被使用的。
    在 Flink 的 WebUI 或者 TaskManager 的日志中,Managed Memory 的使用率一般都是 100%。这是因为 Flink 的 TaskManager 会预留一定的 Managed Memory,但这部分内存实际上并没有被使用。因此,即使 Flink CDC 并不需要使用 Managed Memory,它在 WebUI 或者日志中的使用率也会显示为 100%。
    需要注意的是,Managed Memory 部分的使用率并不代表 Flink CDC 的整体内存使用率。Flink CDC 的内存使用率主要取决于它所使用的 JVM 堆内存和 Off-heap 内存的使用情况。如果您发现 Flink CDC 的整体内存使用率过高,可能需要调整 Flink 的

    2023-07-30 09:44:33
    赞同 展开评论 打赏

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

相关产品

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

    更多
    Flink CDC Meetup PPT - 覃立辉 立即下载
    Flink CDC Meetup PPT - 孙家宝 立即下载
    Flink CDC Meetup PPT - 徐榜江 立即下载