Flink检查点间隔和状态大小



我们正在运行一些Flink作业,所有作业都有kafka source和多个cassandra sinks。我们在很大程度上依靠具有降低功能的时间窗口,依靠钥匙数据。我们的TPS目前约为100-200。

我有一些有关检查点和保存状态的大小的问题:

  1. 由于我们使用的是减少功能,状态大小是否仅受打开窗口数量的影响?如果一个小时的窗口和一个分钟的窗口都具有相同的累加量,我们应该期望状态相似吗?由于某些原因,每小时窗口的状态比分钟窗的状态大得多,并且每日窗口的状态比小时窗口大。

  2. 什么被认为是合理数量的打开窗口?什么被认为是一个大国?最常见的检查点时间间隔是什么(我们的5秒钟对我来说频繁(,我们应该期望检查点有多长时间可节省1 GB的状态储存时间?如何在合理的时间内检查状态(我读过某些系统(的TB(我读过(?我知道这些是抽象的问题,但不确定我们的Flink设置是否按预期工作,并且随着数据的增长的期望。

  3. 在UI中看到异步和同步检查点时间。谁能解释为什么Flink都在使用?

感谢任何可以帮助任何问题的人。

有很多因素会影响检查点性能,包括您正在运行的Flink的版本,您正在使用的状态后端以及如何配置,以及哪种时间Windows涉及(例如滑动与翻滚窗户(。当涉及州的TBS时,增量检查站可能会产生巨大影响。

可能产生巨大影响的一个因素是不同时间间隔所涉及的不同键的数量。您已经指出这些是钥匙窗,我希望在一个小时的过程中,与典型的一分钟相比,使用的键更加不同。当第一个事件分配给它们时,窗口是懒惰的,因此与一分钟长的窗口相比,将为一个小时的窗口创建更多的钥匙窗口。为期一天的键窗将产生相同的效果,但程度较小。

您的每个操作员在检查点处理过程中经历(希望简短的(同步阶段,无论检查点的大部分是同步还是异,检查点的大部分。借助基于堆的状态后端,支持同步和异步快照 - 您需要异步快照才能达到最佳性能。

最新更新