cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Donny Nadolny <donny.nado...@gmail.com>
Subject Running a cluster with 256mb RAM nodes
Date Thu, 09 Jun 2011 01:52:26 GMT
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<http://wiki.apache.org/cassandra/CassandraHardware>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