【发布时间】:2021-01-30 13:40:05
【问题描述】:
我们的 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
任何建议将不胜感激!
【问题讨论】:
-
如果您从 kafka 代理消费,我会首先检查您的 kafka 源是否从主题开始消费消息。也可能是您的 kafka 代理有很多消息/事件等待消费。之后检查检查点指标是有意义的
-
@Felipe,谢谢。每次开始测试之前,我都会将 Kafka 偏移量重置为最新的
标签: apache-flink rocksdb flink-cep flink-statefun