> I'm working on getting our latency as consistent as possible, and the gc 
> likes to kick off 60+ms periods of unavailability for a node, which for my 
> application leads to a reasonable number of timed out requests. Outside of 
> the gc event, we get good responses.
>
> I'm happy with reduced throughput for shorter pauses, so I'm going to do the 
> standard jvm gc tuning guide[0] for short pauses, curious if anyone else has 
> gone down this path and gotten gc pauses consistent and low or if what's in 
> bin/cassandra.in.sh is basically the best I should expect. (Anyone tried 
> jrockit?)

If your situation is such that you are willing to use the unreleased
JDK 1.7 and G1GC (still being marked as experimental and may still be
a stability concern and since we are talking about storing data that
probably means conservatism is called for) you can try that. It offers
some more direct control over the target GC pause times, although does
not provide guarantees. A potential starting point of VM options may
be:

         -XX:+UnlockExperimentalVMOptions
         -XX:+UseG1GC
         -XX:MaxGCPauseMillis=10
         -XX:GCPauseIntervalMillis=15

And maybe:

         -XX:G1ConfidencePercent=100

And maybe (not sure of current status but there used to be a known bug
when enabled):

         -XX:+G1ParallelRSetUpdatingEnabled
         -XX:+G1ParallelRSetScanningEnabled

-- 
/ Peter Schuller aka scode

Reply via email to