zoukankan      html  css  js  c++  java
  • Linux 文件描述符相关参数配置

    1.整个系统最大打开文件描述符数:/proc/sys/fs/file-max
    $cat /proc/sys/fs/file-max
    763983
    临时性设置
    $echo 6553500 > /proc/sys/fs/file-max
    $sysctl -w fs.file-max=6553500
    永久性设置:
    $vim /etc/sysctl.conf
    fs.file-max = 6553500
     
     
    2.系统中单个进程最大打开文件描述符数:
    $cat /proc/sys/fs/nr_open
    1048576
    临时性设置有两种方法如下:
    $echo 102400 > /proc/sys/fs/nr_open
    $sysctl -w fs.nr_open=102400
    永久性设置:
    $vim /etc/sysctl.conf
    fs.nr_open = 102400
     
     
    3.查看user limit中nofile的soft limit:
    $ulimit -n            #ulimit -n默认查看的是soft limit
    65535
    $ulimit -Sn
    65535
    临时性设置,通过ulimit -Sn设置的是最大打开文件描述符数的soft limit,并且soft limit不能大于hard limit:
    $ulimit -Sn 10240
    $ulimit -n
    10240
    $ulimit -Sn
    10240
    查看user limit中nofile的hard limit:
    $ulimit  -Hn
    65535
    临时性设置,通过ulimit -Hn设置的是最大打开文件描述符数的hard limit,对于非root用户只能设置比原来小的hard limit:
    $ulimit -Hn 11111
    $ulimit -Hn
    11111
    同时设置soft limit和hard limit:
    $ulimit -n 1024
    $ulimit -n
    1024
    $ulimit -Sn
    1024
    $ulimit -Hn
    1024
    永久性设置:上面的方法只是临时性的,用户注销之后就会失效,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行内容,表示用户skuser最大打开文件描述符数的soft  limit为20480,hard limit为40960。以下设置需要注销之后重新登录才能生效:
    $vim /etc/security/limits.conf
    skuser           soft    nofile          20480
    skuser           hard    nofile          40960
    如果要为所有用户进行配置,可以进行如下配置:
    $vim /etc/security/limits.conf
    *           soft    nofile          20480
    *           hard    nofile          40960
    一般企业中会让root用户和普通用户分开,参考配置如下:
    $tail -4 /etc/security/limits.conf
    root     soft     nofile     65535
    root     hard     nofile     65535
    *     soft     nofile     20480
    *     hard     nofile     40960
    设置nofile的hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后将无法正常登录:
    $cat /proc/sys/fs/nr_open
    1048576
    可以修改nr_open的值:
    $echo 2048000 > /proc/sys/fs/nr_open
     
     
    4.查看当前系统已打开的文件描述符数:
    $cat /proc/sys/fs/file-nr
    2144    0    763983
    第一个数表示当前系统已分配使用的文件描述符数
    第二个数为分配后已释放的,即目前已不再使用
    第三个数等于file-max
     
     
    5.总结:
    系统所有进程打开的文件描述符数总和不能超过/proc/sys/fs/file-max
    系统中单个进程打开的文件描述符数不能超过/proc/sys/fs/nr_open
    每个用户的单个用户进程打开的文件描述符数不能超过user limit中nofile的soft limit
    每个用户的soft limit不能超过其hard limit
    每个用户的hard limit不能超过/proc/sys/fs/nr_open
     
     
     
     
     
     
     
  • 相关阅读:
    针对 jQuery Gridly 控件显示多少列的问题。
    网上找的几款拖拽插件
    商品价格加价区间的实现(策略模式)
    【C#】GC和析构函数(Finalize 方法)
    C#微信开发之旅(一):前言
    Opserver配置Redis、SqlServer监控
    线程安全的方式引发事件
    使用SSL的IIS下WCF配置(CSDN手动迁移)
    由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作--解决方法(CSDN手动迁移)
    EF Code First(The model backing the '***' context has changed since the database was created.解决方法)(CSDN手动迁移)
  • 原文地址:https://www.cnblogs.com/juchangfei/p/12807595.html
Copyright © 2011-2022 走看看