zoukankan      html  css  js  c++  java
  • too many open files问题

    linux环境下,程序运行时,出现了too many open files的错误。

    通过名字就能看出来,是打开了太多的文件,超过了系统限制。

    ulimit -a

    通过这个命令可以查看当前系统设置的最大句柄数是多少

    可以看到,文件打开数量,最大值是1024,如果再有新文件打开就会报上述错误。

    这个问题主要是一些IO流没有关闭造成的,比如我这出现这个问题的原因就是解压时候ZipFile对象没有close()造成的。

    查看具体是什么没有关闭的方法:

    jps
    

    这个命令能够查看java环境下的正在执行的线程的pid

    然后

    lsof -p XXX >openfiles.log

    上边的XXX填写pid号,如上边jps查询出来的10240、20180等

    lsof -p 10240 >1.log
    lsof -p 20180 >2.log
    lsof -p 26311 >3.log
    lsof -p 9225 >4.log
    lsof -p 10186 >5.log
    lsof -p 10300 >6.log
    

    将信息导入到这些log进行查看,就能观察出来了。

  • 相关阅读:
    Java ES api 查询例子
    leveldb学习
    Viewstamp Replication协议
    PacificA协议
    vhost架构
    数据分片方法
    常见分布式存储系统架构分析
    数据存储(B+树 vs LSM树)
    paxos算法理解
    Raft协议理解
  • 原文地址:https://www.cnblogs.com/jinzhiming/p/10304694.html
Copyright © 2011-2022 走看看