java.io.IOException: 打开的文件过多(Too many open files)
linux-dash
A beautiful web dashboard for Linux
项目地址:https://gitcode.com/gh_mirrors/li/linux-dash
·
一、环境描述:
部署到linux下的tomcat
二、现象:
刚部署完后可以对项目进行访问,后台没有报错,间隔两天后,无法访问项目,日志中报错。
三、错误日志如下:
20-Nov-2017 10:07:15.210 SEVERE [http-nio-8081-Acceptor-0]org.apache.tomcat.util.net.NioEndpoint$Acceptor.run Socket acceptfailed
java.io.IOException: 打开的文件过多(Too many open files)
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at un.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at un.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:687)
at java.lang.Thread.run(Thread.java:748)
四、报错的原因是:
项目中有七八个定时器,其中有一个定时器是每半小时执行一次,定时器任务是使用ssh方式登录linux服务进行相应的操作,而问题恰恰就在没有关闭定时器每次执行时创建的“ch.ethz.ssh2.Connection” 连接器对象实例,造成了"Too manyopen files "。
五、解决方案: 对Connection对象使用完后进行关闭。
在解决这个问题的过程中,看到网上很多帖子都是在说设置linux的最大文件打开数量,至于说怎么设置,在这里就不说了,反正这个方法无法根本解决问题。我还是说一下程序中存在的BUG问题,在写代码的时候往往就会粗心的忘记对Connection、Session、Socket、节点流和处理流等进行关闭操作,而linux下对文件操作数量有限制,当超过默认的最大打开文件数量1024个时,就会报Too many open files错误。
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e
added ecosystem file for PM2 5 年前
5def40a3
Add host customization support for the NodeJS version 5 年前
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)