GNU/Linux >> Tutoriels Linux >  >> Linux

Le plus grand nombre maximal autorisé de fichiers ouverts sous Linux

Je soupçonne que la raison principale de la limite est d'éviter une consommation excessive de mémoire (chaque descripteur de fichier ouvert utilise la mémoire du noyau). Il sert également de protection contre les applications boguées qui divulguent des descripteurs de fichiers et consomment des ressources système.

Mais étant donné la quantité absurde de RAM des systèmes modernes par rapport aux systèmes d'il y a 10 ans, je pense que les valeurs par défaut sont aujourd'hui assez faibles.

En 2011, la limite stricte par défaut pour les descripteurs de fichiers sous Linux est passée de 1 024 à 4 096.

Certains logiciels (par exemple MongoDB) utilisent beaucoup plus de descripteurs de fichiers que la limite par défaut. Les gens de MongoDB recommandent d'augmenter cette limite à 64 000. J'ai utilisé un rlimit_nofile de 300 000 pour certaines applications.

Tant que vous maintenez la limite souple à la valeur par défaut (1024), il est probablement assez sûr d'augmenter la limite stricte. Les programmes doivent appeler setrlimit() afin d'élever leur limite au-dessus de la limite souple, et sont toujours plafonnés par la limite dure.

Voir aussi quelques questions connexes :

  • 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

L'impact ne serait normalement pas observable, mais le module IO du noyau devra prendre en charge tous ces descripteurs de fichiers ouverts et ils pourraient également avoir un impact sur l'efficacité du cache.

De telles limites ont l'avantage de protéger l'utilisateur de ses propres erreurs (ou de celles de tiers). Par exemple, si vous exécutez un petit programme ou un script qui bifurque indéfiniment, il finira par se bloquer sur l'un des ulimit s et ainsi empêcher un blocage informatique plus intense (éventuellement irrécupérable).

À moins que vous n'ayez des raisons précises d'augmenter l'une de ces limites, vous devriez l'éviter et mieux dormir.


Il est techniquement limité à la valeur maximale de long non signé (C Lang), c'est-à-dire 4 294 967 295

Référence :fs.h fichier

/* 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. Copier des fichiers dans le terminal Linux

  2. Déplacer des fichiers sur Linux sans mv

  3. Comment augmenter la limite du nombre de fichiers ouverts sous Linux

  4. PID maximal sous Linux

  5. linux tree command limite le nombre de fichiers affichés dans chaque répertoire

Commande ls sous Linux pour lister les fichiers

Comment renommer un ou plusieurs fichiers sous Linux

Comment déplacer un grand nombre de fichiers sous Linux

Comment changer la limite de fichiers ouverts sous Linux

Comment ouvrir des fichiers et des dossiers en tant qu'administrateur dans Nautilus File Manager sous Linux

Comment compresser un fichier sous Linux