zoukankan      html  css  js  c++  java
  • Linux-文件句柄数

    一、文件句柄不足产生原因

    文件句柄过多原因:
    1、打开文件未释放
    2、打开管道未释放
    3、建立网络连接未释放(pipe,eventpoll多出现在 NIO 网络编程未释放资源 —— selector.close())
    4、创建进程调用命令未释放(Runtime.exe(...) 得到的 Process, InputStream, OutputStream 未关闭,这也会导致 pipe,eventpoll 未释放)
    5、mina库使用NIO时未使用connector.dispose();
    6、netty3库使用NIO时未使用bootstrap.shutdown() 或bootstrap.releaseExternalResources();

    二、查看文件句柄使用情况

    系统级文件句柄数配置
    [weblogic@hkczjjapp arms_bid]$ cat /proc/sys/fs/file-nr
    2112    0    1617504-----(已分配文件句柄的数目、已分配未使用文件句柄的数目、文件句柄的最大数目)
    
    用户级文件句柄数配置-默认
    [weblogic@hkczjjapp arms_bid]$ ulimit -a
    core file size          (blocks, -c) 0
    data seg size           (kbytes, -d) unlimited
    scheduling priority             (-e) 0
    file size               (blocks, -f) unlimited
    pending signals                 (-i) 63594
    max locked memory       (kbytes, -l) 64
    max memory size         (kbytes, -m) unlimited
    open files                      (-n) 1024
    pipe size            (512 bytes, -p) 8
    POSIX message queues     (bytes, -q) 819200
    real-time priority              (-r) 0
    stack size              (kbytes, -s) 10240
    cpu time               (seconds, -t) unlimited
    max user processes              (-u) 1024
    virtual memory          (kbytes, -v) unlimited
    file locks                      (-x) unlimited
    
    用户级文件句柄数-实际数 [weblogic@hkczjjapp arms_bid]$ ulimit
    -n 1024

    三、文件句柄使用情况分析

    lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr-----各进程打开句柄数
    lsof -n|awk '{print $3}'|sort|uniq -c|sort -nr-----各用户打开句柄数
    lsof -n|awk '{print $1}'|sort|uniq -c|sort -nr-----各命令打开句柄数
    
    查看各PID使用句柄数 [weblogic@hkczjjapp arms_bid]$ lsof
    -n |awk '{print $2}'|sort|uniq -c |sort -nr|more-----(使用数量、PID) 1284 98765 1030 53348
    查看PID句柄具体使用情况 [weblogic@hkczjjapp arms_bid]$ lsof
    -p 98765 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 98765 weblogic 682w REG 253,0 290 1985289 /home/weblogic/bid/WEB-INF/logs/logAudit.log java 98765 weblogic 683w REG 253,0 0 1973768 /home/weblogic/bid/WEB-INF/logs/esb.log java 98765 weblogic 684w REG 253,0 105838 1985316 /home/weblogic/bid/WEB-INF/logs/emp.log java 98765 weblogic 685w REG 253,0 5951552 1985308 /home/weblogic/bid/WEB-INF/logs/arms.log java 98765 weblogic 686w REG 253,0 0 1973829 /home/weblogic/bid/WEB-INF/logs/trace.log java 98765 weblogic 687w REG 253,0 6122867 1985277 /home/weblogic/bid/WEB-INF/logs/console.log 参数详解: COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等 TYPE:文件类型,如DIR、REG等 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件在磁盘上的标识) NAME:打开文件的确切名称

    四、文件句柄数配置修改

    [weblogic@hkczjjapp arms_bid]$ vi /etc/security/limits.conf
    * soft nofile 65535 * hard nofile 65535 末尾添加以上配置(root),重新登录生效,硬限制是实际的限制,而软限制,是warnning限制,超过这个数值只会做出warning
  • 相关阅读:
    RabbitMQ系列教程之一:我们从最简单的事情开始!Hello World(转载)
    如何安装和配置RabbitMQ(转载)
    C++学习笔记-模板
    C++学习笔记-多态的实现原理
    C++学习笔记-多态的实现原理
    C++学习笔记-多态
    C++学习笔记-多态
    C++学习笔记-继承中的构造与析构
    C++学习笔记-继承
    C++学习笔记-封装
  • 原文地址:https://www.cnblogs.com/chunxiaozhang/p/13992794.html
Copyright © 2011-2022 走看看