¿Cómo establecer el valor ulimit permanentemente?

19

En Debian Wheezy, ulimit -ada:

open files                      (-n) 1024

Agrego esto a /etc/security/limits.conf

*                hard    nofile          64000

luego reiniciar.

Y ulimit -atodavía da un número máximo de archivos abiertos de 1024. ¿Alguien podría arrojar algo de luz sobre él?

Icu
fuente
¿Es esto posiblemente un host virtual?
Dennis Nolte
no, es un servidor mongodb
Icu

Respuestas:

15

Opción uno: no configuró el límite suave también más alto.

Solución posible:

en /etc/security/limits.conf add

* soft nofile 2048

prueba con

ulimit -n 2048 

Opción dos: ha iniciado sesión como usuario y en algún archivo "config" (perfil, bashrc, algo así) el límite flexible se establece en un valor inferior.

Posible solución fe grep para ulimit en su carpeta etc. y / o carpeta de inicio.

Advertencia: Dependiendo de la cantidad de archivos / directores que tenga allí, es posible que desee considerar solo directores / archivos específicos

PD: hay muchas preguntas similares aquí que tal vez quieras leer.

Límite especialmente duro vs suave

Lea aquí para ver otra posible solución que va más en detalle. Demasiados archivos abiertos

Dennis Nolte
fuente
En realidad, estaba tratando de establecer solo el límite rígido en 64000. Por lo tanto, el límite flexible todavía estaba en 1024. Ahora intenté establecer un límite flexible en 64000 + hard = 72000. Pero no funcionó. También probé "* - nofile 64000" y obtuve el mismo resultado.
Icu
Después de haber leído "Demasiados archivos abiertos", pensé que una configuración de kernel anularía la configuración de limit.conf pero: "fs.file-max = 4933738"
Icu
@Icu pruebe las respuestas de este también: serverfault.com/questions/93234/… podría estar relacionado con su shell
Dennis Nolte
Agregué 'session required pam_limits.so' a /etc/pam.d/other y common-session pero no ayuda ... Como alternativa, agregué un 'ulimit -n' a mi script de inicio y funciona pero me pregunto por qué no puedo obtener los valores correctos en mi shell.
Icu
20

Hay un error en Debian. Para aumentar ulimitnecesita agregar esto en el /etc/pam.d/common-sessionarchivo:

session required pam_limits.so

y en /etc/security/limits.confagregar:

*               soft    nofile          65535
*               hard    nofile          65535

Luego reinicie el sistema.

jpyzio
fuente
1
No es necesario que haga ningún cambio en el /etc/pam.d/common-sessionarchivo. funcionó simplemente agregando las otras dos líneas al limits.confarchivo :-)
Francesco Casula
No deberías necesitar reiniciar.
David Goodwin
Esto es brutal En debian 7 ahora, y esto no funciona. No estoy seguro de qué hacer :( - Podría abrir una nueva pregunta
NiCk Newman
12
Auge. *el comodín no funciona root. Agregué en rootlugar de *, y está funcionando. ¡Gracias!
NiCk Newman
@FrancescoCasula: ¿qué versión de Debian era esa? Solo trato de averiguar si esto realmente es un error, y si todavía existe ...
UpTheCreek
0

En mi caso de Apache en Debian 10, lo anterior no ayudó, aunque esto funcionó:

echo "APACHE_ULIMIT_MAX_FILES='ulimit -n 16384'" >> /etc/apache2/envvars
service apache2 restart

Verifiqué con:

cat /proc/$pid/limits

..donde $pidestá el ID de proceso de uno de los procesos de Apache.

Neil Stockbridge
fuente