You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Daniel Kluesing <dk...@bluekai.com> on 2010/04/14 00:51:20 UTC

GC options

Has anyone done any tuning on the jvm gc options or are the options included in bin/cassandra.in.sh basically the best choice? 

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?)

[0]http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html

Re: GC options

Posted by Benjamin Black <b...@b3k.us>.
Got it, thanks

2010/4/13 Peter Schüller <sc...@spotify.com>:
>> FYI, G1 has been in 1.6 since u14.
>
> Yes, but (last time I checked) in a considerably older form. The JDK
> 1.7 one is more mature.
>
> --
> / Peter Schuller aka scode
>

Re: GC options

Posted by Peter Schüller <sc...@spotify.com>.
> FYI, G1 has been in 1.6 since u14.

Yes, but (last time I checked) in a considerably older form. The JDK
1.7 one is more mature.

-- 
/ Peter Schuller aka scode

Re: GC options

Posted by Benjamin Black <b...@b3k.us>.
Which version of the JVM are you using?  Recent builds (u18, u19) have
significantly improved GC.

On Tue, Apr 13, 2010 at 3:51 PM, Daniel Kluesing <dk...@bluekai.com> wrote:
> Has anyone done any tuning on the jvm gc options or are the options included in bin/cassandra.in.sh basically the best choice?
>
> 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?)
>
> [0]http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html
>

Re: GC options

Posted by Benjamin Black <b...@b3k.us>.
FYI, G1 has been in 1.6 since u14.

2010/4/13 Peter Schüller <sc...@spotify.com>:
>> 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
>

Re: GC options

Posted by Peter Schüller <sc...@spotify.com>.
> 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