Wildfly:打开的文件太多

Wildfly:打开的文件太多

我们最近在 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 配置文件中?我有点迷茫了。

答案1

您需要编辑/添加记录/etc/security/limits.conf。例如,用户wildfly和打开文件数的一条记录可能如下所示:

wildfly  soft    nofile          16384
wildfly  hard    nofile          16384

设置用户打开文件数为 16384

PS 您应该注销然后登录(以用户身份wildfly)才能使这项工作正常进行

答案2

cat /proc/ 'pid' /limits | grep files 将显示 wildfly 进程特定的最大打开文件的值。

lsof -a -p 'pid' | wc -l 将显示特定 pid 的当前打开文件数

相关内容