I'm in the process of trying to tune the GC and I'm far from an expert in this area, so hoping someone can tell me I'm either out in left field or on-track.
Cassandra's default GC settings are (abbreviated): +UseConcMarkSweepGC +CMSInitiaitingOccupancyFraction=75 +UseCMSInitiatingOccupancyOnly Also in cassandra.yaml: flush_largest_memtables_at: 0.75 Since the new heap is relatively small, if I'm understanding this correctly CMS will normally not kick in until it's at roughly 75% of the heap (75% of size-new, new being relatively small compared to the overall heap). These two settings being very close would seem that both trigger at nearly the same point which might be undesirable as the flushing would also create more GC pressure (in addition to FlushWriter blocking if multiple tables are queued for flushing because of this). Clearly more heap will give us more peak running room, but would also lowering the CMSInitiatingOccupancyFraction help at the expense of some added CPU for more frequent, smaller collections? Mikio Bruan's blog had some interesting tests in this area.... http://blog.mikiobraun.de/2010/08/cassandra-gc-tuning.html