Glad that helped. Thanks for reporting back!

On Sun, Feb 22, 2015 at 9:12 PM, Tim Dunphy <bluethu...@gmail.com> wrote:

> Nate,
>
>  Definitely thank you for this advice. After leaving the new Cassandra
> node running on the 2GB instance for the past couple of days, I think I've
> had ample reason to report complete success in getting it stabilized on
> that instance! Here are the changes I've been able to make:
>
>  I think manipulating the key cache and other stuff like concurrent writes
> and some of the other stuff I worked on based on that thread from the
> cassandra list definitely was key in getting Cassandra to work on the new
> instance.
>
> Check out the before and after (before working/ after working):
>
> Before in cassandra-env.sh:
>    MAX_HEAP_SIZE="800M"
>    HEAP_NEWSIZE="200M"
>
> After:
>     MAX_HEAP_SIZE="512M"
>     HEAP_NEWSIZE="100M"
>
> And before in the cassandra.yaml file:
>
>    concurrent_writes: 32
>    compaction_throughput_mb_per_sec: 16
>    key_cache_size_in_mb:
>    key_cache_save_period: 14400
>    # native_transport_max_threads: 128
>
> And after:
>
>     concurrent_writes: 2
>     compaction_throughput_mb_per_sec: 8
>     key_cache_size_in_mb: 4
>     key_cache_save_period: 0
>     native_transport_max_threads: 4
>
>
> That really made the difference. I'm a puppet user, so these changes are
> in puppet. So any new 2GB instances I should bring up on Digital Ocean
> should absolutely work the way the first 2GB node does, there.  But I was
> able to make enough sense of your chef recipe to adapt what you were
> showing me.
>
> Thanks again!
> Tim
>
> On Fri, Feb 20, 2015 at 10:31 PM, Tim Dunphy <bluethu...@gmail.com> wrote:
>
>> The most important things to note:
>>> - don't include JNA (it needs to lock pages larger than what will be
>>> available)
>>> - turn down threadpools for transports
>>> - turn compaction throughput way down
>>> - make concurrent reads and writes very small
>>> I have used the above run a healthy 5 node clusters locally in it's own
>>> private network with a 6th monitoring server for light to moderate local
>>> testing in 16g of laptop ram. YMMV but it is possible.
>>
>>
>> Thanks!! That was very helpful. I just tried applying your suggestions to
>> my cassandra.yaml file. I used the info from your chef recipe. Well like
>> I've been saying typically it takes about 5 hours or so for this situation
>> to shake itself out. I'll provide an update to the list once I have a
>> better idea of how this is working.
>>
>> Thanks again!
>> Tim
>>
>> On Fri, Feb 20, 2015 at 9:37 PM, Nate McCall <n...@thelastpickle.com>
>> wrote:
>>
>>> I frequently test with multi-node vagrant-based clusters locally. The
>>> following chef attributes should give you an idea of what to turn down in
>>> cassandra.yaml and cassandra-env.sh to build a decent testing cluster:
>>>
>>>           :cassandra => {'cluster_name' => 'VerifyCluster',
>>>                          'package_name' => 'dsc20',
>>>                          'version' => '2.0.11',
>>>                          'release' => '1',
>>>                          'setup_jna' => false,
>>>                          'max_heap_size' => '512M',
>>>                          'heap_new_size' => '100M',
>>>                          'initial_token' => server['initial_token'],
>>>                          'seeds' => "192.168.33.10",
>>>                          'listen_address' => server['ip'],
>>>                          'broadcast_address' => server['ip'],
>>>                          'rpc_address' => server['ip'],
>>>                          'conconcurrent_reads' => "2",
>>>                          'concurrent_writes' => "2",
>>>                          'memtable_flush_queue_size' => "2",
>>>                          'compaction_throughput_mb_per_sec' => "8",
>>>                          'key_cache_size_in_mb' => "4",
>>>                          'key_cache_save_period' => "0",
>>>                          'native_transport_min_threads' => "2",
>>>                          'native_transport_max_threads' => "4",
>>>                          'notify_restart' => true,
>>>                          'reporter' => {
>>>                            'riemann' => {
>>>                              'enable' => true,
>>>                              'host' => '192.168.33.51'
>>>                            },
>>>                            'graphite' => {
>>>                              'enable' => true,
>>>                              'host' => '192.168.33.51'
>>>                            }
>>>                          }
>>>                        },
>>>
>>> The most important things to note:
>>> - don't include JNA (it needs to lock pages larger than what will be
>>> available)
>>> - turn down threadpools for transports
>>> - turn compaction throughput way down
>>> - make concurrent reads and writes very small
>>>
>>> I have used the above run a healthy 5 node clusters locally in it's own
>>> private network with a 6th monitoring server for light to moderate local
>>> testing in 16g of laptop ram. YMMV but it is possible.
>>>
>>
>>
>>
>> --
>> GPG me!!
>>
>> gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
>>
>>
>
>
> --
> GPG me!!
>
> gpg --keyserver pool.sks-keyservers.net --recv-keys F186197B
>
>


-- 
-----------------
Nate McCall
Austin, TX
@zznate

Co-Founder & Sr. Technical Consultant
Apache Cassandra Consulting
http://www.thelastpickle.com

Reply via email to