GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la limite maximale de fichiers ouverts sous Linux ?

Vous pouvez vérifier les limites logicielles et les limites strictes de votre système par ulimit -a commande.

  1. les limites souples sont simplement les limites actuellement appliquées.
  2. les limites strictes marquent la valeur maximale qui ne peut pas être dépassée en définissant une limite souple.

Les limites souples peuvent être définies par n'importe quel utilisateur, tandis que les limites strictes ne peuvent être modifiées que par root. Les limites sont une propriété d'un processus . Ils sont hérités lors de la création d'un processus enfant. Par conséquent, les limites à l'échelle du système doivent être définies lors de l'initialisation du système dans les scripts d'initialisation et les limites utilisateur doivent être définies lors de la connexion de l'utilisateur, par exemple en utilisant pam_limits. .

Des valeurs par défaut sont souvent définies au démarrage de la machine. Ainsi, même si vous pouvez réinitialiser votre ulimit dans un shell individuel, vous pouvez constater qu'il revient à la valeur précédente au redémarrage. Vous voudrez peut-être grep vos scripts de démarrage pour les commandes d'existence ulimit si vous souhaitez modifier la valeur par défaut.

Si la limitation était de 1024, cela signifie que vous/le processus pouvez ouvrir un maximum de 1024 fichiers. si vous dépassez cette limite signifie open , pipe et dup les appels système échoueront :

RLIMIT_NOFILE :

Spécifie une valeur supérieure d'une unité au nombre maximal de descripteurs de fichiers pouvant être ouverts par ce processus. Tentatives (open(2) , pipe(2) , dup(2) , etc.) pour dépasser cette limite génère l'erreur EMFILE .


Il s'agit d'un certain nombre de descripteurs de fichiers ouverts par processus . Ils peuvent tous faire référence au même fichier ou à des fichiers différents.

Vous pouvez voir les limites actuelles avec ulimit -a dans le shell, ou par programmation avec getrlimit . Les limites à l'échelle du système sont définies dans /etc/security/limits.conf .

Le modèle d'objet du système de fichiers sous Linux est :

file descriptor -> file description -> dentry -> inode
  1. descripteur de fichier est le nombre entier utilisé par l'application.
  2. description du fichier est la structure de données du noyau à laquelle un ou plusieurs descripteurs de fichier référer à.
  3. dentry est le nom du fichier. Un fichier peut avoir plusieurs noms (liens physiques).
  4. inode est le contenu du fichier.

dup crée un nouveau descripteur de fichier pour la même description de fichier.open crée un nouveau descripteur de fichier et une description de fichier.


Linux
  1. Les meilleurs outils de transfert de fichiers sur Linux

  2. Que sont les fichiers fragmentés sous Linux

  3. Quel est le but du fichier .bashrc sous Linux

  4. Quelle est une bonne solution pour le marquage de fichiers sous Linux ?

  5. Quelles sont les différentes façons de définir les autorisations de fichiers, etc. sur gnu/linux

Qu'est-ce qu'umask sous Linux ?

Qu'est-ce que le Shell sous Linux ?

Les 6 meilleures façons d'afficher des fichiers sous Linux

Comment décompresser les fichiers gz sous Linux

Gestion de fichiers Linux depuis le terminal

Qu'est-ce qu'un fichier .bashrc sous Linux ?