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 個(透過)。

相關內容