Table of Contents
Cómo aumentar el límite de archivos abiertos en Linux
En Linux, puede cambiar la cantidad máxima de archivos abiertos. Puede modificar este número mediante el comando ulimit. Le otorga la capacidad de controlar los recursos disponibles para el shell o 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, necesitará tener acceso de root a su sistema.
Primero, veamos cómo podemos encontrar el número máximo de descriptores de archivos abiertos en su sistema Linux.
Buscar 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 haber abierto por sesión de inicio de sesión. El resultado puede ser diferente según su sistema.
freestar.config.enabled_slots.push
Por ejemplo, en un CentOS servidor mío, el límite se estableció en 818354. mientras que en el servidor Ubuntu. que ejecuto en casa, el límite predeterminado se estableció en 176772. .
Si desea ver los límites rígidos y blandos, puede utilizar 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 que lo limita desea comprobar.
Por ejemplo:
# su marin $ ulimit-Sn 1024. $ ulimit-Hn 4096.
Cómo Compruebe los límites de los descriptores de archivos de todo el sistema en Linux
Si está ejecutando un servidor, algunas de sus aplicaciones ns pueden requerir límites más altos para los descriptores de archivos abiertos. Un buen ejemplo de ello son los servicios MySQL/MariaDB. o el servidor web Apache.
Puede aumentar el límite de archivos abiertos en Linux editando el kernel directiva fs.file-max. Para ese propósito, puede usar la utilidad sysctl.
Sysctl. se usa para configurar los parámetros del kernel en tiempo de ejecución.
Para 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 verificar el valor actual para archivos abiertos con el siguiente comando:
$ cat/proc/sys/fs/file-max
Con el comando anterior, los cambios que ha 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 la sesión e iniciar sesión nuevamente para que los cambios surtan efecto. Si desea aplicar el límite de inmediato, puede usar el siguiente comando:
# sysctl-p
Establecer límites de archivos abiertos de nivel de usuario en Linux
Los ejemplos anteriores muestran cómo configurar límites globales, pero es posible que desee aplicar límites por usuario. Para ese propósito, como usuario root, necesitará editar el siguiente archivo:
# vi/etc/security/limits.conf
Si es un administrador de Linux, le sugiero que se familiarice con ese archivo y lo que puede hacer con él. Lea todos los comentarios en él, ya que proporciona una gran flexibilidad en términos de administrar los recursos del sistema al limitar usuarios/grupos en diferentes niveles.
Las líneas que debe agregar toman los siguientes parámetros:
A continuación se muestra un ejemplo de cómo establecer límites suaves y estrictos para el usuario marin.
## Ejemplo de límite estricto para el máximo de archivos abiertos marin hard nofile 4096. ## Ejemplo de límite flexible para el máximo de archivos abiertos marin soft nofile 1024.
Reflexiones finales
Este breve artículo le mostró un ejemplo básico de cómo puede verificar y configurar los límites de nivel global y de usuario para el número máximo de archivos abiertos.
Aunque acabamos de tocar la superficie, le recomiendo encarecidamente que consulte y lea más detalladamente sobre /etc/sysctl.conf. y /etc/security/limits.conf. y aprenda a utilizarlos. Serán de gran ayuda para ti algún día.