• debug open files


    目前在debug 的时候发现进程使用的fd 数目不够了!!

    进程层面:

      1.进程最多打开文件描述符数

    由于目前进程已经在运行,是有ulimit 修改参数没用,目前可以通过/proc/$pid/limits来动态修改

    /proc/$pid/limits

      使用ulimit  命令查看  当前的限制以及使用root用户运行以下命令:ulimit -HSn 4096修改  单进程能打开的文件描述符;

    以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数。

    记住:

    • ulimit -n 设置的单shell的最大文件数的限制,如果在一个shell中开启了多个进程,则会共享最大文件数。

     由于重启后失效所以一般都在profile 中执行

    echo "ulimit -n 1048576" >> /etc/profile

      或者在/etc/security/limits.conf中进行设置(root用户),可添加如下两行,表示所有 用户最大打开文件描述符数的soft limit为102400,hard limit为1042400

    在etc/security/limits.conf中添加如下内容:

           *soft nofile 102400
    
          *hard nofile 102400        
    •  设置nofile的hard limit还要注意一点的就是hard limit不能大于/proc/sys/fs/nr_open
    • 也就是设置/proc/sys/fs/nr_open可以调整 一个进程能够使用的最大文件数

    系统方面:

    •    系统最大打开文件描述符数: /proc/sys/fs/file-max
    • 查看当前系统使用的打开文件描述符数---/proc/sys/fs/file-nr
    #cat /proc/sys/fs/file-nr

    6784 0 10000000

    
    说明:第一个数表示当前系统已分配的文件描述符数(文件句柄数),第二个数为分配后已释放的文件描述符数(当前不再使用的文件描述符数),
    
    第三个数为最大文件描述符数,等于file-max
    • /proc/sys/fs/file-max 是系统级的总文件数量限制,当达到此限制之后内核报错 ENFILE;
    • 特权进程( Privileged processes)可以覆盖file-max限制。

      》1.所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max

      》2.单个进程打开的文件描述符数不能超过user limit --->ulimit 中的nofile的soft limit

    注意:当程序是一个daemon时,使用ulimit  -HSn 设置其max open file时是无用的, 重启dmemon 进程 ulimit -n 发现其值是40000;

    但是cat /proc/pid/limits 发现其open max 值还是1024

     实际上 一般都是在代码里面通过setrlimit(RLIMIT_NOFILE, &rlmt) 设置相关参数吧

    关于 file-max等具体信息可以通过man  proc 查看!!!!

    http代理服务器(3-4-7层代理)-网络事件库公共组件、内核kernel驱动 摄像头驱动 tcpip网络协议栈、netfilter、bridge 好像看过!!!! 但行好事 莫问前程 --身高体重180的胖子
  • 相关阅读:
    sql的ROWCOUNT的说明。
    引用: 把new、virtual、override说透
    我要在左边的FRAME1里调用右边的FRAME2的JAVASCRIPT函数
    webconfig设置用户控件配置。
    2个Frame用ID标记没用, 用NAME标记有用。 查询BAIDU,如下。
    HttpWebRequest加载证书请求远端https服务器时 : 基础连接已经关闭: 无法与远程服务器建立信任关系
    SELECT 与 SET 对变量赋值的区别(存储过程)
    Ajax小示例
    My97Date 有一个功能强大的时间控件
    Tomcat6.0 管理界面的配置
  • 原文地址:https://www.cnblogs.com/codestack/p/14570804.html
Copyright © 2020-2023  润新知