Ruby:@ rb_sysopen打开的文件过多

时间:2016-11-14 20:41:52

标签: ruby

File.new(big_file)打开一个文件(不关闭它)1016次(Ubuntu)或1017次(CentOS)后,似乎有一个限制并且它会提升:

Too many open files @ rb_sysopen - big_file (Errno::EMFILE)

有没有办法提高这个限额?

在我的系统上,ulimit设置为unlimited

1 个答案:

答案 0 :(得分:11)

  • ENFILE在您的流程中打开了太多文件。
  • Errno::EMFILE在整个系统中打开了太多文件。

所以1024是由于ruby进程打开了太多文件。可以通过以下方式将此限制设置为默认$ulimit -n 1024

$ulimit
unlimited

而不是:

Comparable

您可以使用this method提高限额。