日期:2014-05-16  浏览次数:20657 次

打开文件数过多(too many open files)
我的操作系统是redhat,内核是Linux   version   2.4.20,用tomcat作为中间件,出现了Too   many   open   files错误。
通过ulimit   -a查看结果为
open   files                                         (-n)   1024

/proc/sys/fs/file-max值为209600

网上说和file-max的值有关,但是我的都已经209600了,应该不会有问题的,
和ulimit   -n看到的不一样,

请问ulimit   -a和file-max什么关系,怎么使ulimit   -a查看到的open   files信息是我想要设的值,怎么解决这个问题。

谢谢各位大虾


------解决方案--------------------
/proc/sys/fs/file-nr为当前已打开文件数,你可以参考一下。

/proc/sys/fs/file-max为系统总打开文件数限制,而ulimit -a看到的是单个进程限制,你应该设置这个值。

ulimit -n 4096可以将其设置为4096
不过要想系统重启后仍然有效,需要将此命令加入/etc/profile

------解决方案--------------------
改一下/etc/security/limits.conf文件试一下,注意你要打开文件的用户