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.
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 17.04 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.
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
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 600.000 para ello ejecutaremos la siguiente línea como usuario root:
sudo sysctl -w fs.file-max=600000
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=600000
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.
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 17.04.