Si es un usuario activo de Linux, que tiene que trabajar con muchos archivos en Linux a la vez, es posible que definitivamente se haya enfrentado a un problema relacionado con «Demasiados archivos abiertos» en un sistema Linux. Cuando haya alcanzado el límite máximo de archivos abiertos, recibirá un mensaje de error que muestra el error «Demasiados archivos abiertos (24)» en su pantalla.
¿Por qué nos enfrentamos a tal cosa? Bueno, el sistema operativo Linux establece un límite de «archivos abiertos» que un usuario puede abrir a la vez, el sistema operativo Linux usa esta forma para impedir que el usuario abra demasiados archivos a la vez.
Pero, afortunadamente, podemos modificar la cantidad de límites de archivos abiertos en Linux según nuestro deseo utilizando algunos métodos diferentes que discutiremos hoy en este artículo.
Tipos de archivo abierto Límite
¿Por qué Linux limita la cantidad de archivos abiertos? La razón se debe primero a un propósito de seguridad para que ningún software cree archivos sin cesar hasta que el servidor Linux se bloquee y también que el sistema operativo Linux necesita memoria para administrar cada archivo abierto y la memoria es un poco limitada, especialmente en los sistemas integrados, por lo que hay alguna limitación para un número de archivos abiertos en un sistema por un usuario.
Existen 2 tipos de Límite de archivos abiertos, son los siguientes:
- Valores duros de descriptores de archivos.
- Valores flexibles de descriptores de archivo.
Valores estrictos de descriptores de archivos: los límites de valores estrictos son aquellos límites de archivos que solo puede modificar el usuario raíz. Los usuarios no root no pueden cambiar el valor de un límite estricto.
Podemos verificar el límite de valor duro usando el siguiente comando: –
$ ulimit -Hn
Valores flexibles de los descriptores de archivo: Los límites de un valor flexible son aquellos límites que muestran el valor efectivo actual para el usuario que puede ser modificado por un proceso de usuario en cualquier momento. Los volcados del núcleo se pueden deshabilitar mediante valores flexibles.
Podemos verificar el límite de valor suave usando el siguiente comando: –
$ ulimit -Sn
Métodos para cambiar el número de límite de archivos abiertos en Linux
1 comando ulimit :
ulimit es un comando de shell incorporado de bash (por lo que es posible que no obtenga el resultado deseado en otros tipos de shell) que se puede usar para aumentar la cantidad de límites de descriptores de archivos abiertos para cada proceso en el shell de Linux.
Sintaxis: ulimit [opciones [límite]]
a.) -a (Configuración actual que pasa): – argumento que hace que ulimit muestre su configuración actual
Para mostrar la limitación actual, use el siguiente comando:
ulimit -a | grep open
b.) -f (Límites de archivos): el argumento limita el tamaño de los archivos que puede crear el shell.
c.) -H y -S (límites duros y suaves) ya se discutió anteriormente
Ahora, para editar el límite, use el siguiente comando: –
ulimit -n 3000
Pero este valor se restablecerá si reinicia su computadora o cierra la sesión del usuario.
Para cambiar el valor de forma permanente, tenemos que 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 el siguiente comando al final del expediente:-
# vim .bash_perfil
ulímite -n 3000
Ahora los cambios son permanentes, incluso si reinicia su computadora, no cambiará.
2) Módulo de módulos de autenticación enchufables (PAM)
Otra mejor manera de modificar el límite de archivos abiertos se realiza a través de este módulo PAM llamado pam_limits. Tenemos que configurarlo editando el archivo /etc/security/limits.conf.
Hay 4 campos esenciales presentes en este archivo de configuración. Están:-
- dominio : el dominio describe una unidad específica a la que se aplica el límite que puede ser un nombre de usuario, un nombre de grupo (con la sintaxis de la forma @groupname) o un comodín de asterisco (*) (los límites de comodines no se aplican a la raíz).
- type : Type especifica si el límite es rígido o blando.
- item : especifica el tipo de ítem que se está limitando. Esto podría ser core (limita el tamaño de los archivos core), fsize (tamaño máximo de archivo), data (tamaño máximo de datos), tamaño, etc.
- value : valores que se aplicarán al límite.
Ahora puede editar este archivo de configuración para cambiar el límite de archivos abiertos para todos los usuarios. Por ejemplo, puede agregar las siguientes líneas debajo del final de las líneas del archivo:
# vim /etc/security/limits.conf
* nofile duro 21000
* suave nofile 16000
Ahora edite el archivo /etc/pam.d/login
# vim /etc/pam.d/login
sesión requerida pam_limits.so
Y ha terminado de cambiar el límite de archivos abiertos.
Publicación traducida automáticamente
Artículo escrito por tithimukherjee y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA