要调优的 Flink 流参数?

问题描述

我目前正在从事一个名为Automatic Tuning for Flink Streaming Framework的项目。
基本上,我们的目标是创建一个模型(强化学习代理)来为 Flink 参数选择最佳值。此类问题出现在 Spark 框架中,例如,选择正确的配置可能具有挑战性,如果不正确配置可能会对性能产生重大影响。

我想知道的是:

  1. 除了代码优化之外,还有哪些参数需要在 Flink 的流式作业中进行调整?
  2. 是否有专家创建的我们需要关注的参数候选清单?
  3. 选择正确的参数是否需要一个可训练的模型(一个复杂的过程),或者它可能没有那么具有挑战性?

谢谢。

解决方法

除了代码优化之外,还有许多参数是您在调整作业时应该考虑的,这些参数主要是与状态、内存和检查点相关的参数。

但是,我不认为有一个列表描述了在调整时应该考虑的所有参数。我首先要检查的是documentation。我会检查 checkpointingmemorystate backends 部分。还有很多关于 Flink 调优的介绍你应该检查参数的想法,试试 this one

设置适当的参数值可能与问题非常相关,特别是可能特定于处理的数据量和状态大小,因此创建的模型必须将这些考虑在内。

,

在某些情况下,有很多参数会对 Flink 应用程序的性能产生重大影响。但我不认为你可以训练一个模型来学习任何有用的东西。参数空间很大,在某些情况下帮助一个应用程序的更改甚至可能不会帮助同一应用程序在不同的上下文(即,在不同的规模)中运行,更不用说对调整其他应用程序有用了。>