Nginx
我應該設置多少值來解決 Nginx 上打開文件過多的錯誤?
我在 Nginx 伺服器(v 1.21.6)上執行 wordpress 網站。
最近我看到如下錯誤。
2022/03/07 19:43:41 [crit] 563445#563445: accept4() failed (24: Too many open files) 2022/03/07 19:43:42 [crit] 563445#563445: accept4() failed (24: Too many open files)
我重新啟動 Nginx,網站訪問正常。
然後,我用Google搜尋來解決這個問題,很多教程和價值觀都讓我感到困惑。
我的系統資訊
ulimit -Hn 1048576 ulimit -Sn 1024 core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7581 max locked memory (kbytes, -l) 65536 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7581 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited
然後我將以下值添加到 /etc/sysctl.conf。
fs.file-max = 70000
這解決了我所有的問題嗎?
如果不是這種情況,我很想听聽一些關於是否應該添加其他設置的建議。
謝謝你。
我將以下值添加到 /etc/sysctl.conf。
fs.file-max = 70000
該
sysctl
命令用於在執行時修改核心參數。它可以將單個參數作為參數,即sysctl fs.file-max
讀取參數的目前值或例如sysctl fs.file-max=98036
設置該值,或sysctl -p /path/to/file
從文件中讀取參數。該文件
/etc/sysctl.conf
(和其他一些文件)是核心參數的預設預載入/配置文件。簡單地更改該文件不會影響任何更改。
您將需要重新啟動或執行
[sudo] sysctl --system
以在此處應用更改的設置。該
ulimit
命令獲取/設置核心對特定使用者或程序實施的資源限制。儘管您可以設置*“無限制”*
ulimit
或更現實的資源限制,但仍然具有超過相關核心參數的值,這樣做不會發生這種情況。系統資源有限,當有這樣的核心參數時,這將是可用的上限。