Tags

,

Running a system with both RabbitMQ and Riak can use up file descriptors like they are going out of fashion. Most distributions have a woefully low limit (Mac OS X has a default of 256) causing unsightly errors sooner than you would expect. Resolving this is easy, and some people suggest setting it to some arbitrarily large number (at least on Linux).

On my machine, using a three node Riak cluster and a single node for RabbitMQ, this is what I found so far:


gindara:dev brian$ ls dev1/data/bitcask/*/* | wc -l
386
gindara:dev brian$ ls dev2/data/bitcask/*/* | wc -l
188
gindara:dev brian$ ls dev3/data/bitcask/*/* | wc -l
168
gindara:~ brian$ sudo lsof -u rabbitmq -d ^txt | wc -l
2715

So files definitely get created quickly. The Basho blog says to update the open files limit for proper operation of riak to 2048 in their example. Running both apps seems to warrant going for the arbitrarily large number solution.

As many places document, do this for Linux:


$ ulimit -n 1048576

and forever by updating the system-wide and user limits.

On Mac OS X do this from command line


launchctl limit maxfiles 1048576

and forever in launchd.conf


sudo echo "limit maxfiles 1048576" > /etc/launchd.conf