Too many open files 的问题怎么解决?

2017-06-24 19:02:15 +08:00
 ming7435

刚接手一客户的服务器,由于长期无人维护,服务器已经千疮百孔,据客户反应必须每天重启一下 tomcat,否则网站就直接报 404,今天上服务器看了一眼日志,发现 tomcat 的日志抛出个 IO 异常,Too many open files,然后依据以往的经验查看了一下系统( centos6.5 )的文件句柄与打开文件数量的参数,发现都已经调到很高了,open files 为 409600,/etc/security/limits.conf 文件里面也都加上 soft nofile 409600 和 hard nofile 409600 的参数,但是为毛还是报 Too many open files 呢?求各位大佬诊断一下!

1691 次点击
所在节点    问与答
4 条回复
mind3x
2017-06-24 19:13:04 +08:00
修 bug 啊...代码有泄漏句柄。
考虑到 Java 本身 gc 的 finalizer 会正常关闭句柄,这样还会泄漏的话只会是程序本身还有 hold 住 File 对象的引用,比如放进了某个 list 或者 map 然后一直没移除之类。
cwlmxwb
2017-06-24 19:15:27 +08:00
最近几天,公司刚好遇到过这个问题。
1:限制长链接数目( HTTPSl 协议默认开启长链接,过多长链接回导致 socket 句柄过多)
2:(针对我遇到的)流量限制
guoer
2017-06-24 19:22:22 +08:00
试试这个:sysctl -w net.ipv4.tcp_tw_reuse=1

http://www.cnblogs.com/yuxingfirst/archive/2013/04/24/3040443.html
ming7435
2017-06-24 20:38:00 +08:00
@mind3x 我用 lsof 看了一下,打开的文件绝大多数( 90%以上)都是 lucene 的索引文件,而且打开的数量一直在增加,严重怀疑搜索部分的代码有 bug,准备从这一块下手!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/370814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX