High Swap Utilization of Riak

Ken Perkins ken at clipboard.com
Fri Mar 16 14:38:34 EDT 2012


Hello, 

I'm trying to diagnose why we're using so much swap memory for Riak+Search, and derive what settings should be changed such that we can lower our memory utilization. Obviously we can scale up our riak boxes, but I'd like to have better insight into the settings before we just upgrade the machines.

We have a 512 partition 5 node ring with LevelDb Backend, Search enabled.

Currently we're seeing 100% of all available physical ram consumed by riak (1.7gb) and a large swap use as well: ~3.6gb:

riak      2677  1.7 85.1 3665736 1745696 pts/0 Ssl+ Mar12 109:16 /usr/lib/riak/erts-5.8.4/bin/beam.smp -K true -A 64 -W w --

My my computations according to http://wiki.basho.com/LevelDB.html we should be at around ~850mb of ram for the levelDb cache. I calculate another ~128 for JS VMs, but I have no way to figure out where the rest is used.

How do we figure out where the rest of the memory is being consumed, and how can we tune it to use less memory?

Excerpt from config:

%% Riak KV config
 {riak_kv, [
            {storage_backend, riak_kv_eleveldb_backend},
            {pb_ip,  "<%= bindRiakAddress %>" },
            {pb_port, 8087 },
...
            {map_js_vm_count, 8 },
            {reduce_js_vm_count, 6 },
            {hook_js_vm_count, 2 },
            {js_max_vm_mem, 8},
            {js_thread_stack, 16},
            %{js_source_dir, "/tmp/js_source"},
            {http_url_encoding, on},
            {riak_kv_stat, true},
            {legacy_stats, true},
            {vnode_vclocks, true},
            {legacy_keylisting, false},
     ...
           ]},

 %% Riak Search Config
 {riak_search, [
                {enabled, true}
               ]},

 %% Merge Index Config
 {merge_index, [
                {data_root, "/var/lib/riak/merge_index"},
                {data_root_2i, "/var/lib/riak/merge_index_2i"},
                {buffer_rollover_size, 1048576},
                {max_compact_segments, 20}
               ]},

 %% Bitcask Config
 {bitcask, [
             {data_root, "/var/lib/riak/bitcask"}
           ]},

 %% eLevelDB Config
 {eleveldb, [
             {data_root, "/var/lib/riak/leveldb"}
            ]},


--Ken
clipboard, inc. 
we're hiring!: www.clipboard.com/jobs

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20120316/29608a42/attachment.html>


More information about the riak-users mailing list