LINUX

3 métodos para cambiar el límite de número de archivos abiertos en Linux

límite de archivos abiertos linuxEl sistema operativo asigna temporalmente un número llamado identificador de archivo a un archivo cuando se abre para acceder. Se reserva un área especial de la memoria principal para los identificadores de archivos, y el tamaño de esta área determina cuántos archivos se pueden abrir a la vez. Los procesos en Linux están restringidos por una serie de restricciones que también les impiden ejecutarse correctamente y cada proceso tiene varios límites asociados. El shell restringe el número de identificadores de archivos que los programas pueden abrir simultáneamente. En este artículo, le mostraré diferentes métodos que puede usar para cambiar el número de Límite de archivos abiertos en Linux.

Por qué limitar el número de archivos abiertos

Debido a que el sistema operativo necesita memoria para administrar cada archivo, puede enfrentar una limitación en la cantidad de archivos que se pueden abrir. Como un programa también puede cerrar controladores de archivos, podría crear muchos archivos tan grandes como desee, hasta que se llene todo el espacio disponible en el disco. En este caso, un aspecto de la seguridad es prevenir el agotamiento de los recursos imponiendo limitaciones.

Bajo Linux, hay dos tipos de límites:

  • suave límite es el valor que puede cambiar el proceso en cualquier momento.
  • difícil límite marca el valor máximo que no se puede exceder estableciendo un límite suave

Puede ver el número máximo de descriptores de archivos abiertos en su sistema Linux como se muestra a continuación:

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

El valor muestra la cantidad de archivos que un usuario puede haber abierto por sesión de inicio de sesión, pero debe notar que el resultado puede ser diferente según su sistema. Por algunas razones, es posible que deba aumentar el valor del conjunto de limitaciones. Es por eso que su sistema Linux ofrece la posibilidad (aumentando o disminuyendo) de modificar estas limitaciones cambiando el número máximo de archivos abiertos por proceso y por sistema.

1) comando ulimit

El comando ulimit se puede utilizar para aumentar la cantidad de archivos que se pueden abrir en un shell. Este comando es un comando integrado de bash, por lo que solo afecta a bash y a los programas iniciados desde él. La sintaxis de ulimit es la siguiente:

ulimit [options [limit]]

Las opciones definen lo que se limita. Puede ver algunas opciones como se muestra a continuación

  • -a (Aprobación de la configuración actual): hace que ulimit informe su configuración actual.
  • -f (Límites de archivos) limita el tamaño de los archivos que puede crear el shell
  • -n limita el número de descriptores de archivos abiertos.
  • -H y -S Las opciones (Límites duros y blandos) modifican otras opciones, haciendo que se establezcan como límites duros o blandos, respectivamente. Es posible que los límites estrictos no se incrementen posteriormente, pero sí los límites suaves. Si no se proporciona ninguna opción, ulimit establece los límites rígidos y flexibles para la función especificada.

Entonces, para ver la limitación actual, puede hacer lo siguiente:

$ ulimit -a | grep open
open files (-n) 1024

Puede verificar el límite estricto de la siguiente manera:

$ ulimit -Hn
4096

y el límite suave de la siguiente manera:

$ ulimit -Sn
1024

Puede editar el límite de la siguiente manera

$ ulimit -n 3000

y puedes comprobar a continuación:

$ ulimit -n 
3000

El problema ahora es que si cierra la sesión e inicia sesión o reinicia su computadora, el valor se restablecerá. Recuerde que hacer estos límites más permanentes requiere editar uno de los archivos de configuración del usuario (.bashrc o .profile) o los archivos de configuración de todo el sistema (/etc/bashrc o /etc/profile) agregando la línea de comando ulimit al final del archivo como se muestra a continuación

# vim .bash_profile
ulimit -n 3000

Ahora, incluso si reinicia, el límite establecido por el usuario será permanente. Puede optar por aumentar solo el límite estricto (-Hn) o el límite suave (-Sn) pero debe tener en cuenta que cualquier usuario puede establecer límites suaves, mientras que los límites estrictos solo los puede cambiar el root una vez establecido.

2) Módulo de módulos de autenticación conectables (PAM)

La imposición de tales límites se realiza mejor a través de un módulo de módulos de autenticación conectables (PAM) llamado pam_limits. La mayoría de las principales distribuciones de Linux utilizan este módulo como parte de su configuración estándar de PAM, por lo que ya está presente en algunos sistemas Linux, pero deberá configurarlo editando el /etc/security/limits.conf expediente. Este archivo contiene consta de cuatro campos esenciales:

  • dominio: describe la entidad a la que se aplica el límite. Puede ser un nombre de usuario, un nombre de grupo (con la forma @groupname) o un asterisco
  • comodín que coincide con todos. Sin embargo, debe tener en cuenta que el comodín no se aplica al usuario root escribe: esta
  • campo especifica el límite como duro o blando. El administrador del sistema impone un límite estricto y no se puede exceder bajo ninguna circunstancia, mientras que un usuario puede exceder temporalmente un límite flexible. También puede utilizar un guión (-) para indicar que un límite es tanto estricto como suave. Tenga en cuenta que un límite blando puede aumentarse hasta el valor del límite estricto Articulo: especifica qué tipo de artículo se limita. Esto podría ser ningún archivo (el número de archivos de datos abiertos), fsize (el tamaño de los archivos creados por el usuario), centro
  • (el tamaño de los archivos principales), etc. valor:

especifica el valor que se aplicará al límite

# tail -f -n 12 /etc/security/limits.conf 
#<domain>       <type>   <item>         <value>       
#

#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4

# End of file

Puede ver, por ejemplo, el contenido de este archivo como se muestra a continuación:

# vim /etc/security/limits.conf
*       hard    nofile  20000
*       soft    nofile  15000

Para editar el número máximo de archivos abiertos para todos los usuarios, puede agregar, por ejemplo, agregar al final del archivo las siguientes líneas: /etc/pam.d/login

# vim /etc/pam.d/login
session required pam_limits.so

Después de esto, debe editar el archivo.

$ ulimit -Hn
20000

Luego guarde el archivo. Puede comprobar el resultado de la siguiente manera:

3) Límite de todo el sistema En el sistema Linux tenemos file-max /etc/sysctl.conf que es el máximo de descriptores de archivo (FD) y la configuración predeterminada para ulimit y file-max asume que varios usuarios compartirían el sistema. Es por eso que estas configuraciones limitan la cantidad de recursos utilizados por cada usuario. Puede aumentar el límite de archivos abiertos en Linux editando el fs.file-max

o editando la directiva

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

Puede ver el valor actual de los archivos abiertos con el comando

# sysctl -w fs.file-max=250000
fs.file-max = 250000

Y puede editar el valor predeterminado de la siguiente manera:

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

Puede comprobar el resultado de la siguiente manera /etc/sysctl.conf Al usar el comando sysctl, las modificaciones se aplican hasta el próximo reinicio. Para que la configuración sea persistente, puede editar directamente el

# vim /etc/sysctl.conf
fs.file-max=250000

archivo de la siguiente manera: /proc/sys/fs/file-max Si enumera el contenido de

# sysctl -p
fs.file-max = 250000

, verá que el cambio no se hizo efectivo directamente. Ahora necesita aplicar directamente los cambios con la opción -p del comando sysctl como se muestra a continuación:

Ahora la configuración es permanente

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar