您的位置:首页 > 编程语言 > Java开发

java.se--异常--java.net.SocketException: Too many open files

2014-06-23 15:45 609 查看
今天在生产服务器(cend os,resin)上发现这个错误,导致http链接出错。在网上查了下:

java.net.SocketException: Too many open files错误,由于linux对进程的打开文件数是有限制的,超过了此限制,就会报错。

 

lsof -p 12349 查看链接数,12349是tomcat的进程  

lsof -P 12349|wc -l  

ulimit -u 查看open files设置  

ulimit -a 查看所有设置  

ulimit -u 65535(新的open files 值)修改设置  

ulimit -n 65536 设置用户可以同时打开的最大文件数(max open files)  

   

如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open files的错误    

使用lsof -p pid [httpd进程的 pid、java的pid]来查看系统中apache进程和java运行时进程当前打开的文件资源,发现两者之和已经接近1024,大于了默认的设置。  

  

修改配置:  

  

修改/etc/security/limits.conf,在文件末加上  

* soft nofile 65536  

* hard nofile 65536  

修改/etc/security/limits.conf,在文件末加上  

* soft nofile 65536  

* hard nofile 65536

保存退出,即可。  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: