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
     
     
     
     
     
     
     
  • 相关阅读:
    Kotlin入门学习笔记
    bower安装使用入门详情
    Bower => 前端开发也有包管理器
    Bower : ENOGIT git is not installed or not in the PATH
    webstorm配置nodejs,bower,git,github
    VS2012远程调试(winform+web 远程调试)
    在使用Redis的客户端连接工具ServiceStack.Redis要注意的问题
    android 反编译 逆向工具整理
    android 插件化开发 开源项目列表
    未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"解决方案
  • 原文地址:https://www.cnblogs.com/juchangfei/p/12807595.html
Copyright © 2011-2022 走看看