修改 Ubuntu 的 ulimit 文件句柄数限制

星橙
2022-10-02 / 0 评论 / 1,181 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年10月02日,已超过626天没有更新,若内容或图片失效,请留言反馈。

最近服务器的一个项目偶尔就显示Too many open files尝试解决无果,又不能一遇到这种情况就重启项目,遂百度尝试解决,结果百度的思路是对的,但是不全面不能完整的解决问题,苦恼良久。今遇到群内大佬解惑,成功完美修改ulimit,得到大佬口头授权,搬运大佬文章做一下记录,方便后续使用。

版权属于: 若海

本文链接: https://www.rehiy.com/post/41

许可协议: 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)

最近,网站服务器CPU经常就会飙升到100%,但内存,IO,网络等一切正常,今天忽然想起有可能是ulimit的问题,马上查看文件句柄数限制

ulimit -n

得到的结果是:5120,这个值对生产中的服务显得偏小。

网上给出的解决方案,大部分是直接输入

ulimit -SHn 102400 # 102400可自己根据应用调整

此法缺点很明显,一旦退出登陆立即失效。

下面给出正确的解决办法:

1.修改/etc/security/limits.conf子配置,命令如下

echo * - nofile 102400 >> /etc/security/limits.d/nofile.conf
echo root - nofile 102400 >> /etc/security/limits.d/nofile.conf

重新登录查看是否生效。若未生效,请继续深入~

2.编辑/etc/pam.d/su,取消如下行注释

session required pam_limits.so

重新登录查看是否生效。若未生效,请继续深入~

3.编辑/etc/profile,加入一行

ulimit -SHn 102400

重启服务器,再次登陆,查看句柄数,已经正确设置为102400。

如果有碰到类似情况,可以检查一下看看是不是文件句柄数设置太小引起的。

2

评论 (0)

取消