【发布时间】:2017-03-28 14:33:17
【问题描述】:
在使用File.new(big_file)(不关闭它)1016 次(Ubuntu)或 1017 次(CentOS)打开文件后,似乎有一个限制,它会提高:
Too many open files @ rb_sysopen - big_file (Errno::EMFILE)
有没有办法提高这个限制?
在我的系统上,ulimit 设置为 unlimited。
【问题讨论】:
-
检查
ulimit -n而不是ulimit。我愿意打赌它是1024。 -
另外,我建议按照here 的一些说明来解决此问题。
-
正常文件系统限制为 1024 个打开的文件句柄,其中许多已被 Ruby 保留或在内部使用。
ulimit设置需要在这里调整。解决此问题的一种方法是对/etc/sysctl.conf和/etc/security/limits.conf大惊小怪。 -
@EliSadoff
ulimit -n确实是1024,你赢了!那么我该如何提高呢? -
@EliSadoff 做到了!谢谢你。我将编辑这个问题并制作另一个 Q/A 来区分这两个不同的问题:
Errno::EMFILE的事实意味着每个进程和file-max=的问题不起作用。
标签: ruby