2020年1月9日 星期四

Too many open files in system

查詢目前的環境參數
root@backup:~# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7727
max locked memory       (kbytes, -l) 16384
max memory size         (kbytes, -m) unlimited
open files                      (-n) 10240
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) 7727
virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited
可以看到目前允許的開啟檔案上限
暫時調整 open files (重開機會還原預設值)
sudo ulimit -n 2048

永久改變必須修改 sudo vim /etc/security/limits.conf
* soft nofile 10240

* hard nofile 10240

soft 是設定軟體資源限制 hard 是設定硬體資源限制 * 是代表所有使用者

存檔後需登出再重新登入才會生效!

上調系統預設限制
開啟檔案 /etc/sysctl.conf
加入以下一行:
fs.file-max = 2097152
儲存檔案後離開編輯器,下次開機設定會生效,或者執行以下指令讓設定立即生效:
sysctl -p