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

flink1.14的网络缓存消胀机制,如果只是逻辑减少buffer的大小,这是不是会导致内存浪费?

flink1.14的网络缓存消胀机制,如果只是逻辑减少buffer的大小,并物理的大小不变,这是不是会导致内存浪费?它是会改变所有的subtask的buffer大小吗?还是只有某个subtask?

展开
收起
真的很搞笑 2024-01-04 12:21:58 99 0
2 条回答
写回答
取消 提交回答
  • Flink 1.14的网络缓存消胀机制主要是通过减少每个subtask的buffer大小来降低网络传输和内存占用。如果只是逻辑减少buffer的大小,而物理的大小不变,这可能会导致内存浪费。因为缓冲区的大小是固定的,即使减少了逻辑上的缓冲区大小,物理上的空间仍然会被占用。

    在 Flink 中,网络缓存消胀机制会改变所有的 subtask 的 buffer 大小。具体来说,它会计算所有 subtask 的缓冲区大小总和,然后根据需要减少的逻辑缓冲区大小来计算新的缓冲区大小。这样,每个 subtask 的缓冲区大小都会相应地减小,从而降低网络传输和内存占用。

    2024-01-05 16:09:27
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    Flink 1.14引入的网络缓存消胀机制的主要目标是通过自动调整缓冲数据量到一个合理值,来解决因网络传输中buffer过大导致的内存浪费问题。这种机制会根据subtask的实际需求动态调整其缓冲区大小,而不仅仅是逻辑上的减少。这意味着,如果某个subtask需要更多的buffer空间,该机制会增加其缓冲区大小;反之,如果某个subtask的缓冲区使用较少,该机制则会相应地减少其缓冲区大小。

    具体来说,Flink的TaskManager会定期检查每个subtask的缓冲区使用情况,并根据这些信息来调整其缓冲区大小。此外,为了确保系统的稳定性和性能,Flink还提供了一些相关的配置选项,如taskmanager.network.memory.buffer-debloat.enabledtaskmanager.network.memory.buffer-debloat.period,允许用户自定义缓存消胀操作的启用策略和时间周期。

    总的来说,Flink 1.14的网络缓存消胀机制不仅可以有效地避免内存浪费,还可以根据实际的业务需求为每个subtask提供合适的缓冲区大小。

    2024-01-04 16:35:04
    赞同 展开评论 打赏

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

相关产品

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

    更多
    用户态高速块缓存方案 立即下载
    云服务器ECS内存增强型实例re6全新发布 立即下载
    高性能Web架构之缓存体系 立即下载