-
Hello! We are currently having issues with compaction, because KVrocks as a whole gets unresponsive during compaction. All clients using KVrocks report connection and read timeouts during the compaction. Our usage pattern might matter in this case, because we update most of the keys during the day. We are looking for ways to tune the compaction. It wouldn't matter much, when the latency is elevated for a longer time, but KVrocks should say responsive. Any ideas how to achieve this? MetricsHere are some metrics from tonight: The CPU and memory usage gets reported by Kubernetes, while the others are from the kvrocks-exporter. There is a gap in the exporter metrics during the compaction, and the exporter is full of LogsThe compaction starts with this message:
And after the compaction is done, we get a lot of broken pipes:
Full logs during compaction are available here: https://gist.github.com/svenwltr/626604257576a7b687d202aade2a27df ConfigurationOur current configuration is rather small and looks like this:
We lowered |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 9 replies
-
Maybe you can try to set a suitable Not an expert of compaction, to see if @git-hulk have any idea. |
Beta Was this translation helpful? Give feedback.
@svenwltr Thank you. And yes, from your provided logs, I found that connections were reset after compaction, which means all operations stalled but no writes stalled during compaction. It makes no sense if CPU usage is around 50%. I forgot to ask which Kvrocks version you're using? it might relate to #2596 if you're using 2.10.0