2012-04-05 38 views
2

下のエラーplのための適切な解決策、ulimitを増やすことは私にとって解決策ではありません。Jboss - java.net.SocketException:開いているファイルが多すぎます

的環境 - 赤い帽子の上の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) 
+2

これを引き起こすシナリオは何ですか? –

+0

最初にJbossが起動すると、250個のファイルが開き、1回のヒットごとに100〜120個のファイルが開き、10〜20個のファイルが開きます。私の場合、私は自分のアプリにログインして、そのプロセスをログオフして100個以上のファイルを開いています。 30人のユーザーがログインしたときに負荷テストを行うと、1000を超えるファイルが開かれていることがわかります。この操作はI/O操作を使用しません。 – onlykalu

答えて

0

我々は適度な負荷でRHEL 5で同様のエラーを経験していました。

デフォルトの最大オープンファイルの制限は、わずかに1024であるようです。

チェック:ulimit -n 102400

永続的な修正:現在のセッションのulimit -n

修正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

最初は「増加するulimitは私にとっては解決策ではありません。しかし、1024の場合、それは本当に低すぎます。 – Vadzim

+0

私はこのことをしましたが、何らかの操作の後で200,000個のファイルでもうまく動作しません。 – onlykalu

-1
ちょうどまでと何もできない

ulimitを増やすか、より多くのプロセスを起動します。私はあなたのサーバの複数のインスタンスをどのように走らせることができるのか分かりません - マニュアルをチェックしてください。がんばろう!

0

コードの一部がソケットを開いているようです。完了したらSocketを閉じてください。

+0

ファイルが多い可能性があります。 Webアプリケーションは通常、ソケット自体を開かない。 – EJP

関連する問題