En Linux, puede cambiar la cantidad máxima de archivos abiertos. Puede modificar este número utilizando el ulimit dominio. Le otorga la capacidad de controlar los recursos disponibles para el shell o el proceso iniciado por él.
Lea también: Establecer límites de procesos en ejecución de Linux en el nivel por usuario
En este breve tutorial, le mostraremos cómo verificar su límite actual de archivos abiertos y descripciones de archivos, pero para hacerlo, deberá tener acceso de root a su sistema.
Primero, veamos cómo podemos averiguar el número máximo de descriptores de archivos abiertos en su sistema Linux.
Buscar el límite de archivos abiertos de Linux
El valor se almacena en:
# cat /proc/sys/fs/file-max 818354
El número que verá muestra la cantidad de archivos que un usuario puede tener abiertos por sesión de inicio de sesión. El resultado puede ser diferente dependiendo de su sistema.
Por ejemplo, en un CentOS servidor mío, el límite se estableció en 818354 , mientras está en Ubuntu servidor que ejecuto en casa, el límite predeterminado se estableció en 176772 .
Si desea ver los límites estrictos y flexibles, puede usar los siguientes comandos:
Comprobar límite estricto en Linux
# ulimit -Hn 4096
Comprobar límites flexibles en Linux
# ulimit -Sn 1024
Para ver los valores duros y blandos para diferentes usuarios, simplemente puede cambiar de usuario con “su” al usuario qué límites desea comprobar.
Por ejemplo:
# su marin $ ulimit -Sn 1024
$ ulimit -Hn 4096
Cómo comprobar los límites de los descriptores de archivo de todo el sistema en Linux
Si está ejecutando un servidor, algunas de sus aplicaciones pueden requerir límites más altos para los descriptores de archivos abiertos. Un buen ejemplo de esto es MySQL/MariaDB servicios o Apache servidor web.
Puede aumentar el límite de archivos abiertos en Linux editando la directiva del kernel fs.file-max
. Para ello, puede utilizar el sysctl utilidad.
Sistema se utiliza para configurar los parámetros del kernel en tiempo de ejecución.
Por ejemplo, para aumentar el límite de archivos abiertos a 500000 , puede usar el siguiente comando como root:
# sysctl -w fs.file-max=500000
Puede comprobar el valor actual de los archivos abiertos con el siguiente comando:
$ cat /proc/sys/fs/file-max
Con el comando anterior, los cambios que haya realizado solo permanecerán activos hasta el próximo reinicio. Si desea aplicarlos de forma permanente, deberá editar el siguiente archivo:
# vi /etc/sysctl.conf
Agregue la siguiente línea:
fs.file-max=500000
Por supuesto, puede cambiar el número según sus necesidades. Para verificar los cambios nuevamente use:
# cat /proc/sys/fs/file-max
Los usuarios deberán cerrar sesión y volver a iniciar sesión para que los cambios surtan efecto. Si desea aplicar el límite de inmediato, puede utilizar el siguiente comando:
# sysctl -p
Establecer límites de archivos abiertos a nivel de usuario en Linux
Los ejemplos anteriores mostraron cómo establecer límites globales, pero es posible que desee aplicar límites por usuario. Para ello, como usuario root, deberá editar el siguiente archivo:
# vi /etc/security/limits.conf
Si eres un administrador de Linux, te sugiero que te familiarices con ese archivo y lo que puedes hacer con él. Lea todos los comentarios que contiene, ya que brinda una gran flexibilidad en términos de administración de recursos del sistema al limitar usuarios/grupos en diferentes niveles.
Las líneas que debes agregar toman los siguientes parámetros:
<domain> <type> <item> <value>
Este es un ejemplo de cómo establecer límites flexibles y estrictos para el usuario marin :
## Example hard limit for max opened files marin hard nofile 4096 ## Example soft limit for max opened files marin soft nofile 1024
Reflexiones finales
Este breve artículo le mostró un ejemplo básico de cómo puede verificar y configurar límites globales y de nivel de usuario para la cantidad máxima de archivos abiertos.
Si bien solo rascamos la superficie, le recomiendo encarecidamente que eche un vistazo más detallado y lea sobre /etc/sysctl.conf y /etc/security/limits.conf y aprende a usarlos. Serán de gran ayuda para ti algún día.