一尘不染

Apache Tomcat异常-打开的文件太多

tomcat

我们正在Amazon Linux的Apache
Tomcat中运行Web服务。最初,Web服务运行正常。发出超过1000个Web请求后,我们收到太多打开文件异常。同样,当我们重新启动tomcat服务器时,将解决此问题。

请在下面找到例外

25-Apr-2016 10:05:52.628 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:422)
        at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
        at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:686)
        at java.lang.Thread.run(Thread.java:745)

PS:我们不在Web服务中进行任何与文件相关的操作。


阅读 651

收藏
2020-06-16

共1个答案

一尘不染

看起来,打开文件有一些限制。当您在Linux上运行时,我怀疑您的文件描述符已用完。

签出ulimit命令以查看允许打开的文件数。

ulimit -n

您可以通过编辑来更改打开文件的数量:

/etc/security/limits.conf

并添加如下内容:

* soft nofile 4096
* hard nofile 4096

您可以在此处查看有关limit.conf的更多信息。

默认限制是1024,对于某些Java应用程序来说可能太低。

本文中有关增加最大打开文件数的更多信息:http : //www.cyberciti.biz/faq/linux-increase-the-
maximum-number-of-open-files/

2020-06-16