Hi Murilo,

Have you checked out the following blog post on tuning performance of RocksDB state stores [1] especially the section on high disk I/O and write stalls [2]?

Do you manage the off-heap memory used by RocksDB as described in the Streams docs [3]?

I do not know what may have caused the increased I/O. We upgraded RocksDB from 5.18.3 to 5.18.4. And we disabled bulk loading mode for RocksDB. But I cannot say if one of these might be the reason.

Have you looked at the RocksDB metrics [4] to get better insight into the situation?

Best,
Bruno

[1] https://www.confluent.io/blog/how-to-tune-rocksdb-kafka-streams-state-stores-performance [2] https://www.confluent.io/blog/how-to-tune-rocksdb-kafka-streams-state-stores-performance/#write-stalls [3] https://kafka.apache.org/30/documentation/streams/developer-guide/memory-mgmt.html
[4] https://kafka.apache.org/documentation/#kafka_streams_rocksdb_monitoring

On 20.12.21 18:23, Murilo Tavares wrote:
Hi
I have a KafkaStreams application with a reasonably complex, stateful
topology.
By monitoring it, we can say for sure that it is bounded by writing I/O.
This has become way worse after we upgraded KafkaStreams from 2.4 to 2.8.
(even though we disabled warm-up replicas by setting
"acceptable.recovery.lag" to Long.MAX_VALUE)

So my question is: how can we decrease writing to disk frequency in a
KafkaStreams application? Maybe tweaking memtable in the underlying
Rocksdb? Any other suggestions?

Also, any ideas why upgrading KafkaStreams would affect its i/o
performance? Any changes that might have caused an instance to do more
writes?
Thanks
Murilo

Reply via email to