我们最近在 debian 9 上的生产 Wildfly 17 中遇到“打开的文件过多”错误。简单地重新启动 wildfly 服务即可消除该错误,但我想避免再次出现该问题。我想增加限制,但我不确定我应该更改什么以及如何知道已考虑的配置。
我检查了无登录 Wildfly 用户的 ulimit:
sudo su - wildfly -c 'ulimit -a' -s '/bin/bash'
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 117724
max locked memory (kbytes, -l) 64
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) 117724
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
用户的限制似乎设置为 1024。但是我可以通过我的 wildfly 进程检查打开文件的数量,我有这个:
sudo ls -l /proc/PID/fd |wc -l
1296
这大于限制,我现在没有收到任何错误。有没有办法永久设置更高的限制?也许在wildfly配置文件中?我有点失落。
您需要在
/etc/security/limits.conf
. 例如,用户的一条记录wildfly
和打开文件的数量可能如下所示:此设置为用户打开的文件数为 16384
PS您应该注销然后登录(以用户身份
wildfly
)以使其正常工作