关于Flink RocksDB状态后端的状态处理及相关问题咨询
Flink RocksDB状态后端相关问题解答
作业背景
运行的Flink作业包含RabbitMQ Source、KeyBy、滚动窗口(Tumbling Window)、聚合函数及Sink,采用RocksDB状态后端并开启增量检查点,检查点间隔10秒,检查点之间暂停5秒。使用固定负载及相同Key完成5次重复测试,针对测试结果的问题解答如下:
- 为何相同Key/固定负载下,检查点大小随时间增长?是否意味着大量托管内存或磁盘空间未被释放,压缩尚未触发?
- 即便Key和负载固定,滚动窗口会持续生成新的窗口状态(每个窗口对应独立状态条目),这些状态会累积到窗口触发清理(窗口结束后)才会被释放。如果窗口触发周期长于检查点间隔,未清理的窗口状态会持续增加,直接导致检查点大小增长。另外,RocksDB的压缩有触发阈值(比如L0文件数量超过默认阈值4),未达到阈值时压缩不会启动,未压缩的.sst文件会占用更多空间,也会推高检查点大小。托管内存方面,未清理的状态会暂时占用RocksDB的Block Cache,但后续会按LRU策略自动淘汰。
- 全量检查点大小中途有所下降,是否由压缩导致?
- 大概率是压缩触发导致的。RocksDB压缩时会将多个旧.sst文件合并为更少、更小的压缩后文件,并删除旧文件,此时全量检查点扫描的是最新的状态文件,大小自然下降。另外,如果此时有一批窗口到期被清理,状态总量减少也会让检查点大小下降,但结合RocksDB特性,压缩是更直接的原因。
- 我已开启RocksDB原生指标,但仅能看到待处理压缩(Pending Compaction),是否有可查看已完成压缩的配置项?
- 开启
state.backend.rocksdb.metrics.enabled后,可从Flink Metrics系统获取以下已完成压缩的相关指标:rocksdb.compaction.bytes.compacted: 已压缩的总字节数rocksdb.compaction.count: 已完成的压缩次数rocksdb.compaction.seconds.total: 压缩总耗时秒数
- 我使用Flink 1.18版本默认的RocksDB配置(写缓冲区大小为64MB,L0压缩会生成64MB的L1文件),请问默认的层级大小乘数是多少?Flink集成的RocksDB共有多少层级?
- Flink 1.18默认的RocksDB层级大小乘数是10,默认总层级数为7(L0到L6),该配置沿用RocksDB原生默认值,Flink未做修改。
- 若在MemTable填充至64MB前,算子需要创建快照,该如何处理?是否会在MemTable刷入.sst文件前直接复制正在写入的数据?我发现检查点目录中有时存在.sst文件,有时存在无扩展名的文件,这是为何?
- 当MemTable未填满需创建快照时,RocksDB会通过Copy-On-Write机制对当前MemTable数据做快照,这份快照会以无扩展名的临时文件写入检查点目录,不会阻塞正常写入。后续如果MemTable被刷入.sst文件,检查点会优先使用.sst文件,临时文件会被清理。检查点目录中的.sst是已刷盘的状态文件,无扩展名文件则是快照时直接复制的MemTable数据,两者都是RocksDB为保证快照一致性生成的不同格式文件。
- 若减少磁盘空间,压缩是否会更频繁触发?该如何确定状态存储所需的磁盘空间大小?
- 是的,磁盘剩余空间不足时,RocksDB会触发紧急压缩甚至强制压缩来释放空间。确定状态存储所需磁盘空间的方法:
- 估算单个Key的状态大小,乘以Key的总数量(含窗口周期内的Key数),再乘以2~3倍冗余系数(覆盖压缩前文件、检查点备份、临时文件等)。
- 运行作业时监控
rocksdb.disk.used指标,观察峰值和稳定后的磁盘占用,以此为基准预留30%以上的冗余空间。 - 开启增量检查点后,可通过
state.checkpoints.num-retained限制保留的检查点数量,控制历史检查点的磁盘占用。
- 配置项
state.backend.rocksdb.compaction.level.max-size-level-base的含义是什么?文档说明其为‘基准层级文件总大小的上限,默认值为256MB’,但我仍有疑问:它指的是Lmax的文件大小?单个Lmax文件大小还是Lmax层级的总大小?
- 该参数指的是L1层级的总大小上限。RocksDB层级压缩策略中,后续层级(L2、L3...)的总大小上限是前一层级乘以层级大小乘数(默认10)。比如默认配置下,L1总大小上限256MB,L2就是256*10=2560MB,以此类推至最高层级L6。
内容的提问来源于stack exchange,提问作者Banupriya
相关产品推荐
相关产品推荐

