Apache flink Apache Flink资源规划最佳实践

Apache flink Apache Flink资源规划最佳实践,apache-flink,flink-streaming,flink-cep,flink-sql,Apache Flink,Flink Streaming,Flink Cep,Flink Sql,我正在寻找建议/最佳实践,以确定在Flink Cluster上部署流媒体作业所需的最佳资源 资源是 每个TaskManager的任务插槽数 TaskManager的最佳内存分配 最大平行度 这提供了一些关于如何调整大小的想法。它旨在将正在开发的Flink应用程序转移到生产环境中 在此之前,我不知道有哪种资源可以帮助调整大小,因为作业的拓扑结构具有巨大的影响。所以你通常从PoC和低数据量开始,然后推断你的发现 有关内存设置的说明,请参阅。我也会为你的Flink版本使用合适的页面,因为它最近发生了变

我正在寻找建议/最佳实践,以确定在Flink Cluster上部署流媒体作业所需的最佳资源

资源是

  • 每个TaskManager的任务插槽数
  • TaskManager的最佳内存分配
  • 最大平行度
  • 这提供了一些关于如何调整大小的想法。它旨在将正在开发的Flink应用程序转移到生产环境中

    在此之前,我不知道有哪种资源可以帮助调整大小,因为作业的拓扑结构具有巨大的影响。所以你通常从PoC和低数据量开始,然后推断你的发现

    有关内存设置的说明,请参阅。我也会为你的Flink版本使用合适的页面,因为它最近发生了变化

  • 每个任务管理器的任务插槽数
  • 每个TM一个插槽是一个粗略的经验法则作为起点,但您可能希望将TMs的数量保持在100以下,大约。这是因为如果检查点协调器必须管理太多不同的TMs,那么它最终会遇到困难。与基于堆的状态后端相比,使用RocksDB每TM运行大量插槽效果更好,因为使用RocksDB的状态是堆外状态——使用堆上的状态,使用大量插槽运行会增加GC暂停的可能性

  • 最大平行度

  • 默认值为128。更改此参数非常痛苦,因为它会被烘焙到每个检查点和保存点中。但是,使其变得比需要的更大需要一些成本(内存/性能)。使其足够大,以便您永远不必更改它,但也不必更改得更大。

    在这种情况下,我们是否可以说FS state backend也比基于堆的state backend工作得更好?FS state backend是基于堆的state backend之一。