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
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
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.
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.file–max=1536000
Para comprobar que el nuevo límite ha sido establecido de forma correcta ejecutaremos la siguiente línea:
- cat /proc/sys/fs/file–max
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
En el archivo abierto agregaremos la siguiente línea al final:
- fs.file–max=1536000
Guardamos los cambios usando las teclas:
Ctrl + O
y salimos del editor usando las teclas
Ctrl + X
Podremos comprobar de nuevo el límite de archivos ejecutando la siguiente línea:
- cat /proc/sys/fs/file–max
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
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
En la parte final de este veremos la siguiente sintaxis:
- <domain> <type> <item> <value>
Allí debemos agregar el nombre de usuario, el tipo de elemento y el limite a asignar. Guardamos los cambios y salimos del editor.
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/