GNU/Linux >> Tutoriales Linux >  >> Linux

No se puede aumentar el límite de archivos abiertos más allá de 4096 (Ubuntu)

OK, finalmente me di cuenta de esto. Los límites que estaba estableciendo en /etc/security/limits.conf se estaban aplicando, pero no se estaban aplicando al inicio de sesión gráfico. Esto se puede verificar así desde una ventana de terminal:

$ ulimit -n
4096
$ su mkasberg
Password:
$ ulimit -n
65535

Más investigación me llevó a este informe de error, que me indicó la dirección correcta. Para modificar el límite que utiliza el shell de inicio de sesión, debemos agregar la siguiente línea a /etc/systemd/user.conf :

DefaultLimitNOFILE=65535

Ese cambio funciona, pero solo afecta el límite suave. (Dejándonos con un límite máximo de 4096 aún). Para afectar también el límite estricto, debemos modificar /etc/systemd/system.conf con el mismo cambio.

Los cambios que hice en /etc/pam.d no eran necesarios. Al menos en Ubuntu, esto ya está funcionando. Además, no fue necesario cambiar la configuración de root y * en limites.conf. Cambio de límites para mkasberg fue suficiente, al menos para mi caso de uso.

En Resumen

Si desea aumentar el límite mostrado por ulimit -n , deberías:

  • Modificar /etc/systemd/user.conf y /etc/systemd/system.conf con la siguiente línea (esto se ocupa del inicio de sesión gráfico):

    DefaultLimitNOFILE=65535
    
  • Modificar /etc/security/limits.conf con las siguientes líneas (esto se ocupa del inicio de sesión sin GUI):

    mkasberg hard nofile 65535
    mkasberg soft nofile 65535
    
  • Reinicie su computadora para que los cambios surtan efecto.


No es necesario cambiar nada en el /etc/security/limits.conf archivo, se ignora si está utilizando systemd.

(reproduciendo una respuesta modificada a otra pregunta en la red...)

Una alternativa para aquellos que prefieren no editar el /etc/systemd/system.conf predeterminado y /etc/systemd/user/conf archivos:

  1. crear un nuevo archivo /etc/systemd/system.conf.d/limits.conf con estos contenidos:

    [Manager]
    DefaultLimitNOFILE=65535
    
  2. ejecutar systemctl daemon-reexec como root

  3. cerrar sesión y volver a iniciar sesión

  4. comprueba tu nuevo límite con ulimit -n .

Consulte el systemd-system.conf página de manual para más detalles.


TL;DRI sintió la necesidad de concentrar las respuestas, para que sean más fáciles de encontrar. Me tomó años juntar todas las piezas para que funcionara correctamente...

Hay 2 ubicaciones a considerar.

  1. sesión GUI

    $ grep DefaultLimitNOFILE /etc/systemd/system.conf
    DefaultLimitNOFILE=65535
    

    o mejor aquí:

    $ grep NOFILE /etc/systemd/system.conf.d/limits.conf
    DefaultLimitNOFILE=65535
    
  2. entorno de shell

    $ grep nofile /etc/security/limits.conf
    user soft nofile 65535
    user hard nofile 65535`
    

    o mejor aquí:

    $ grep nofile /etc/security/limits.d/user.conf
    user soft nofile 65535
    user hard nofile 65535
    
  3. Después de modificar la configuración en los archivos anteriores, reiniciar y luego verifique los límites con:ulimit -n -Hn -Sn


Linux
  1. Ubuntu – ¿Cómo abrir un archivo .bak en Linux?

  2. Cómo aumentar el tamaño de intercambio en Ubuntu Linux

  3. ¿Cómo aumentar el límite de archivos abiertos en Ubuntu?

  4. libaio.so.1:no se puede abrir el archivo de objeto compartido

  5. Programación de prólogo en Ubuntu

Cómo abrir archivos ISO en Ubuntu Linux

Cómo aumentar el número de límites de archivos abiertos en Linux

Cómo descomprimir (abrir) un archivo Gz

Cómo cambiar el límite de archivos abiertos en Linux

Cómo abrir el administrador de archivos de Ubuntu como usuario root

nginx uLimit 'worker_connections superan el límite de recursos de archivo abierto:1024'