Résoudre le problème « Trop de fichiers ouverts »

Voir les catégories

Résoudre le problème « Trop de fichiers ouverts »

2 min de lecture

Dans les systèmes basés sur Linux tels que RELIANOID chaque connexion réseau, socket ou fichier ouvert consomme des ressources système. descripteur de fichierLe système d'exploitation impose des limites au nombre de descripteurs de fichiers pouvant être ouverts simultanément afin d'éviter l'épuisement des ressources.

Si un processus atteint sa limite de descripteurs de fichiers, il ne pourra plus ouvrir de fichiers ou de sockets supplémentaires, et le système pourra générer l'erreur suivante :

Trop de fichiers ouverts

Cette situation peut affecter le fonctionnement du système, entraînant l'arrêt des services ou l'impossibilité d'établir de nouvelles connexions jusqu'à ce que le processus ou le système concerné soit redémarré.

Cet article explique le fonctionnement des limites de descripteurs de fichiers. RELIANOID systèmes et comment les administrateurs peuvent les ajuster en cas de besoin.

Fonctionnement des limites des descripteurs de fichiers #

Linux gère les descripteurs de fichiers à travers deux principaux types de limites :

  • Limites à l'échelle du système
  • Limites par processus

Les deux doivent être configurés correctement pour garantir un fonctionnement stable.

Limites des descripteurs de fichiers à l'échelle du système #

Le noyau Linux impose une limite globale au nombre de descripteurs de fichiers pouvant être alloués sur l'ensemble du système. Cette valeur est contrôlée par le paramètre du noyau : fs.file-max

Vous pouvez consulter la valeur actuelle en utilisant :

sysctl fs.file-max

Exemple de sortie:

fs.file-max = 1000000

Cela signifie que le système peut allouer jusqu'à un million de descripteurs de fichiers au total. Si cette limite est atteinte, aucun nouveau descripteur de fichier ne peut être créé tant que les descripteurs existants n'ont pas été libérés.

Si nécessaire, les administrateurs peuvent augmenter temporairement la valeur en utilisant :

sysctl -w fs.file-max=2000000

Pour que la modification soit permanente après un redémarrage, ajoutez le paramètre à : /etc/sysctl.conf

Exemple :

fs.file-max = 2000000

Appliquez la configuration avec :

sysctl-p

Limites des descripteurs de fichiers par processus #

Outre la limite globale du système, chaque processus possède également sa propre limite quant au nombre de fichiers ouverts qu'il peut gérer. Cette limite est contrôlée à l'aide de ulimit.

Vous pouvez vérifier la limite actuelle avec :

ulimit -n

Exemple de sortie:

100000

Cela indique qu'un seul processus peut ouvrir jusqu'à 100 000 descripteurs de fichiers.

Si un processus atteint cette limite, il générera le « Trop de fichiers ouverts » erreur même si la limite système est toujours disponible.

Limites des descripteurs de fichiers dans RELIANOID #

RELIANOID Les services chargent leurs limites de descripteurs de fichiers par processus à partir du fichier de configuration suivant :

/etc/profile/relianoid.sh

Cela garantit que RELIANOID Les composants fonctionnent avec les limites requises pour gérer un grand nombre de connexions réseau.

Toutefois, Les processus tiers exécutés sur le même système peuvent ne pas hériter automatiquement de ces limites.Les agents de surveillance, les outils externes ou les services personnalisés peuvent donc rencontrer un épuisement des descripteurs de fichiers si leurs limites sont inférieures aux besoins.

Ajustement des limites pour les processus tiers #

Si une application tierce requiert des limites de descripteurs de fichiers plus élevées, celles-ci peuvent être configurées dans : /etc/security/limits.conf

Par exemple :

* soft nofile 200000 * hard nofile 200000

Cette configuration augmente le nombre de fichiers ouverts autorisés pour tous les utilisateurs.

Il est également possible d'appliquer des limites à un utilisateur spécifique :

ncpa soft nofile 200000 ncpa hard nofile 200000

Après avoir appliqué les modifications, redémarrez le service ou le processus concerné afin qu'il charge les limites mises à jour.

Conclusion #

Le « Trop de fichiers ouverts » Une erreur se produit lorsqu'un processus atteint le nombre maximal autorisé de descripteurs de fichiers et ne peut plus ouvrir de fichiers ou de sockets réseau supplémentaires. Lorsque cette limite est dépassée, les services peuvent ne plus accepter de nouvelles connexions ou ne plus fonctionner correctement.

Pour éviter cette situation, les administrateurs doivent s'assurer que les deux limite de descripteurs de fichiers à l'échelle du système (fs.file-max) Et le limite par processus Défini par ulimit sont correctement configurés.

In RELIANOID Les limites liées aux systèmes et aux services sont chargées à partir de /etc/profile/relianoid.shCependant, les applications tierces exécutées sur le même appareil peuvent nécessiter une configuration supplémentaire via /etc/security/limits.conf afin qu'ils héritent des limites appropriées des descripteurs de fichiers.

En maintenant des limites adéquates et en vérifiant la configuration du système lorsque cela est nécessaire, les administrateurs peuvent contribuer à assurer un fonctionnement stable et à prévenir les interruptions de service dans les environnements gérant un grand nombre de connexions simultanées.

📄 Téléchargez ce document au format PDF #

    E-MAIL: *

    Sécurité accrue. Efforts réduits. Succès durable. Meilleurs Docs