网站打不开日志显示too many open files的解决方案

有时候我们会遇到网站没办法打开,找来找去不知道什么问题,查看网站的日志,发现日志中记录很多too many open files的字样,这是什么回事呢?其实这种情况会导致打开网站、开启服务失败,这里搬主题就给出网站打不开日志显示too many open files的解决方案。

文件句柄是什么

百度百科:

在文件I/O中,要从一个文件读取数据,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数取回一个顺序号,即文件句柄(file handle),该文件句柄对于打开的文件是唯一的识别依据。要从文件中读取一块数据,应用程序需要调用函数ReadFile,并将文件句柄在内存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,再通过调用系统函数来关闭该文件

为什么会报 too many open files

默认情况下,Linux下默认的文件句柄是 1024,当服务器的并发高或者是打开的文件数量较多的时候,就会报 too many open files

查询:

ulimit  -n
网站打不开日志显示too many open files的解决方案插图

解决方案

修改进程打开的文件数量

1、临时解决方案:

ulimit -n  204800 

此方法不用重启服务器,当前环境变量下,临时生效,重启服务器后,无效

2、永久解决,需要修改/etc/security/limits.conf 文件

echo "* soft nofile 204800"  >> /etc/security/limits.conf
echo "* hard nofile 204800"  >> /etc/security/limits.conf
echo "* soft nproc 204800"  >> /etc/security/limits.conf
echo "* hard nproc 204800 "  >> /etc/security/limits.conf

修改后,需要重启服务器,查看是否生效

ulimit -n

上面修改的是一个进程打开的文件句柄数量,但是还需要修改系统的总限制才行。比如我们设置的每个进程打开文件句柄默认是1024个,但是系统限制的是500 ,最终一个进程打开的文件句柄数量也是 500

修改系统限制

1、临时解决方案:

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

2、永久解决方案,需要重启生效:

echo   fs.file-max = 6553560  >> /etc/sysctl.conf

查看是否生效:

sysctl -p
 收藏 (0) 更新不易,打赏吧

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

除特别注明外,本站所有文章均基于CC-BY-NC-SA 4.0原创,转载请注明出处。
文章名称:《网站打不开日志显示too many open files的解决方案》
文章链接:https://www.banzhuti.com/web-log-too-many-open-files.html
分享到: 生成海报
版权免责声明

① 本站提供的资源(插件或主题)均为网上搜集,如有涉及或侵害到您的版权请立即通知我们。
② 本站所有下载文件,仅用作学习研究使用,请下载后24小时内删除,支持正版,勿用作商业用途。
③ 因代码可变性,不保证兼容所有浏览器、不保证兼容所有版本的WP、不保证兼容您安装的其他插件。
④ 本站保证所提供资源(插件或主题)的完整性,但不含授权许可、帮助文档、XML文件、PSD、后续升级等。
⑤ 由本站提供的资源对您的网站或计算机造成严重后果的本站概不负责。
⑥ 使用该资源(插件或主题)需要用户有一定代码基础知识!另本站提供汉化使用安装教程,仅供参考。
⑦ 有时可能会遇到部分字段无法汉化,同时请保留作者汉化宣传信息,谢谢!
⑧ 本站资源售价只是赞助和汉化辛苦费,收取费用仅维持本站的日常运营所需。
⑨ 如果喜欢本站资源,欢迎捐助本站开通会员享受优惠折扣,谢谢支持!
⑩ 如果网盘地址失效,请在相应资源页面下留言,我们会尽快修复下载地址。

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

WordPress主题 插件 建站 汉化

定制服务联系我们
切换注册

登录

点击按钮进行验证

忘记密码

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活