Arreglando ulimit: abrir archivos: no se puede modificar el límite: Operación no permitida


13

Probé esto en diferentes instalaciones de GNU / Linux:

perl -e 'while(1){open($a{$b++}, "<" ,"/dev/null") or die $b;print " $b"}'

Sistema A y D

El primer límite que alcanzo es 1024. Se eleva fácilmente al poner esto en /etc/security/limits.conf:

*                hard    nofile          1048576

y luego ejecuta:

ulimit -n 1048576
echo 99999999 | sudo tee /proc/sys/fs/file-max

Ahora la prueba va a 1048576.

Sin embargo, parece que no puedo elevarlo por encima de 1048576. Si pongo 1048577 en limit.conf, simplemente se ignora.

¿Qué está causando eso?

Sistema B

En el sistema, BI ni siquiera puede llegar a 1048576:

echo 99999999 | sudo tee /proc/sys/fs/file-max

/etc/security/limits.conf:

*                hard    nofile          1048576

Aquí llego:

$ ulimit -n 65537
bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 65536
#OK

¿De dónde vino ese límite?

Sistema C

Este sistema también tiene el límite 1048576 en limits.conf y 99999999 en / proc / sys / fs / file-max.

Pero aquí el límite es 4096:

$ ulimit -n 4097
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 4096
# OK

¿Cómo elevo eso a (al menos) 1048576?

(Nota a la libre: no hago: echo 18446744073709551616 | sudo tee /proc/sys/fs/file-max)


1
Tengo exactamente el mismo problema, el límite parece ser 1048576. Si me paso, aparece el siguiente error: bash: ulimit: abrir archivos: no se puede modificar el límite: Operación no permitida
Abbadon

Hola, estoy teniendo un problema muy similar. Creo que sería muy útil proporcionar más detalles sobre estos diferentes sistemas.
Time4Tea

Respuestas:


4

Compruebe que /etc/ssh/sshd_configcontiene:

UsePAM=yes

y que /etc/pam.d/sshdcontiene:

session    required   pam_limits.so

Todavía no hay respuesta a por qué 1048576 es máx.

El 1048576 parece ser por proceso. Entonces, al tener múltiples procesos, este límite puede ser superado.


44
Si esta fuera realmente la solución a su propio problema, creo que sería bueno establecer una mayor conexión entre el problema y la solución anterior.
Jeff Schaller

2
Re: 1048576 (= 2 ^ 10 * 2 ^ 10 = 1024 ^ 2, para referencia). Puede haber información relevante en esta respuesta aquí: stackoverflow.com/a/1213069/2320823
saladi

1
¿Qué tiene que ver ssh con eso?
Linas

Estoy de acuerdo con @Linas. Lo siento, creo que el vínculo entre la respuesta y la pregunta no está claro.
Time4Tea
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.