incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Watanabe Maki <watanabe.m...@gmail.com>
Subject Re: Running a cluster with 256mb RAM nodes
Date Thu, 09 Jun 2011 03:40:03 GMT
I once built a 4 node ring on my laptop,  with 64MB heap for each instances.
I could write and read on it, but nodetool repair caused OOM.
You should test essential operations with estimated data loaded, under expected traffic.

Btw I'm using 96MBx4 node ring on my laptop now just for my private lab. It survive on repair
:-)

maki


On 2011/06/09, at 10:52, Donny Nadolny <donny.nadolny@gmail.com> wrote:

> I'd like to start using cassandra for a certain part of my database that has high write
volume. I'm setting up a 3 node cluster, however my site doesn't make enough money yet to
justify 3 nodes meeting the hardware recommendation of 4gb RAM. Instead I'm trying to get
it working with nodes that have 256mb RAM (running in a VM). I looked around and found a couple
places where people mention successfully running cassandra nodes with only 256mb, eg http://news.ycombinator.com/item?id=2074114
and http://groups.google.com/group/reddit-dev/browse_thread/thread/f7bc839dbc62d0ad/92af1e790f2fe05c,
but they don't give any details about setting they've changed.
> 
> It took a while, but I've settled on some settings that don't give me an OutOfMemoryException
under load, and still seem to have acceptable performance (quick writes with throughput that's
good enough for now, higher latency reads but that's okay for my use). They're a bit on the
conservative side, but I'd rather have them low and never get an OOM than risk it.
> 
> The JVM memory settings are the auto-calculated ones (running cassandra 0.7.6-2): -Xms122M
-Xmx122M -Xmn30M
> 
> I have 4 CF's. The settings I've changed are, for each CF:
> MemtableThroughputInMB to 1mb (yes, that's very low, that's part of my question)
> MemtableOperationsInMillions to 0.02 (20k operations)
> cached keys to 20,000
> 
> 
> The docs at http://wiki.apache.org/cassandra/MemtableThresholds warn that "tons of tiny
memtables is bad". Why?
> Also, am I correct in believing that it's ok to change the memtable throughput/operations
later on once I have larger nodes, and that there will be no lasting bad effects (eg I can
just trigger a compaction, or even bring new nodes online and remove the old ones)?
> 
> I've tested this setup doing reads and writes, but I haven't tried any operations (eg
moving a node to a different token, bootstrapping a new node). Are there any operations I
need to watch out for that could cause an OOM, or other problematic settings that should be
tuned that haven't caused problems yet but could in certain cases?
> 
> Thanks,
> Donny

Mime
View raw message