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

问题描述 投票:0回答:3

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

环境 - Red hat 上的 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)
java jboss
3个回答
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


0
投票

似乎某些代码使套接字保持打开状态。使用完后请确保关闭

Socket


-1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.