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

解决java.net.SocketException: Too many open files

2015-09-10 21:03 537 查看
今天tomcat在跑任务时发现每次都有报错java.net.SocketException: Too many open files,
通过查阅文档发现是当时做系统初始化操作时忘了设置ulimit值,以至于一直使用默认值1024。
于是马上修改配置文件
echo  "* soft nofile 200000">>/etc/security/limits.conf
echo  "* hard nofile 200000" >>/etc/security/limits.conf
ulimit -SHn 200000         ## 对当前窗口生效,关闭后失效
但是再次跑任务时候发现报错依旧,于是各种查找,最后想到tomcat在修改ulimit后没有重启。重启后问题解决。

查找相关文档发现以下原因:
如果程序A已经运行,此时ulimit -n为1024;
然后设置ulimit -n 2048,这时再运行程序B;
退出当前shell用户,再次登录shell,运行程序C;
这时只有B程序用的是2048,其它用的都是1024.

参考文献:http://www.th7.cn/system/lin/201309/45075.shtml
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息