I've investigated further. It appears that the performance issues are because Cassandra's memory-mapped files (*.db files) fill up the physical memory and start being swapped to disk. Is this related to recommendations to disable swapping on a machine where Cassandra is installed? Should I disable memory-mapped IO?
I can see issues in JIRA related to Windows memory-mapped I/O but they all appear to be fixed prior to 3.11. From: Austin Sharp [mailto:austin.sh...@seeq.com] Sent: Thursday, November 2, 2017 17:51 To: email@example.com Subject: Cassandra using a ton of native memory Hi, I have a problem with Cassandra 3.11.0 on Windows. I'm testing a workload w= ith a lot of read-then-writes that had no significant problems on Cassandra= 2.x. However, now when this workload continues for a while (perhaps an hou= r), Cassandra or its JVM effectively use up all of the machine's 16GB of me= mory. Cassandra is started with -Xmx2147M, and JMX shows <2GB heap memory a= nd <100MB of off-heap memory. However, when I use something like Process Ex= plorer, I see that Cassandra has 10 to 11GB of memory in its working set, a= nd Windows shows essentially no free memory at all. Once the system has no = free memory, other processes suffer long sequences of unresponsiveness. I can't see anything terribly wrong from JMX metrics or log files - they ne= ver show more than 1GB of non-heap memory. Where should I look to investiga= te this further? Thanks, Austin