Flink使用RocksDB进行增量检查点会占用大量内存。

3
我正在使用基于容器环境的RocksDB增量Checkpoint技术,但是我发现RocksDB在增量Checkpoint时会占用大量内存。根据我所了解的情况,已经有一篇JIRA描述了这个问题: https://issues.apache.org/jira/browse/FLINK-7289 。尽管我尝试过修改RocksDB的配置,但是我的容器仍然由于OOM被杀死。以下是监控页面截图:容器会被杀掉、重启,并再次被杀掉。

enter image description here

以下是我的配置信息:

public class BackendOptions implements OptionsFactory {

@Override
public DBOptions createDBOptions(DBOptions dbOptions) {
    return dbOptions
            .setIncreaseParallelism(4)
            .setUseFsync(false)
            .setMaxOpenFiles(-1);

}
@Override
public ColumnFamilyOptions createColumnOptions(ColumnFamilyOptions columnFamilyOptions) {
    return columnFamilyOptions.setCompactionStyle(CompactionStyle.LEVEL)
            .setLevelCompactionDynamicLevelBytes(true)
            .setTargetFileSizeBase(256 * 1024 * 1024)
            .setWriteBufferSize(64 * 1024 * 1024)
            .setMaxBytesForLevelBase(1024 * 1024 * 1024)
            .setMinWriteBufferNumberToMerge(2)
            .setMaxWriteBufferNumber(5)

            .setOptimizeFiltersForHits(true)
            .setTableFormatConfig(
                    new BlockBasedTableConfig()
                            .setBlockCacheSize(256 * 1024 * 1024)  // 256 MB
                            .setBlockSize(128 * 1024) //// 128 KB
                            .setCacheIndexAndFilterBlocks(true)
            );
}

我每1分钟进行一次检查点,状态大小约为5GB。有人可以帮助我或告诉我正确使用增量检查点的方法吗?


嗨,你有找到任何解决方案吗? - Pritesh Shah
1个回答

1
这个问题在更新版本的Flink中已经得到解决,即1.10及以上版本。该问题是关于2019年的,截至2020年2月,相关问题已关闭。
详细信息可以在这里找到 https://issues.apache.org/jira/browse/FLINK-7289

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接