linux open file的修改和too many open file问题的解决

linux 服务器上执行程序down机,查看log日志发现panic :too many open file

解决方法:

运行ulimit -a 查看我们open file的文件数量

1024确实有点少了,通过命令umlimit -n 65535 来修改open file的值

这个命令可以把默认的句柄数改为2000,但系统重启后会恢复默认值(关闭窗口在重新登陆服务器你就会发现open file 变成了默认值)

 修改linux单进程连接数

修改linux系统参数。vi /etc/security/limits.conf 添加
*  soft  nofile  65536
*  hard  nofile  65536
修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了:

linux 句柄查看命令参考:

linux 文件句柄数查看命令_骄阳如火的博客-CSDN博客_linux 文件句柄数查看命令

永久修改open file 需要修改两个参数,file-max和limits.conf中的两个参数,为什么需要修改这两个参数和open file发生的根本原因可以参考:

https://www.cnblogs.com/chenpingzhao/p/5563602.html

女生也看得懂的linux中open file设置原则-CSDN论坛

修改步骤:

linux修改open file 大小,修改步骤如下:

1》修改file-max

修改文件:

vi /etc/sysctl.conf

在文件末尾加入:

fs.file-max = 65535

保存文件,重启后生效

2》修改ulimit的open file,系统默认的ulimit对文件打开数量的限制是1024

修改文件:

vi /etc/security/limits.conf

在文件中加入:

soft nofile 65535
hard nofile 65535

修改完成,保存文件,重启后生效

但是这里需要注意的是修改limits.conf 文件时候要根据系统核数进行修改,不能随便写,一般按照4核算的话 (4*1024*1024) 虚拟内存就这么大,大约一百万左右,你的file-max limit.conf中的那两个值就不能比这个大

如果写的比虚拟内存还打的后果就是sudo 登陆不上,系统无法打开i新的文件,因为linux系统一切皆文件,所以后果会很难受,一般执行sudo的时候会有这个报错

sudo: pam_open_session: Permission denied
sudo: policy plugin failed session initialization

一次修改limits.conf 引发的血案 - 简书(可以参考这个)

我用的国外的服务器,无法重启生效(亚马逊的服务器用过的就知道为啥不介意重启了)

就针对进程来进行对应的openfile修改

ulimit -HSn 65535

  ulimit-a 查看是否修改

这时,可以考虑通过修改/proc/’程序pid’/limits来实现动态修改!!!

也就是说,你执行完ulimit -HSn 65535 在执行你的程序,你的执行程序就会自己记录open file 哪怕关闭服务器窗口,虽然ulimit -a 查询已经回复默认值,但是你的这个执行程序的open file是不会回到默认值的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力搬砖1122

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值