繁体   English   中英

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

[英]Jboss - java.net.SocketException: Too many open files

请正确解决以下错误,增加 ulimit 对我来说不是解决方案。

环境 - java 7 和 Jboss 4.3.2.GA on red hat

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)

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

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

检查: ulimit -n

修复当前 session: ulimit -n 102400

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

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

似乎有一段代码让 sockets 保持打开状态。 确保在完成后关闭Socket

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM