Ruby:@ rb_sysopen打开的文件过多
用File.new(big_file)
打开一个文件(没有关闭它)1016次(Ubuntu)或1017次(CentOS)后,似乎有一个限制并且它会引发:
Too many open files @ rb_sysopen - big_file (Errno::EMFILE)
有没有办法提高这个限制?
在我的系统上, ulimit
设置为unlimited
。
-
EMFILE
在您的进程中打开了太多文件。 -
ENFILE
在整个系统中打开的文件太多。
所以Errno::EMFILE
是由于ruby进程打开了太多文件。 这个限制可能设置为默认的1024
可以看到:
$ulimit -n 1024
代替:
$ulimit unlimited
您可以使用此方法提高限制。