当前位置: 首页 > 知识库问答 >
问题:

Tomcat错误:打开的文件太多

秦永望
2023-03-14

我想知道太多文件打开错误的确切问题。我通过谷歌寻找解决方案,但我不知道为什么会出现这个问题以及如何解决这个问题。

堆栈错误:严重:套接字接受失败。网SocketException:java上打开的文件太多。网普通袜子。java上的socketAccept(本机方法)。网抽象素socketimpl。在java上接受(AbstractPlainSocketImpl.java:398)。网服务器插座。java上的implacpt(ServerSocket.java:530)。网服务器插座。在org接受(ServerSocket.java:498)。阿帕奇。公猫util。网DefaultServerSocketFactory。acceptSocket(默认服务器)‌​java:61)在org上。阿帕奇。公猫util。网JIoEndpoint$接受者。运行(JIoEndpoint.java:352)–用户2883376

Linux服务器,这是我最后一次更新代码,以获取基于语言的消息。ApplicationContext context=new ClassPathXmlApplicationContext(“app context.xml”);name=上下文。getMessage(键,空,区域设置);返回名称;

对这个错误有什么建议吗?

共有2个答案

乐健
2023-03-14

虽然如果在下一行的某个点引发“ulimit”,tomcat将停止导致相同的错误。

因此,为了避免这种情况,您可以使用命令“lsof-u username”或简单的“lsof”检查Linux上应用程序用户打开的文件列表,并查看与代码相关的文件是否打开(例如属性文件),如果打开,则使用针对特定tomcat用户的#kill-9lsof-t-u username命令杀死这些特定文件。

您需要修复代码以加载这些文件,这些文件只需在类的静态块中编写即可。因此,即使任意数量的用户进行了多次点击,也只能加载一个文件。

现在,您可以在使用相同的lsof命令部署新更改后重新检查,请参见。只会看到一个文件。这将永久解决您的问题,而不会每次都提出ulimit。

赫连方伟
2023-03-14

问题几乎可以肯定,您正在代码中的某个地方泄漏文件句柄。我有一些雄猫,一次能熬夜好几个月,却没有遇到这种情况。

 类似资料:
  • 我有一个在tomcat上运行的应用程序,有时会出现以下错误: .... 我检查了打开文件的限制,它是1024个,但是当我检查了lsof应用程序的打开文件数量时,它接近200个,如果它没有达到限制,为什么会发生这种情况?我应该增加限额吗?是否有其他原因导致此错误?让服务重新正常运行的唯一方法是重新启动tomcat,还有其他恢复正常的方法吗? 提前谢谢。 编辑:这里是处理doPost方法的servle

  • 今天早些时候,我访问了我最近推出的一个网站,页面上充斥着一个丑陋的jasperex0019:java.io.filenotfoundexception: /opt/tomcat/webapps/root/web-inf/lib/jstl-1.2.jar(打开的文件太多)。我检查了我的服务器日志和tomcat日志,它们充满了相同的错误。我增加了tomcat的最大打开文件限制,作为保持网站运行的临时解

  • 我们正在AmazonLinux中的ApacheTomcat中运行一个web服务。最初web服务运行正常。在发出1000多个web请求后,我们收到了太多的打开文件异常。当我们重新启动tomcat服务器时,这个问题将再次得到解决。 请查看以下例外情况 附言:我们在网络服务中没有做任何与文件相关的操作。

  • 我已经在tomcat(ubuntu 18.04)中部署了我的JavaRest应用程序。一切似乎都很好,直到这个错误显示: 我已将限制设置为65000,但几个小时后仍然会出现此错误。 /etc/安全/限制。conf文件 *软nproc 65535 *硬nproc 65535 *软nofile 65535 *硬nofile 65535根软nproc 65535 根硬nproc 65535 根软nofi

  • 问题内容: 我已经与Tornado进行了很多合作,但这是我第一次遇到这种错误。我一直在研究一个非常基本的URL缩短器。URL由另一种应用程序放入数据库中,该应用程序仅从MongoDB存储中读取URL并重定向客户端。编写基本代码后,我针对它设置了一个简单的“ Siege”测试,在运行siege(针对4个应用程序线程运行)约30秒钟之后,我开始获得500个响应。查看错误日志,我看到了; 重要(我想);

  • 我正在编写一个需要读取/写入大量文件的遗传算法。GA的适用性测试是调用一个名为的程序,该程序将文件作为输入并生成文件作为输出。 一切都在工作,除非我使遗传算法的种群规模和/或总代数太大。然后,经过这么多代人,我开始得到这个:(我为许多不同的文件反复得到它,索引 只是我上次运行它时首先出现的那个)。这很奇怪,因为我不是在第一代或第二代之后得到错误,而是在相当多的世代之后,这表明每一代都会打开更多它没