本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
州无界增长
如果你的应用程序没有正确处置过时的状态信息,它会不断积累并导致应用程序性能或稳定性问题。本节介绍这种情况的症状和故障排除步骤。
征兆
这种情况可能为以下症状:
该
lastCheckpointDuration指标正在逐渐增加或激增。该
lastCheckpointSize指标正在逐渐增加或激增。
原因和解决方法
以下情况可能会导致您的应用程序积累状态数据:
您的应用程序保留状态数据的时间超过了所需的时间。
您的应用程序使用的窗口查询持续时间过长。
您没有为状态数据设置 TTL。有关更多信息,请参阅 Apache Flink 文档
中的状态生存时间 (TTL) 。 你正在运行一个依赖于 Apache Beam 2.25.0 或更高版本的应用程序。您可以通过扩展关键实验和价值来选择退出读取转换的新版本
use_deprecated_read。 BeamApplicationProperties有关更多信息,请参阅 Apache Beam 文档。
有时应用程序会面临不断增长的状态大小增长,从长远来看这是不可持续的(毕竟 Flink 应用程序可以无限期运行)。有时,这可以追溯到应用程序在状态下存储数据而没有正确老化旧信息。但有时人们对 Flink 能提供什么抱有不合理的期望。应用程序可以在跨越数天甚至数周的大时间窗口内使用聚合。AggregateFunctions
此外,在使用流程函数实现自定义运算符时,应用程序需要从状态中删除业务逻辑不再需要的数据。在这种情况下,状态 time-to-live
出于调试目的,禁用增量检查点以更快地验证检查点大小是否确实减小或稳定(并避免 RockSB 中压缩的影响)是有意义的。不过,这需要向服务团队出票。