【问题标题】:Flink incremental checkpoint with rocksdb use a lot of memory带有rocksdb的Flink增量检查点使用大量内存
【发布时间】: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


【解决方案1】:

这似乎在 Flink 的较新版本中得到修复,即 1.10 及更高版本。这个问题是关于 2019 年的,并且每个 2020 年 2 月链接的问题都已关闭。

详情可以在这里找到https://issues.apache.org/jira/browse/FLINK-7289

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多