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

Cuando gestionamos múltiples procesos en ambientes Linux es ideal conocer cómo podemos definir el número máximo de archivos abiertos con el fin de llevar un control mucho más preciso o evitar el uso indebido de los recursos del servidor. Por ello es adecuado que siempre tengamos en cuenta las posibilidades que nos ofrece nuestro sistema de forma que podamos gestionarlo más eficientemente.

El límite de archivos abiertos en distros Linux se puede ajustar gracias al comando ulimit y es por ello que hoy este tutorial analizará en esta oportunidad cómo establecer el número de archivos abiertos en Linux enfocándonos en aumentar el limite por defecto.

A continuación vamos a ver cómo podemos ampliar el límite establecido de archivos que pueden abrirse en sistemas Ubuntu de Linux.

 

Nota: En los comandos cambiar el guión(-) largo por el corto.

 

1. Conocer el límite de archivos actual en Ubuntu de Linux

El primer paso que debemos realizar es conocer exactamente que limite de archivos podemos abrir en Linux, en este caso estamos usando Ubuntu Server, y para conocer este valor ejecutaremos el siguiente comando:

  • cat /proc/sys/fs/file-max
El resultado desplegado indica el número de archivos que un usuario puede abrir por inicio de sesión y este será variable en cada distro de Linux.

Ejemplos:

  • En un Debian de escritorio con SATA: 789259 (dafult)
  • En un Ubuntu Server con disco duro SATA: 793688 (default) (1536000 personalizado)
  • En un servidor web con disco duro SAS: 3281246 (personalizado)

 

 

2. Conocer los límites de hardware y software en Ubuntu de Linux

Otro aspecto importante a tener en cuenta es conocer los límites del sistema tanto a nivel de hardware como de software y esto lo logramos ejecutando los siguientes comandos:

  • ulimit –Hn
  • ulimit –Sn
Ejemplos de configuraciones por defecto en Ubuntu Server:
~$ ulimit -Hn
1048576
~$ ulimit -Sn
1024

 

 

3. Comprobar los límites por defecto en Linux para los descriptores de archivos

Cuando ejecutamos determinadas aplicaciones en los servidores, es necesario que estos posean un número mayor de límite de archivos ya que de manera constante están registrando eventos o procesos que conllevan un amplio número de archivos, podemos mencionar aplicaciones como PHP, MySQL, MariaDB, entre otras.

En estos casos podremos aumentar el limite editando el archivo fs.file-max a través de la utilidad sysctl.
Recordemos que gracias a sysctl podremos configurar los parámetros de kernel en Linux.

Paso 1 (temporal)

Para representar esto, aumentaremos el límite de archivos abiertos a 1,536,000 (ejemplo) para ello ejecutaremos la siguiente línea como usuario root:

  • sudo sysctl –w fs.filemax=1536000
Paso 2

Para comprobar que el nuevo límite ha sido establecido de forma correcta ejecutaremos la siguiente línea:

  • cat /proc/sys/fs/filemax
Paso 3 (permanente)

Como vemos el limite ha sido el establecido por nosotros.
Un aspecto a tener en cuenta es que realizando este proceso el límite establecido solo estará disponible hasta el siguiente inicio de sesión, de modo que si queremos que este límite sea constante debemos acceder al siguiente archivo usando el editor preferido:

  • sudo nano /etc/sysctl.conf
Paso 4

En el archivo abierto agregaremos la siguiente línea al final:

  • fs.filemax=1536000
5-limites-por-defecto-en-Linux-abrir-archivos.png
Paso 5

Guardamos los cambios usando las teclas:

Ctrl + O

y salimos del editor usando las teclas

Ctrl + X

Paso 6

Podremos comprobar de nuevo el límite de archivos ejecutando la siguiente línea:

  • cat /proc/sys/fs/filemax
Paso 7

Sera necesario cerrar la sesión para aplicar los cambios, y si deseamos que se efectúen de forma inmediata ejecutaremos el siguiente comando:

  • sysctl –p

 

 

 

4. Establecer límites de archivos abiertos por usuario en Ubuntu de Linux

Paso 1

Es posible que deseemos establecer determinados límites de archivos abiertos para un usuario en particular en un dominio, para esto debemos acceder al siguiente archivo de configuración:

  • sudo nano /etc/security/limits.conf
Paso 2

En la parte final de este veremos la siguiente sintaxis:

  • <domain> <type> <item> <value>
Paso 3

Allí debemos agregar el nombre de usuario, el tipo de elemento y el limite a asignar. Guardamos los cambios y salimos del editor.

6-límites-de-archivos-abiertos-por-usuario.png

 

Ejemplo para un servidor web:

www-data soft nofile 16384
www-data hard nofile 20480
mysql soft nofile 16384
mysql hard nofile 20480
root soft nofile 16384
root hard nofile 20480

 

De esta forma tenemos la oportunidad de establecer o aumentar los límites a los usuarios para los archivos abiertos en diversas distros de Linux y sobre todo en Ubuntu Server.

 

 

Referencia: https://www.solvetic.com/tutoriales/article/3847-como-aumentar-numero-limite-archivos-abiertos-linux/

También te podría gustar...

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *