服务器报错打开文件过多,Linux最大打开文件数

3.1 查看相关参数大小

查看修改前参数的大小,如下图所示:

a32208e1fcbb8d2b45f0c415ed63820e.png

命令如下所示:cat /proc/sys/fs/nr_open

cat /proc/sys/fs/file-max

ulimit -n

3.2 修改 limit 中 nofile 值

当要修改的「nofile」值(最大打开文件数)未超过「nr_open」和「file-max」两个值时,直接修改「nofile」值即可。

3.2.1 临时生效

输入ulimit -n 128000,如下图所示:

790def67d05affd0db5ce2a6ae6f1753.png

3.2.2 永久生效

注:参考该节步骤一后,直接执行 reboot 重启服务器,即可生效;若不想重启服务器,可参考本节完整步骤。

1)使用vi /etc/security/limits.conf编辑 limits.conf 文件,修改 nofile 值(其中 128000 即为修改的 nofile 值),如下所示:

vi /etc/security/limits.conf  #进入文件编辑界面

* soft nofile 128000 #确保有该行内容

* hard nofile 128000  #确保有该行内容

注:有的系统需把「*」替换为具体用户名才生效,例如root soft nofile 128000

01e50f99126b8a0f24bcd6c1daaa5e9e.png

2)编辑/etc/pam.d/login文件,确保有下面内容,如下图所示:session required pam_limits.so

846c972768b984fa653499b5a60bb513.png

3)使用exit语句退出终端重新登录即可。如下图所示:

d51edaa0bad2adf477528a42848165ed.png

3.3 nr_open 和 file-max 值

3.3.1 临时生效echo 1200000 > /proc/sys/fs/nr_open

echo 200000 > /proc/sys/fs/file-max

3.3.2 永久生效:需重启服务器

当要修改的最大打开文件数超过 nr_open 和 file-max 时,就需要改动该值,将该值提高。其修改方式如下:

在文件/proc/sys/fs/nr_open中加入如下代码:(1200000 为修改的参数值)

fs.nr_open=1200000

在文件/proc/sys/fs/file-max 中插入如下代码:fs.file-max=200000

保存并执行 reboot 重启服务器。

注:Linux的内核参数 nr_open 只有在内核版本是 2.6.25 之后的版本才可设置。查看内核版本使用命令“uname -a”。

然后再修改 nofile 值 ,请参见 3.2 节。

3.3.3 永久生效:无需重启服务器

在/etc/sysctl.conf中设置fs.nr_open= 1200000 fs.file-max=200000,然后执行sysctl -p,使配置生效。如下所示:

911bd027a1f5b25584188e174f7be813.png

3.4 效果查看

通过cat /proc/pid/limits查看单进程最大打开文件数,如下图所示:

eb43c1e8bf99da0f66798213d33bb698.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值