排查Flink状态膨胀导致Checkpoint超时的问题

记录一次问题解决的过程。

生产中有个设备运行状态持续时间计算的任务,当设备的数据量由1000+加到8000+,每秒采集一次的设备的状态和各项指标发送到kafka给到flink进行处理。状态持续时间计算的算子中状态的checkpoint频繁超时,监控显示当个TaskManager的状态达2G,RocksDB的写入延迟飙升到几百毫秒。业务方反馈统计滞后越来越严重。

  1. 定位根因 :通过Flink UI中的SubTask分析State Size,发现MapState占了90%的状态量。检查代码发现,每次状态变更都追加时间戳,但从未清理过期数据------实际上只需要知道当前状态的开始时间,完全不需要保存历史时间戳。

  2. 重构状态结构 :将MapState<Long, Long>改为ValueState<StatusRecord>,其中StatusRecord只存两个字段:currentStatusstatusStartTime。这样每个设备只存一个对象,状态量从每台上千个时间戳骤降到1个。

  3. 设置TTL :使用StateTtlConfigValueState设置24小时TTL,并将cleanupStrategies设为基于RocksDB的Compaction过滤,避免由于惰性清理导致状态无限残留。

  4. 优化RocksDB参数 :将state.backend.rocksdb.writebuffer.size从32MB调到64MB,开启增量Checkpoint,缩短快照时间。

通过修改以上参数,重启flink集群及任务后,问题得到了解决。

相关推荐
北方的银狐-Zero1 小时前
ERP 管执行,数据管标准,OntoL本体 管思考:企业智能化升级的规划图
大数据·人工智能·本体论
四季豆332 小时前
数据质量管理的内涵与评估
大数据
净水深流3 小时前
中央厨房冷链技术实践:多温区改造、WMS落地与IoT温控架构
大数据·数据库·人工智能·冷库冷链
是Yu欸3 小时前
鸿蒙PC移植:2048 从网页小游戏到 AI 桌面应用
大数据·人工智能·算法·数据挖掘·openharmony·codex
智搜广告4 小时前
智搜广告:科技行业AI回答优化公司如何破局
大数据·python·elasticsearch·geo
湘美书院--湘美谈教育4 小时前
湘美书院AI时代的禅悟集:人机智能,反照诸我
大数据·人工智能·深度学习·机器学习·生活
电商API_180079052476 小时前
拍照找同款是怎么实现的?淘宝以图搜图接口 item_search_img 对接实战
大数据·爬虫·数据挖掘·数据分析·代采api
洋洋不叫杨杨8 小时前
Codex 实战:用 AI 写运维脚本
大数据·python
Regentsoft丽晶软件8 小时前
即时零售退货的库存归属、质检标准和退款时效,系统如何做到自动闭环
大数据·经验分享·数据库架构