Can you explain a bit more what you mean by memory spikes? The defaults we ship use the same settings for min and max JVM heap size, so you should see all the memory allocated to the JVM at startup. Did you change anything here? I don't recommend doing so.
If you're referring to files in the page cache, that's unavoidable (today) Compaction reads in data and creates new files, and we do that through the pread system call, which goes through the page cache. This could be eliminated if we move compaction to direct io [1], but that's not something that can be done through config. There's no way to eliminate files being loaded into the page cache right now, and trying to do so means fighting your OS and the optimizations it provides. vmstat [2] can be helpful to understand what's going on here. There's a good reference, Linux Performance Analysis in 60,000 Milliseconds [3], which shows how to use it as well as other tools. Jon [1] https://issues.apache.org/jira/browse/CASSANDRA-19987 [2] https://www.man7.org/linux/man-pages/man8/vmstat.8.html [3] https://netflixtechblog.com/linux-performance-analysis-in-60-000-milliseconds-accc10403c55 On Wed, Feb 26, 2025 at 4:30 AM vignesh s <vigneshclou...@gmail.com> wrote: > *Setup:* > I have a Cassandra cluster running in 3 datacenters with 3 nodes each > (total 9 nodes), hosted on GCP. > • *Replication Factor:* 3-3-3 > • *Compaction Strategy:* LeveledCompactionStrategy > • *Heap Memory:* 10 GB (Total allocated memory: 32 GB) > • *Off-heap Memory:* around 4 GB > • *Workload:* ~1.5K writes/s per node, ~100 reads/s per node (both using > LOCAL_QUORUM) > *Issue:* > I am observing short-lived memory spikes where total memory usage jumps > from 44% to 85%. These occur periodically and last for a short period. > After monitoring tpstats, I noticed that compaction threads are running > during these spikes. > While I understand that compaction is a fundamental process, these memory > spikes make capacity planning difficult. > I tried adjusting the following settings, but they did not have any effect > on the spikes: > • compaction_throughput_mb_per_sec > • concurrent_compactors > *Questions:* > 1. Are there other settings I can tune to reduce memory spikes? > 2. Could something else be causing these spikes apart from compaction? > > Would appreciate any insights on how to smooth out memory usage. > > - vignesh >