我在亚马逊上运行我的应用程序,我部署了一个按租户和日期分隔日志文件的版本,这意味着我的环境在某一时刻不接受更多请求,抛出IOException。
29-Mar-2016 11:56:07.939 SEVERE [http-nio-8080-Acceptor-0] org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket accept failed
java.io.IOException: Too many open files
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:241)
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:688)
at java.lang.Thread.run(Thread.java:745)
我该如何解决这个问题?
答案 0 :(得分:1)
今天遇到了这个问题。 事实证明,打开文件描述符有一个软限制(本质上是一个唯一标识打开文件的数字)。这些限制是按进程设置的。
$ ulimit -S -n
256
$ ulimit -S -n 1024
1024
Syntax
ulimit [-abcdefHilmnpqrsStTuvx] [limit]
Key
-S Set a soft limit for the given resource.
-n The maximum number of open file descriptors.
答案 1 :(得分:0)