Creemos que hemos aumentado el número máximo de descriptores de archivos abiertos para el usuario root. Esto se hizo agregando esta línea a /etc/security/limits.conf:
* - nofile 2048
Creemos que hemos confirmado que el límite del usuario root se incrementó porque podemos decir (no se describe aquí) que nuestra aplicación (solr, que es ejecutada por root) tiene 1098 archivos abiertos. Sin embargo, no podemos decir con certeza cuántos archivos abiertos tiene permitido el usuario root. Esperaríamos que este comando funcione, pero no parece ser:
$ sudo -u root -s "ulimit -Sn"
1024
¿Algunas ideas? ¡Gracias!
Respuestas:
Obtenga el PID del proceso que se
solr
está ejecutando y luegocat /proc/$SOLR_PID/limits
, esto le indicará los límites reales del proceso.Recomiendo ejecutar cosas
solr
como un usuario separado sin privilegios. Al hacer esto, tiene múltiples opciones ( limits.conf o agregar unulimit -n 2048
a la secuencia de comandos de inicio, ...). El último no es tan brillante, pero funciona para configuraciones rápidas y reiniciar el demonioRANT: no me digas que no puedes reiniciar porque perderás el servicio. Si ese es el caso, debería tener una configuración de alta disponibilidad de todos modos :)
fuente
Después de cambiar el número de archivos abiertos
/etc/security/limits.conf
, el usuario debe cerrar sesión y volver a iniciarla para que surta efecto. Entonces, prueba esto:fuente
Sé que esta pregunta tiene una respuesta, pero parece más una solución, no una solución real.
Según ubuntu, esto no es un error, sino un problema de documentación, consulte: https://bugs.launchpad.net/ubuntu/+source/pam/+bug/65244
Gracias por tu informe. Como dijiste, esto no es un error en pam sino un problema de documentación. El hecho de permitir explícitamente los límites para la raíz del usuario se ha abordado hace un tiempo (30 de agosto de 2000), pero debe nombrar explícitamente la raíz del usuario para aplicar los límites.
Entonces, si desea cambiar el ulimit en todos los usuarios, incluido el usuario raíz, debe especificar:
fuente