【发布时间】:2021-04-11 15:53:51
【问题描述】:
现在我在 Flink 中使用带有 RocksDB 的增量检查点,在容器环境中运行。据我所知,rocksdb 在做增量检查点时会使用大量内存,已经有一个 JIRA 描述了这个问题: https://issues.apache.org/jira/browse/FLINK-7289 我试图调整我的 Rocksdb 的配置,但我的容器仍然因为 OOM 而被杀死。这是监控页面:我的容器将被杀死并重新启动,然后再次被杀死。
这是我的配置:
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。 有人可以帮助我或告诉我一些使用增量检查点的正确方法吗?
【问题讨论】:
-
嗨,你有什么解决办法
标签: java scala apache-flink