NGINX 不断崩溃,似乎是因为打开了太多文件

NGINX 不断崩溃,似乎是因为打开了太多文件

正如标题所述,我的 Nginx 服务器似乎不断崩溃,尽管原因未知。

我的错误日志中确实有一些可能导致该问题的提示。

我尝试增加打开文件的限制,这有一定的影响,但没有太大的效果。

2015/09/29 17:18:01 [crit] 20560#0: accept4() failed (24: Too many open files)
2015/09/29 17:18:01 [crit] 20560#0: accept4() failed (24: Too many open files)

我尝试增加限制,但我在错误日志中也看到了这一点

2015/09/29 17:18:02 [alert] 20632#0: setrlimit(RLIMIT_NOFILE, 300000000) failed (1: Operation not permitted)
2015/09/29 17:18:02 [alert] 20633#0: setrlimit(RLIMIT_NOFILE, 300000000) failed (1: Operation not permitted)
2015/09/29 17:18:02 [alert] 20560#0: recvmsg() truncated data

我如何授予增加文件限制的权限?

此外,这甚至是我的服务器崩溃的原因吗?

谢谢你!

刚刚检查了更多数据,我已经编辑了我的文件,但是由于某种原因,在检查硬限制时它显示 4096?

root@nalsec:~# sysctl -p
net.ipv4.ip_forward = 1
net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.default.autoconf = 0
net.ipv6.conf.eth0.autoconf = 0
net.ipv6.conf.all.accept_ra = 0
net.ipv6.conf.default.accept_ra = 0
net.ipv6.conf.eth0.accept_ra = 0
fs.file-max = 2500000000000000000
root@nalsec:~# ulimit -Hn
4096

这与我的 fs.file-max 形成对比

我试过了,它说我没有权限(我是root)

root@nalsec:~# ulimit -Hn 1000000000
-bash: ulimit: open files: cannot modify limit: Operation not permitted

我已经编辑了这个文件但无济于事 nano /etc/security/limits.conf

#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#ftp             -       chroot          /ftp
#@student        -       maxlogins       4

# End of file
nginx       soft    nofile  10240000000000000000000
nginx       hard    nofile  10240000000000000000000
*         hard    nofile      10240000000000000000000000
*         soft    nofile      10240000000000000000000000
root      hard    nofile      10240000000000000000000000
root      soft    nofile      10240000000000000000000000
www-data soft nofile 1024000000000000000
www-data hard nofile 1024000000000000000

答案1

fs.file-max是系统范围内的限制全部的系统上可以打开的文件描述符的数量。它对每个进程的限制没有影响。

要增加单个进程的文件描述符限制,最简单的方法是通过以下方式limits.conf

# cat /etc/security/limits.d/nofile.conf
* soft nofile 10000
* hard nofile 1000000

setrlimit这样将默认为所有进程提供 10,000 个文件描述符,并且如果需要,可以请求升级到 1,000,000(通过)。

相关内容