Linux最大打开文件描述符数

  1. 系统最大打开文件描述符数:/proc/sys/fs/file-max
    a. 查看
    $ cat /proc/sys/fs/file-max
    186405

  2. 设置
    a. 临时性
     # echo 1000000 > /proc/sys/fs/file-max

  3. 永久性:在/etc/sysctl.conf中设置
    fs.file-max = 1000000

  4. 进程最大打开文件描述符数:user limit中nofile的soft limit
    a. 查看
    $ ulimit -n
    1700000

  5. 设置
    a. 临时性:通过ulimit -Sn设置最大打开文件描述符数的soft limit,注意soft limit不能大于hard limit(ulimit -Hn可查看hard limit),另外ulimit -n默认查看的是soft limit,但是ulimit -n 1800000则是同时设置soft limit和hard limit。对于非root用户只能设置比原来小的hard limit。
    查看hard limit:
    $ ulimit -Hn
    1700000
    设置soft limit,必须小于hard limit:
    $ ulimit -Sn 1600000

  6. 永久性:上面的方法只是临时性的,注销重新登录就失效了,而且不能增大hard limit,只能在hard limit范围内修改soft limit。若要使修改永久有效,则需要在/etc/security/limits.conf中进行设置(需要root权限),可添加如下两行,表示用户chanon最大打开文件描述符数的soft limit为1800000,hard limit为2000000。以下设置需要注销之后重新登录才能生效:
    chanon soft nofile 1800000
    chanon hard nofile 2000000
    设置nofile的hard limit还有一点要注意的就是hard limit不能大于/proc/sys/fs/nr_open,假如hard limit大于nr_open,注销后无法正常登录。可以修改nr_open的值:
     # echo 2000000 > /proc/sys/fs/nr_open

  7. 查看当前系统使用的打开文件描述符数
    [root@localhost bin]#
    5664 0 186405
    其中第一个数表示当前系统已分配使用的打开文件描述符数,第二个数为分配后已释放的(目前已不再使用),第三个数等于file-max。

  8. 总结:
    a. 所有进程打开的文件描述符数不能超过/proc/sys/fs/file-max
    b. 单个进程打开的文件描述符数不能超过user limit中nofile的soft limit
    c. nofile的soft limit不能超过其hard limit
    d. nofile的hard limit不能超过/proc/sys/fs/nr_open

linux有效修改max open files/ulimit -n
使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。
新装的linux默认只有1024,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。
使用 ulimit -n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535,-S指soft,-H指hard)
有如下三种修改方式:
1.在/etc/rc.local 中增加一行 ulimit -SHn 65535
2.在/etc/profile 中增加一行 ulimit -SHn 65535
3.在/etc/security/limits.conf最后增加如下两行记录
 * soft nofile 65535
 * hard nofile 65535

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值