Table des matières
2. Réglage des connexions de travailleurs Nginx
3. Capeur de descripteur de fichiers à l'échelle du système
Maison Opération et maintenance Nginx Qu'est-ce qui provoque une erreur 'trop ​​de fichiers ouverts' dans Nginx?

Qu'est-ce qui provoque une erreur 'trop ​​de fichiers ouverts' dans Nginx?

Jul 05, 2025 am 12:14 AM
nginx

Lorsque Nginx connaît une erreur "trop ​​de fichiers ouverts", c'est généralement parce que le système ou le processus a atteint la limite du descripteur de fichier. Les solutions incluent: 1. Augmenter les limites douces et dures du système Linux, définir les paramètres pertinents de Nginx ou exécuter les utilisateurs dans /etc/security/limits.conf; 2. Ajustez la valeur Worker_Connections de Nginx pour s'adapter au trafic attendu et assurer la configuration rechargée; 3. Augmentez le descripteur de fichier au niveau du système Limite supérieure Fs.File-Max, Edit /etc/Sysctl.conf et appliquez des modifications; 4. Optimiser l'utilisation du journal et des ressources, réduisez l'utilisation de la poignée des fichiers inutile, comme l'utilisation d'Open_Log_File_Cache, la fusion des journaux, d'éviter les connexions proxy redondantes, etc. Une fois le réglage terminé, vous pouvez surveiller le nombre réel de fichiers ouverts via la commande LSOF.

Ce qui cause un \

Lorsque Nginx lance une erreur «trop de fichiers ouverts», cela signifie généralement que le système ou le processus a appuyé sur sa limite de descripteur de fichier. Cela peut entraîner des connexions échouées, des services au point mort ou même des plantages s'ils ne sont pas traités.

Voici ce qui cause généralement ce problème et comment le gérer.


1. Limites de descripteur de fichiers dans Linux

Les systèmes Linux imposent des limites au nombre de descripteurs de fichiers (FD) qu'un processus peut ouvrir. Ces limites sont disponibles en deux saveurs: douce et dure.

  • Limite souple - ce que le processus est actuellement autorisé à utiliser.
  • Limite dure - La valeur maximale à laquelle la limite molle peut être augmentée.

Si Nginx atteint la limite souple, vous verrez le message «trop de fichiers ouverts» dans les journaux. Vous pouvez vérifier les limites de courant en utilisant:

 ulimit -n

Pour augmenter la limite, modifiez /etc/security/limits.conf et ajoutez:

 Nginx Soft Nofile 65536
nginx hard nofile 65536

Ou pour l'utilisateur exécutant nginx:

 www-data soft nofile 65536
www-data hard nofile 65536

Assurez-vous également que pam_limits.so est activé dans votre configuration PAM afin que ces paramètres soient appliqués à la connexion.


2. Réglage des connexions de travailleurs Nginx

Dans nginx.conf , il y a une directive appelée worker_connections . Il définit le nombre de connexions simuladées que chaque processus de travailleur peut gérer.

Cette ligne pourrait ressembler:

 événements {
    Worker_Connections 1024;
}

Chaque connexion utilise au moins un descripteur de fichiers - parfois plus si des connexions SSL ou en amont sont impliquées.

Donc, si vous gérez des milliers d'utilisateurs simultanés, le 1024 par défaut peut être trop faible.

Tu devrais:

  • Estimez votre trafic attendu.
  • Multipliez par le FDS moyen par connexion (souvent 2 à 4).
  • Définissez worker_connections supérieur à cela.

N'oubliez pas de recharger Nginx après avoir changé ceci:

 rechargement de nginx -s

Gardez également un œil sur le nombre total de processus de travail multipliés par worker_connections , car cela vous donne les connexions maximales totales à tous les travailleurs.


3. Capeur de descripteur de fichiers à l'échelle du système

Même si vous configurez correctement Nginx et l'utilisateur, l'ensemble du système a également un CAP FD global contrôlé par fs.file-max .

Vérifiez la valeur actuelle avec:

 chat / proc / sys / fs / file-max

S'il est bas, soulevez-le en modifiant /etc/sysctl.conf :

 Fs.File-max = 2097152

Puis appliquez des modifications:

 sysctl -p

Cette étape est souvent négligée mais essentielle sous une charge élevée. Considérez-le comme le plafond pour tous les processus combinés - y compris Nginx, PHP, MySQL, etc.


4. Ouvrez les fichiers journaux et les ressources inutilisées

Chaque journal d'accès, journal d'erreur ou connexion en amont Nginx ouvre consomme un descripteur de fichiers.

Si vous avez des dizaines d'hôtes virtuels, chaque écriture pour séparer les journaux, ceux qui s'additionnent rapidement.

Certaines choses à considérer:

  • Utilisez open_log_file_cache pour réduire les frais généraux.
  • Consolider les journaux dans la mesure du possible.
  • Évitez les blocs en amont ou les connexions proxy inutiles.

En outre, certains modules ou intégrations tierces mal configurées peuvent fuir les FD au fil du temps - surtout si elles ne clôturent pas correctement les connexions en amont.


Fondamentalement, l'erreur "trop ​​de fichiers ouverts" revient à des limites trop faibles pour la charge de travail. Vérifiez les ulimits, tweak worker_connections , augmentez les capuchons à l'échelle du système et minimisez les poignées de fichiers non équivoques. Une fois configuré, surveillez avec des outils comme lsof -p $(pidof nginx) pour voir ce qui est réellement ouvert.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Nginx vs Apache: performance, évolutivité et efficacité Nginx vs Apache: performance, évolutivité et efficacité Apr 19, 2025 am 12:05 AM

Nginx et Apache sont tous deux des serveurs Web puissants, chacun avec des avantages et des inconvénients uniques en termes de performances, d'évolutivité et d'efficacité. 1) Nginx fonctionne bien lors de la gestion du contenu statique et de la proxyation inverse, adaptée aux scénarios de concurrence élevés. 2) Apache fonctionne mieux lors du traitement du contenu dynamique et convient aux projets qui nécessitent une prise en charge des modules riches. La sélection d'un serveur doit être déterminée en fonction des exigences et des scénarios du projet.

Nginx vs Apache: une analyse comparative des serveurs Web Nginx vs Apache: une analyse comparative des serveurs Web Apr 21, 2025 am 12:08 AM

Nginx convient plus à la gestion des connexions simultanées élevées, tandis qu'Apache convient plus aux scénarios où des configurations complexes et des extensions de module sont nécessaires. 1.Nginx est connu pour ses performances élevées et sa faible consommation de ressources, et convient à une concurrence élevée. 2.Apache est connu pour sa stabilité et ses riches extensions de modules, qui conviennent aux besoins de configuration complexes.

Nginx et Apache: comprendre les principales différences Nginx et Apache: comprendre les principales différences Apr 26, 2025 am 12:01 AM

Nginx et Apache ont chacun leurs propres avantages et inconvénients, et le choix doit être basé sur des besoins spécifiques. 1.Nginx convient aux scénarios de concurrence élevés en raison de son architecture asynchrone non bloquant. 2. Apache convient aux scénarios à faible monnaie qui nécessitent des configurations complexes, en raison de sa conception modulaire.

Comment exécuter le code PHP après avoir écrit du code PHP? Plusieurs façons courantes d'exécuter le code PHP Comment exécuter le code PHP après avoir écrit du code PHP? Plusieurs façons courantes d'exécuter le code PHP May 23, 2025 pm 08:33 PM

Le code PHP peut être exécuté de plusieurs manières: 1. Utilisez la ligne de commande pour entrer directement le "nom de fichier PHP" pour exécuter le script; 2. Mettez le fichier dans le répertoire racine du document et accédez-y via le navigateur via le serveur Web; 3. Exécutez-le dans l'IDE et utilisez l'outil de débogage intégré; 4. Utilisez le bac à sable PHP en ligne ou la plate-forme d'exécution de code pour les tests.

Après avoir installé Nginx, le chemin du fichier de configuration et les paramètres initiaux Après avoir installé Nginx, le chemin du fichier de configuration et les paramètres initiaux May 16, 2025 pm 10:54 PM

La compréhension du chemin du fichier de configuration de Nginx et des paramètres initiaux est très importante car il s'agit de la première étape dans l'optimisation et la gestion d'un serveur Web. 1) Le chemin du fichier de configuration est généralement /etc/nginx/nginx.conf. La syntaxe peut être trouvée et testée à l'aide de la commande nginx-t. 2) Les paramètres initiaux incluent les paramètres globaux (tels que l'utilisateur, worker_processs) et les paramètres HTTP (tels que l'inclusion, log_format). Ces paramètres permettent la personnalisation et l'extension en fonction des exigences. Une configuration incorrecte peut entraîner des problèmes de performances et des vulnérabilités de sécurité.

Comment limiter les ressources des utilisateurs dans Linux? Comment configurer Ulimit? Comment limiter les ressources des utilisateurs dans Linux? Comment configurer Ulimit? May 29, 2025 pm 11:09 PM

Linux System restreint les ressources utilisateur via la commande UliMIT pour éviter une utilisation excessive des ressources. 1.Ulimit est une commande shell intégrée qui peut limiter le nombre de descripteurs de fichiers (-n), la taille de la mémoire (-v), le nombre de threads (-u), etc., qui sont divisés en limite douce (valeur effective actuelle) et limite dure (limite supérieure maximale). 2. Utilisez directement la commande ulimit pour une modification temporaire, telle que Ulimit-N2048, mais elle n'est valable que pour la session en cours. 3. Pour un effet permanent, vous devez modifier /etc/security/limits.conf et les fichiers de configuration PAM, et ajouter SessionRequiredPam_limits.so. 4. Le service SystemD doit définir Lim dans le fichier unitaire

Quelles sont les compétences de configuration Debian Nginx? Quelles sont les compétences de configuration Debian Nginx? May 29, 2025 pm 11:06 PM

Lors de la configuration de Nginx sur Debian System, les éléments suivants sont quelques conseils pratiques: la structure de base des paramètres globaux du fichier de configuration: définir les paramètres comportementaux qui affectent l'intégralité du service NGINX, tel que le nombre de threads de travail et les autorisations d'utilisateurs en cours d'exécution. Pièce de gestion des événements: Décider comment Nginx s'occupe des connexions réseau est une configuration clé pour améliorer les performances. Pièce de service HTTP: contient un grand nombre de paramètres liés au service HTTP et peut intégrer plusieurs serveurs et blocs de localisation. Options de configuration de base Worker_Connections: Définissez le nombre maximal de connexions que chaque thread de travailleur peut gérer, généralement définie sur 1024. Multi_accept: activez le mode de réception multi-connexion et améliorez la capacité de traitement simultané. s

Objectif de Nginx: servir du contenu Web et plus Objectif de Nginx: servir du contenu Web et plus May 08, 2025 am 12:07 AM

Nginxservceswebcontentandactsasareverseproxy, loadBalancer et m /r.1) itefficientlyServisetaticContent likehtmlandimages.2) itfunctionsasareverseproxyandloadBalancer, distribution.

See all articles