java.net.SocketException: Too many open files 问题的解决办法

linux 上tomcat 服务器抛出socket异常“文件打开太多”的问题 

SEVERE: Socket accept failed

java.net.SocketException: Too many open files

        at java.net.PlainSocketImpl.socketAccept(Native Method)

        at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)

        at java.net.ServerSocket.implAccept(ServerSocket.java:453)

        at java.net.ServerSocket.accept(ServerSocket.java:421)

        at  org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61)

        at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:317)

        at java.lang.Thread.run(Thread.java:619)

 

该问题的根本原因是由于Linux操作系统文件资源的限制导致的。

具体的解决方式可以参考一下:

 

ulimit view

从上图上我们可以看到open files 的最大数为1024

 

我们可以通过一下命令修改该参数的最大值. (具体见下图)

java.net.SocketException: Too many open files 问题的解决办法

 

这样我们就修改了系统在同一时间打开文件资源的最大数,问题得到解决。

你可能感兴趣的:(exception)