这是在Ubuntu 12.04(精确)64位内核Linux 3.2.0-25-virtual上发生的
我正在尝试增加允许用户打开的文件数。这是针对我的eclipse Java应用程序的,当前的限制是1024还不够。
根据我到目前为止发现的帖子,我应该能够将行放入
/etc/security/limits.conf像这样:
soft nofile 4096
hard nofile 4096
增加允许所有用户使用的打开文件数。
但这对我不起作用,我认为问题与该文件无关。
对于所有用户,无论/etc/security/limits.conf中的内容是什么,默认限制都是1024(更改文件后我重新启动了)
$ ulimit -n
1024
现在,尽管有/etc/security/limits.conf中的条目,但我无法增加它:
$ ulimit -n 2048
-bash:ulimit:打开文件:无法修改限制:不允许操作奇怪的部分是我可以向下更改限制,但不能向上更改限制-甚至返回到低于原始限制的数字:
$ ulimit -n 800
$ ulimit -n
800
$ ulimit -n 900
-bash: ulimit: open files: cannot modify limit: Operation not permitted
作为root,我可以将该限制更改为我想要的任何大小(上下)。它似乎根本不在乎/ proc / sys / fs / file-max中的系统范围限制
# cat /proc/sys/fs/file-max
188897
# ulimit -n 188898
# ulimit -n
188898
但是,即使我让eclipse以root身份运行,我的应用程序仍然会因为“打开文件太多”异常而崩溃!
到目前为止,我还没有找到提高非root用户打开文件限制的任何方法。
我应该如何正确地做到这一点?我看过其他几篇文章,但没有运气!
/etc/security/limits.conf
,您可能必须注销然后再登录,然后才能使用新的最大限制。我这样做了,ulimit -Hs
当我将其提高到1000000时仍然显示1000 感到困惑!然后,我注销并重新登录,然后ulimit显示了新的金额。