当我使用AJP协议时,JBOSS 6.0.0服务器崩溃-打开的文件太多

当我使用AJP协议时,JBOSS 6.0.0服务器崩溃-打开的文件太多,jboss,ajp,Jboss,Ajp,当我使用AJP协议时,J BOSS 6.0.0服务器崩溃。 系统连续显示以下异常 2012-08-21 16:12:51,750 ERROR [org.apache.tomcat.util.net.JIoEndpoint] (ajp-0.0.0.0-8009-Acceptor-0) Socket accept failed: java.net.SocketException: Too many open files at java.net.PlainSocketImpl.socketAccept

当我使用AJP协议时,J BOSS 6.0.0服务器崩溃。 系统连续显示以下异常

2012-08-21 16:12:51,750 ERROR [org.apache.tomcat.util.net.JIoEndpoint] (ajp-0.0.0.0-8009-Acceptor-0) Socket accept failed: java.net.SocketException: Too many open files
at java.net.PlainSocketImpl.socketAccept(Native Method) [:1.6.0_24]
at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) [:1.6.0_24]
at java.net.ServerSocket.implAccept(ServerSocket.java:462) [:1.6.0_24]
at java.net.ServerSocket.accept(ServerSocket.java:430) [:1.6.0_24]
at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61) [:6.0.0.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:343) [:6.0.0.Final]
at java.lang.Thread.run(Thread.java:662) [:1.6.0_24]
  • 输入
    cat/proc/sys/fs/file max
    检查系统中fd的最大数量,如果您有65535,则应该可以,但可以将其增加到200000
  • 通过输入
    'ulimit-n'
    来检查ulimit,在我这边,它的长度为1024,因此我在文件/etc/security/limites.conf中增加它,并添加:

    *软文件2048

    *硬文件2048

最后,您可以通过输入
lsof-pxxx | wc-l


每次我都会遇到这个问题。

这个问题是因为JBOSS服务器中Server.xml中设置了max threads&connectionTimeout

AJP协议的connectionTimeout默认值为无限

因此,connectionTimeout值设置为120000(2分钟)

所以,问题(太多打开的文件)永远不会被复制。最好设置最佳配置设置,而不是默认值

为了帮助解决此问题,还进行了一些其他配置更改。那是,

ajp协议的“最大线程数”值从1500更改为150


“ulimit-n”值已从1024更改为8192。

是否有方法通过命令确定占用1025的位置