共享的检查点非常大

时间:2019-10-14 08:16:08

标签: apache-flink flink-streaming

我以16个并行度运行flink应用程序。 20分钟后,共享检查点将增加到235MB。我该如何处理。很长一段时间都很大。

  • 每个任务管理器都是Openshift Pod
  • 任务管理器:4
  • 每个任务管理器的任务:4
  • 每个任务管理器的CPU:4核
  • 每个任务管理器的内存:6GB
  • 使用过的Rocksdb状态项
  • 启用了增量检查点

  • 下面的图像用于任务管理器(Pod)

enter image description here

1 个答案:

答案 0 :(得分:1)

Flink将仅使用执行您要求的状态所需的状态空间。如果您对结果不满意,则需要以某种方式要求它减少操作量。

您可以执行以下操作:

  • 确保您的应用程序没有泄漏状态。例如,如果您使用具有无限制键空间的键控状态,并且没有清除状态,则会发生这种情况。
  • 建立状态保留间隔(用于Table / SQL API)。
  • 使用状态TTL释放不需要的状态。

某些反模式需要在状态中进行大量缓冲。您应该避免这些。 :)

您可以限制可用于存储状态的资源,但是当这些资源用尽时,这将导致作业失败。

对于RocksDB,跨16个插槽的235MB并不是很大。通过增量检查点,RocksDB可存储状态的多个(未压缩的)副本。您正在使用的实际活动状态可能要少得多。