accept4() failed (23: Too many open files in system)
今天早上9.40多分钟的时候,又出现这个问题,网上找资料,有一个命令可以查询系统文件打开数量的限制(硬限制):
cat /proc/sys/fs/file-max
使用了这个命令查看,发现限制只有200000
难怪每次使用(sudo find /proc -print | grep -P '/proc/\d+/fd/'| wc -l)这个命令查看已打开文件数的时候,一到20万左右就网站打不开
然后就开始询问阿里云的工作人员,结果如下:
1、用户级别
查看Linux系统用户最大打开文件限制:
ulimit -n
显示默认1024
修改limits.conf
vim /etc/security/limits.conf
添加或修改:
* soft nofile 10000000
* hard nofile 10000000
2、Linux系统级别
查看Linux系统对同时打开文件数的硬限制:
sysctl -a | grep file-max
fs.file-max = xxxxxx
修改sysctl.conf
vim /etc/sysctl.conf
增加:
fs.file-max = 10000000
使sysctl配置立即生效:
sysctl -p
1.用户级别是通过修改配置文件来限制用户的最大文件
系统级别是修改这个文件,系统只允许这么多文件
2.硬限制是指系统允许的最大同时打开文件数
软限制是指由进程自己设置的同时打开文件数的最大值。当进程达到软限制时,系统会向进程发送警告信息,但仍然允许进程打开更多的文件直到达到系统的硬限制。
3.修改软限制需要重启,建议操作前快照备份
4、如果硬限制是10万,软限制是100万,以哪个为准?
以硬限制为准
No comments to display
No comments to display