leveldb是google大神jeff dean开发的一个KV数据库系统,在caffe中广泛使用,但是如果使用过程中打开多个leveldb,并且每个leveldb中的文件又比较多的情况下,容易碰到”too many open files”的问题。我说的是linux系统下面,windows下没用过,具体我用的是RHEL 6.2。
我们可以先运行一下以下命令:
ulimit -Sn
我的系统最开始输出的是1024,这代表当前用户下最多可以打开的文件数目,显然是不够用的。下面我们用以下命令修改一下这个限制数字:
sudo vi /etc/security/limits.conf
当然需要sudo权限,因为要修改的是个系统文件。打开后,我们在文件末尾加上以下两行:
(username) soft nofile 10240
(username) hard nofile 10240
(username) 需要换成你自己的用户名,或者*,代表所有用户都用这个限制,10240可以是更大或者更小的数字。
保存,退出,重新ssh进入系统,相信就可以干掉”too many open files”这个问题了。
潜在的风险是不知道改完后对系统有没有什么影响。
参考了这篇文章:http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/