我们的 Flink Jobs 包含一个过滤器,按会话 id 键,然后是间隔 30 分钟的会话窗口。会话窗口将需要累积会话的所有事件,并使用ProcessWindowFunction
.
我们正在使用 Flink 1.9,总共 20G 内存的 128 个容器来运行我们的工作,截止比率为 0.3。我们正在做增量检查点。
当会话窗口开始触发process
功能时,网络缓冲区使用率开始变得相当高,然后我们开始让 Kafka 输入滞后。我们的设置:
state.backend: rocksdb
state.checkpoints.dir: hdfs://nameservice0/service
state.backend.rocksdb.memory.managed: true
state.backend.incremental: true
#https://github.com/facebook/rocksdb/wiki/Memory-usage-in-RocksDB
state.backend.rocksdb.memory.write-buffer-ratio: 0.6
state.backend.rocksdb.memory.high-prio-pool-ratio: 0.1
state.backend.rocksdb.block.blocksize: 16mb
state.backend.rocksdb.writebuffer.count: 8
state.backend.rocksdb.writebuffer.size: 256mb
state.backend.rocksdb.timer-service.factory: heap
containerized.heap-cutoff-ratio: 0.25
taskmanager.network.memory.fraction: 0.85
taskmanager.network.memory.min: 512mb
taskmanager.network.memory.max: 7168mb
taskmanager.network.memory.buffers-per-channel: 8
taskmanager.memory.segment-size: 4mb
taskmanager.network.memory.floating-buffers-per-gate: 16
taskmanager.network.netty.transport: poll
任何建议将不胜感激!