Ratio:  / 0
MaloBueno 

En Linux, puede cambiar la cantidad máxima de archivos abiertos. Puede modificar este número usando el comando ulimit . Le otorga la capacidad de controlar los recursos disponibles para el shell o el proceso iniciado por él.

En este breve tutorial, le mostraremos cómo verificar su límite actual de archivos abiertos y las descripciones de los archivos, pero para hacerlo, deberá tener acceso de raíz a su sistema.

Primero, veamos cómo podemos averiguar el número máximo de descriptores de archivos abiertos en su sistema Linux.

Encuentra Linux Open File Limit

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 dependiendo de su sistema.

Por ejemplo, en un servidor CentOS 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 flexibles, puede usar los siguientes comandos:

Compruebe Hard Limit en Linux

# ulimit -Hn

4096

Compruebe límites suaves 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 límites desea verificar.

Por ejemplo:

# su marin
$ ulimit -Sn

1024
$ ulimit -Hn

4096

Cómo verificar los límites de los descriptores de archivos 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 ello son los servicios MySQL / MariaDB o el servidor web Apache .

Puede aumentar el límite de archivos abiertos en Linux editando la directiva de kernel fs.file-max . Para ese propósito, puedes usar la utilidad sysctl .

Sysctl 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 verificar el valor actual de los 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 permanentemente, deberá editar el siguiente archivo:

# vi /etc/sysctl.conf

Añade la siguiente línea:

fs.file-max=500000

Por supuesto, puedes cambiar el número según tus necesidades. Para verificar nuevamente los cambios use:

# cat /proc/sys/fs/file-max

Los usuarios deberán cerrar sesión e iniciar sesión nuevamente para que los cambios surtan efecto. Si desea aplicar el límite inmediatamente, puede usar el siguiente comando:

# sysctl -p

Establecer límites de archivos abiertos a nivel de usuario en Linux

Los ejemplos anteriores muestran cómo establecer 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 con lo que puede hacer. Lea todos los comentarios que contiene, ya que proporciona una gran flexibilidad en términos de gestión de recursos del sistema al limitar usuarios / grupos en diferentes niveles.

Las líneas que debes agregar toman los siguientes parámetros:

 <dominio>       <tipo> <item> <valor>

Aquí hay un ejemplo de cómo establecer límites suaves y difíciles para el usuario marin :

 ## Ejemplo de límite rígido para archivos máximos abiertos
marin        hard nofile 4096
## Ejemplo de límite flexible para archivos máximos abiertos
marin        soft nofile 1024

Conocimientos 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 el número máximo de archivos abiertos.

Si bien acabamos de arañar la superficie, le recomiendo que tenga una visión más detallada y lea sobre /etc/sysctl.conf y /etc/security/limits.conf y aprenda a usarlos. Ellos serán de gran ayuda para usted algún día.