V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
ming7435
V2EX  ›  问与答

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

  •  
  •   ming7435 · 2017-06-24 19:02:15 +08:00 · 1628 次点击
    这是一个创建于 2497 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚接手一客户的服务器,由于长期无人维护,服务器已经千疮百孔,据客户反应必须每天重启一下 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 呢?求各位大佬诊断一下!

    4 条回复    2017-06-24 20:38:00 +08:00
    mind3x
        1
    mind3x  
       2017-06-24 19:13:04 +08:00 via Android
    修 bug 啊...代码有泄漏句柄。
    考虑到 Java 本身 gc 的 finalizer 会正常关闭句柄,这样还会泄漏的话只会是程序本身还有 hold 住 File 对象的引用,比如放进了某个 list 或者 map 然后一直没移除之类。
    cwlmxwb
        2
    cwlmxwb  
       2017-06-24 19:15:27 +08:00 via iPhone
    最近几天,公司刚好遇到过这个问题。
    1:限制长链接数目( HTTPSl 协议默认开启长链接,过多长链接回导致 socket 句柄过多)
    2:(针对我遇到的)流量限制
    guoer
        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
    ming7435
        4
    ming7435  
    OP
       2017-06-24 20:38:00 +08:00
    @mind3x 我用 lsof 看了一下,打开的文件绝大多数( 90%以上)都是 lucene 的索引文件,而且打开的数量一直在增加,严重怀疑搜索部分的代码有 bug,准备从这一块下手!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5544 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:42 · PVG 14:42 · LAX 23:42 · JFK 02:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.