1.linux下系统抛出"Too many open files" 原因:
打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。文件描述符有上限限制,当超过限制后就会抛出此错误。
2.可用ulimit -a 查看文件限制
. . . . . .
open files (-n) 1024
. . . . . .
可以看出,对open files的限制数是1024,我们可以通过修改这个值来增加可以打开的文件数。
3.解决方法:
(1).临时修改:
将其改为2048,用 limit -HSn 2048 .
当你把open files的值增大到一定程度,你的Too many open files就不会再出现了。
此修改只对当前的shell有效,退出后无效。
(2)若要永久改变这两个参数值,就要修改/ect/security/limits.conf,在文件中加上两行:
root soft nofile 65535
root hard nofile 65535
admin soft nofile 65535
admin hard nofile 65535
ads soft nofile 65535
ads hard nofile 65535
soft<=hard soft的限制不能比hard限制高
http://xgw1008.blog.163.com/blog/static/567573562010421115439612/