Recientemente recibimos un error de "demasiados archivos abiertos" en nuestra producción Wildfly 17 en debian 9. Un simple reinicio del servicio wildfly eliminó el error, pero me gustaría evitar que el problema regrese. Me gustaría aumentar el límite, pero no estoy seguro de qué debo cambiar y cómo puedo saber si la configuración se ha tenido en cuenta.

Revisé el ulimit para el usuario wildfly sin inicio de sesión:

    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

El límite parece estar establecido en 1024 para el usuario. Sin embargo, puedo verificar la cantidad de archivos abiertos por mis procesos wildfly y tengo esto:

sudo ls -l /proc/PID/fd |wc -l
1296

Que es más grande que el límite y no recibo ningún error en este momento. ¿Hay alguna manera de establecer el límite más alto de forma permanente? ¿Quizás en los archivos de configuración de wildfly? Estoy un poco perdido.

answer

Debe editar/agregar registros en formato /etc/security/limits.conf. Por ejemplo, un registro para el usuario wildflyy la cantidad de archivos abiertos puede verse así:

wildfly  soft    nofile          16384
wildfly  hard    nofile          16384

Este número establecido de archivos abiertos para el usuario es 16384

PD: debe cerrar sesión y luego iniciar sesión (como usuario wildfly) para que esto funcione