GNU/Linux >> Tutoriales Linux >  >> Linux

Mayor número máximo permitido de archivos abiertos en Linux

Sospecho que la razón principal del límite es evitar el consumo excesivo de memoria (cada descriptor de archivo abierto usa la memoria del kernel). También sirve como protección contra aplicaciones con errores que filtran descriptores de archivos y consumen recursos del sistema.

Pero dada la absurda cantidad de RAM que tienen los sistemas modernos en comparación con los sistemas de hace 10 años, creo que los valores predeterminados de hoy son bastante bajos.

En 2011, el límite estricto predeterminado para los descriptores de archivos en Linux se incrementó de 1024 a 4096.

Algunos programas (p. ej., MongoDB) utilizan muchos más descriptores de archivo que el límite predeterminado. La gente de MongoDB recomienda aumentar este límite a 64.000. He usado un rlimit_nofile de 300.000 para determinadas aplicaciones.

Siempre que mantenga el límite flexible en el valor predeterminado (1024), probablemente sea bastante seguro aumentar el límite estricto. Los programas tienen que llamar a setrlimit() con el fin de elevar su límite por encima del límite suave, y todavía están limitados por el límite duro.

Consulte también algunas preguntas relacionadas:

  • https://serverfault.com/questions/356962/where-are-the-default-ulimit-values-set-linux-centos
  • https://serverfault.com/questions/773609/how-do-ulimit-settings-impact-linux

El impacto normalmente no sería observable, pero el módulo IO del kernel tendrá que encargarse de todos esos descriptores de archivos abiertos y también podrían tener un impacto en la eficiencia de la memoria caché.

Dichos límites tienen la ventaja de proteger al usuario de errores propios (o de terceros). Por ejemplo, si ejecuta un pequeño programa o script que se bifurca indefinidamente, eventualmente se bloqueará en uno de los ulimit s y, por lo tanto, evitar un congelamiento de la computadora más intenso (posiblemente irrecuperable).

A menos que tengas razones precisas para aumentar alguno de esos límites, debes evitarlo y dormir mejor.


Está técnicamente limitado al valor máximo de unsigned long (C Lang), es decir, 4 294 967 295

Referencia:fs.h archivo

/* And dynamically-tunable limits and defaults: */
struct files_stat_struct {
  unsigned long nr_files;   /* read only */
  unsigned long nr_free_files;  /* read only */
  unsigned long max_files;    /* tunable THIS IS OUR VALUE */
};

Linux
  1. Copiar archivos en la terminal de Linux

  2. Mover archivos en Linux sin mv

  3. Preguntas de la entrevista de Linux:Archivos abiertos / Descriptores de archivos abiertos

  4. ¿Número máximo de archivos/directorios en Linux?

  5. El comando del árbol de Linux limita el número de archivos que se muestran en cada directorio.

Comando ls en Linux para listar archivos

Cómo cambiar el nombre de un archivo (s) en Linux

Cómo mover una gran cantidad de archivos en Linux

Cómo cambiar el límite de archivos abiertos en Linux

Cómo abrir archivos y carpetas como administrador en Nautilus File Manager en Linux

Cómo comprimir un archivo en Linux