yea that's why a lot of enterprises have moved to scylladb from cassandra since it is written in cpp and doesnt have the performance bottlenecks jvm brings.
There are two performance problems presented here. One is the fact that the OS waits till a static memory bank water-level before triggering a cleanup.
The second is the one you pointed out; here again one thing to consider is cassandra's compression chunk size `chunk_length_in_kb`. readahead value less than chunk size makes cassandra slow in general. take a look at this https://thelastpickle.com/blog/2018/08/08/compression_perfor... for more info on it.