在项目做压测后发现项目日志报以下错误:
2020-02-27 11:01:07.626 ERROR 1586 --- [http-nio-8999-Acceptor-0] org.apache.tomcat.util.net.Acceptor : Socket accept failed
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method) ~[na:1.8.0_141]
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422) ~[na:1.8.0_141]
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250) ~[na:1.8.0_141]
at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:450) ~[tomcat-embed-core-9.0.19.jar!/:9.0.19]
at org.apache.tomcat.util.net.NioEndpoint.serverSocketAccept(NioEndpoint.java:73) ~[tomcat-embed-core-9.0.19.jar!/:9.0.19]
at org.apache.tomcat.util.net.Acceptor.run(Acceptor.java:95) ~[tomcat-embed-core-9.0.19.jar!/:9.0.19]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_141]
其原因是在 Linux 下默认的Socket最大连接数为 1024(可以通过 ulimit -n 查看)。
解决办法如下连接: