刚接手一客户的服务器,由于长期无人维护,服务器已经千疮百孔,据客户反应必须每天重启一下 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 呢?求各位大佬诊断一下!
1
mind3x 2017-06-24 19:13:04 +08:00 via Android
修 bug 啊...代码有泄漏句柄。
考虑到 Java 本身 gc 的 finalizer 会正常关闭句柄,这样还会泄漏的话只会是程序本身还有 hold 住 File 对象的引用,比如放进了某个 list 或者 map 然后一直没移除之类。 |
2
cwlmxwb 2017-06-24 19:15:27 +08:00 via iPhone
最近几天,公司刚好遇到过这个问题。
1:限制长链接数目( HTTPSl 协议默认开启长链接,过多长链接回导致 socket 句柄过多) 2:(针对我遇到的)流量限制 |
3
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 |