Hi Luke,

Thanks for the response.

I played around with the various config options - and in the end I had to
include the /etc/defaults/riak file, as well as the
/etc/security/limits.conf config in order to get Riak to stay up. That must
be relatively new - our existing v1.4.0 cluster is operating fine without
it.

Cheers
Matt


On 10 September 2013 01:32, Luke Bakken <lbak...@basho.com> wrote:

> Hi Matt -
>
> Can you attach to a node in your cluster with "riak attach" and run
> this erlang snippet (before the node errors out)?
>
> os:cmd("ulimit -n").
>
> This will show the actual value for ulimit for that running riak node.
> I suspect that this value hasn't been updated for the running process,
> even though you've modified limits.conf.
>
> Depending on your OS there may be more configuration necessary for the
> open files limit to "stick":
> http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/#Linux
>
> On Sun, Sep 8, 2013 at 9:15 PM, Matt Black <matt.bl...@jbadigital.com>
> wrote:
> > Hey list,
> >
> > We're migrating from our currently operational cluster to a new one in a
> > different EC2 region. As part of this migration, we'd like to move from
> > Bitcask to eLevelDB - mostly for the benefits provided by secondary
> indexes.
> >
> > We also use Multi-backend configuration, in order to split our various
> > client's data into entirely separate spaces on disk (this is useful for
> > legal reasons). I made the simple change from "riak_kv_bitcask_backend"
> to
> > "riak_kv_eleveldb_backend" in our config, and did some calculations for
> > "max_open_files", and then started a new node.
> >
> > It fails with the following error in short order:
> >
> >> cat error.log
> > 2013-09-09 03:49:51.391 [error] <0.715.0>@riak_kv_vnode:init:375 Failed
> to
> > start riak_kv_multi_backend Reason:
> [{riak_kv_eleveldb_backend,{db_open,"IO
> > error:
> >
> /mnt/riak/eleveldb/client1/365375409332725729550921208179070754913983135744/000015.dbtmp:
> > Too many open files"}}]
> > 2013-09-09 03:49:51.392 [error] <0.940.0>@riak_kv_vnode:init:375 Failed
> to
> > start riak_kv_multi_backend Reason:
> [{riak_kv_eleveldb_backend,{db_open,"IO
> > error:
> >
> /mnt/riak/eleveldb/client2/570899077082383952423314387779798054553098649600/CURRENT:
> > Too many open files"}},{riak_kv_eleveldb_backend,{db_open,"IO error:
> >
> /mnt/riak/eleveldb/client3/570899077082383952423314387779798054553098649600/CURRENT:
> > Too many open files"}},{riak_kv_eleveldb_backend,{db_open,"IO error:
> >
> /mnt/riak/eleveldb/client4/570899077082383952423314387779798054553098649600/CURRENT:
> > Too many open files"}},{riak_kv_eleveldb_backend,{db_open,"IO error:
> >
> /mnt/riak/eleveldb/client5/570899077082383952423314387779798054553098649600/CURRENT:
> > Too many open files"}},{riak_kv_eleveldb_backend,{db_open,"IO error:
> >
> /mnt/riak/eleveldb/client6/570899077082383952423314387779798054553098649600/CURRENT:
> > Too many open files"}}]
> >
> > And some relevant app.config:
> >
> >             {multi_backend_default, <<"default">>},
> >             {multi_backend, [
> >                 %% Default fallback: this is unused
> >                 {<<"default">>, riak_kv_eleveldb_backend, [
> >                     {data_root, "/mnt/riak/eleveldb/default"}
> >                 ]},
> >                 {<<"eleveldb_client1">>, riak_kv_eleveldb_backend, [
> >                     {data_root, "/mnt/riak/eleveldb/client1"}
> >                 ]},
> >                 {<<"eleveldb_client2">>, riak_kv_eleveldb_backend, [
> >                     {data_root, "/mnt/riak/eleveldb/client2"}
> >                 ]},
> >                 {<<"eleveldb_client3">>, riak_kv_eleveldb_backend, [
> >                     {data_root, "/mnt/riak/eleveldb/client3"}
> >                 ]},
> >                 {<<"eleveldb_client4">>, riak_kv_eleveldb_backend, [
> >                     {data_root, "/mnt/riak/eleveldb/client4"}
> >                 ]},
> >                 {<<"eleveldb_client5">>, riak_kv_eleveldb_backend, [
> >                     {data_root, "/mnt/riak/eleveldb/client5"}
> >                 ]},
> >                 {<<"eleveldb_client6">>, riak_kv_eleveldb_backend, [
> >                     {data_root, "/mnt/riak/eleveldb/client6"}
> >                 ]}
> >             ]},
> >
> >             .. snip ..
> >
> >              %% Default cache size of 8MB
> >              {cache_size, 8388608},
> >              %% Maximum number of files open at once per partition
> >              {max_open_files, 50}
> >
> > I've set the "riak soft/hard nofile 65536" in /etc/security/limits.conf,
> so
> > presumably this "Too many open files" error is referring to the
> > "max_open_files" option as part of eLevelDB config. The RAM in each
> machine
> > is 3.5GB free, so I calculated on a 5 node cluster this 50 max_open_files
> > limit.
> >
> > - Is there something about Multi-backend I haven't taken into account?
> > - Do I need a larger max_open_files? (And thus more RAM? :)
> >
> > Cheers!
> > Matt
> >
> > _______________________________________________
> > riak-users mailing list
> > riak-users@lists.basho.com
> > http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> >
>
>
>
> --
> Luke Bakken
> CSE
> lbak...@basho.com
>
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to