排查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集群及任务后,问题得到了解决。

相关推荐
starzy199033 分钟前
SparkStreaming 之 Direct 模式深度剖析
大数据·spark
金立基包装胶水1 小时前
纸袋热封频繁不良,先排查胶料这一堆问题
大数据·笔记·其他
VALENIAN瓦伦尼安教学设备2 小时前
设备状态检测振动分析实训台案例分析
大数据·数据库·人工智能·嵌入式硬件·算法
飞飞传输3 小时前
国产化 MOVEit 替代:文件传输架构与安全能力深度解读
大数据·运维·安全
LONGZETECH3 小时前
低空经济背景下:五组核心数据拆解无人机职业教育的机遇与实训破局
大数据·人工智能·系统架构·无人机
大大大大晴天3 小时前
大数据上 K8s 的三种运行范式:离线计算、实时流处理与分析服务
大数据
程序员小八7774 小时前
Agent 沙箱:给 AI 的「手」套上缰绳
大数据
硬件工艺分享君4 小时前
PCB厂家如何守住交期、品质与响应
大数据·运维·科技·制造·pcb工艺
Shulex4 小时前
电商 AI 客服接管率怎么提升?从指标口径到转人工规则
大数据·人工智能·智能客服·跨境电商
科技研学社4 小时前
2026-2028全球工作服夹克智能制造发展趋势与海外工厂布局报告
大数据·人工智能