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.nado...@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