Amazon Managed Service for Apache Flink 之前稱為 Amazon Kinesis Data Analytics for Apache Flink。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
无界状态增长
如果應用程式未正確處置過期的狀態資訊,這些資訊會持續累積並導致應用程式效能或穩定性問題。本節說明此狀況的徵狀和疑難排解步驟。
徵狀
這種情況可能有下列徵狀:
lastCheckpointDuration
指標正在逐漸增加或急劇增加。lastCheckpointSize
指標正在逐漸增加或急劇增加。
原因和解決方案
下列情況可能會導致應用程式累積狀態資料:
應用程式保留狀態資料的時間超過需要的時間。
應用程式使用持續時間過長的視窗查詢。
您尚未為狀態資料設定 TTL。如需詳細資訊,請參閱 Apache Flink 文件中的狀態存留時間 (TTL)
。 您正在執行的應用程式相依於 Apache Beam 2.25.0 版或更高版本。您可以通過擴展關鍵實驗和值來選擇退出讀取轉換的新版本
use_deprecated_read
。 BeamApplicationProperties如需詳細資訊,請參閱 Apache Beam 文件。
應用程式有時會面臨持續擴增的狀態大小增長,從長遠來看,這是不可持續的 (畢竟 Flink 應用程式會無限期地執行)。有時,這可以追溯至存儲狀態資料且未正確地老化舊資訊的應用程式。但是有時候,使用者對 Flink 可以提供的東西抱有根本不合理的期望。應用程式可以在跨越數天甚至數週的長時段內使用彙總。除AggregateFunctions
此外,當使用進程函數來實作自訂運算子時,應用程式需要從業務邏輯不再需要的狀態中移除資料。在這種情況下,state time-to-live
出於偵錯目的,停用增量檢查點以更快速地驗證檢查點大小是否確實減小或穩定 (並避免 RocksBS 壓縮的影響) 是可行的。但是,這需要提交票證給服務團隊。