Jboss - java.net.SocketException:打开的文件太多

时间:2012-04-05 09:09:17

标签: java jboss

正确解决以下错误问题,增加ulimit不适合我。

Enviroment - 红帽子上的java 7和Jboss 4.3.2.GA

22:30:08,913 ERROR [JIoEndpoint] Socket accept failed
java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method)
at java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:396)
at java.net.ServerSocket.implAccept(ServerSocket.java:522)
at java.net.ServerSocket.accept(ServerSocket.java:490)
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:309)
at java.lang.Thread.run(Thread.java:722)

3 个答案:

答案 0 :(得分:0)

在中等负荷下,我们在RHEL 5上遇到过类似的错误。

似乎默认的最大打开文件限制仅为1024,这太低了。

检查:ulimit -n

修复当前会话:ulimit -n 102400

持久性修复:echo yourusername - nofile 102400 >>/etc/security/limits.conf并重启会话

另见 https://serverfault.com/questions/44182/is-there-a-way-to-set-ulimit-for-all-root-processes

答案 1 :(得分:0)

似乎有些代码会打开套接字。确保在完成后关闭Socket

答案 2 :(得分:-1)

在增加ulimit或启动更多进程之前,您无法对其执行任何操作。我不知道如何运行服务器的多个实例 - 请查看手册。祝你好运!