常见的配置信息如下:
table.dynamic-table-options.enabled=true;
state.backend.rocksdb.compaction.style=level;
state.backend.rocksdb.thread.num=8;
table.exec.mini-batch.enabled=true;
table.exec.mini-batch.size=1000;
table.optimizer.distinct-agg.split.enabled=true;
state.backend.rocksdb.block.blocksize=32 kb;
state.backend.rocksdb.writebuffer.number-to-merge=2;
table.exec.mini-batch.allow-latency=15s;
后续配置根据任务在做详细分析.
因为上述配置给的缓存有点小,可以适当增加内存使用,同时如果有groupby或者keyby算子情况可以做两阶段聚合优化,同时增加managed内存的使用。需要说明的是这些配置不是一成不变的,需要具体任务具体调优
state.backend.incremental=true;
--增加flink管理内存
taskmanager.memory.managed.fraction =0.3;
--rocksdb blockcache和writebuffer的内存也增大
state.backend.rocksdb.block.blocksize=64 kb;
state.backend.rocksdb.block.cache-size=128 mb;
state.backend.rocksdb.files.open = -1;
state.backend.rocksdb.writebuffer.size =128 mb;
state.backend.rocksdb.