Parece que no puedo descifrar qué se necesita exactamente para permitir que la cantidad máxima de descriptores de archivo se genere de forma permanente para todos los usuarios.
/etc/security/limits.conf
:
root hard nofile 1500000
root soft nofile 1000000
root hard nproc 15000
root soft nproc 10000
* hard nofile 1500000
* soft nofile 1000000
* hard nproc 15000
* soft nproc 10000
He colocado lo siguiente en /etc/pam.d/common-session
:
session required pam_limits.so
Después de reiniciar, inicie sesión como cualquier usuario y emita ulimit -n
resultó en 1024
.
Después de eso, intenté solicitar pam_limits.so
en cada archivo bajo /etc/pam.d
. Reiniciado. Iniciado sesión. No hubo suerte.
Si emito el comando ulimit -n 1000000
, luego verifique, el límite se establece como se esperaba. Entonces, coloqué @reboot ulimit -n 1000000
en crontab -e
. Reiniciado. Iniciado sesión. Sin suerte.
Revisé /etc/ssh/sshd_config
y PAM está habilitado.
He intentado establecer los límites en cada reinicio con:
/sbin/sysctl -w fs.file-max=1000000
/sbin/sysctl -p
Sin suerte.
Tengo un servidor que tiene una tonelada de tráfico concurrente y necesito esos límites tan altos, porque el servidor tarda mucho en borrar los descriptores de archivos. ¿Qué tengo que hacer para aumentar permanentemente el límite de descriptores de archivo?
Respuesta aceptada:
Aumenté el número de límites de archivos para todos de esta manera (segmento de /etc/security/limits.conf
):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open files (Doug: - so Samba will not complain)
* - nofile 16384
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
Eso fue en un servidor 12.04. Sin embargo, probé 100000 en mi servidor 14.04 y funcionó bien. (Editar:también verificado el 20.04)
~/config/security$ ulimit -n
16384
EDITAR:para la mayoría de las aplicaciones es suficiente, pero no cambia el valor predeterminado para root:
# ulimit -n
1024
Si el número también necesita ser cambiado para root, entonces (2020.09.04 – ahora uso 131,072):
# - memlock - max locked-in-memory address space (KB)
# - nofile - max number of open file descriptors
* - nofile 131072
root - nofile 131072
# - rss - max resident set size (KB)
# - stack - max stack size (KB)
Y así:
$ sudo su
# ulimit -n
131072