Maison >Opération et maintenance >Nginx >Comment surveiller les performances Nginx et l'utilisation des ressources?

Comment surveiller les performances Nginx et l'utilisation des ressources?

James Robert Taylor
James Robert Taylororiginal
2025-03-17 17:08:32140parcourir

Comment surveiller les performances Nginx et l'utilisation des ressources?

La surveillance des performances et de l'utilisation des ressources de Nginx est essentielle pour maintenir la santé et l'efficacité de votre serveur Web. Voici comment vous pouvez réaliser une surveillance complète:

  1. Page d'état Nginx:

    • Nginx fournit une page d'état intégrée qui peut vous donner un aperçu des connexions actuelles, des connexions actives et des demandes par seconde. Pour activer cela, vous devez configurer le fichier nginx.conf pour inclure le ngx_http_stub_status_module . Voici comment vous le faites:

       <code class="nginx">location /nginx_status { stub_status; access_log off; allow 127.0.0.1; # Only allow access from localhost deny all; # Deny access from anywhere else }</code>
    • Après la configuration, vous pouvez accéder à ce statut en visitant http://yourserver/nginx_status .
  2. Surveillance au niveau du système:

    • Utilisez des outils de surveillance du système comme top , htop ou mpstat pour vérifier l'utilisation globale du processeur et de la mémoire. Ces outils fournissent des informations en temps réel sur la façon dont Nginx utilise les ressources système.
    • Pour les E / S de disque, utilisez iostat pour surveiller les opérations de lecture / écriture, ce qui peut avoir un impact sur les performances de Nginx, surtout si votre serveur gère beaucoup de contenu statique.
  3. Analyse du journal:

    • L'analyse des journaux d'accès et d'erreur Nginx peut aider à identifier les goulots d'étranglement des performances. Des outils comme goaccess peuvent analyser ces journaux et présenter des statistiques telles que le nombre de demandes, la bande passante et les URL visitées les plus visitées.
  4. Outils de surveillance des tiers:

    • Des outils comme Prometheus et Grafana peuvent être utilisés pour créer des tableaux de bord qui vous donnent une vue détaillée des performances Nginx. Ces outils peuvent gratter la page d'état Nginx et d'autres mesures et les présenter dans un format facilement compréhensible.

Quels outils puis-je utiliser pour suivre les temps de charge et de réponse du serveur Nginx?

Pour suivre les temps de charge et de réponse du serveur Nginx, plusieurs outils peuvent être utilisés, chacun offrant différentes capacités et niveaux de détail:

  1. Module d'état Nginx:

    • Comme mentionné précédemment, ce module intégré peut fournir des statistiques de charge de base telles que les connexions actives, les demandes par seconde et les états de connexion.
  2. Prométhée et Grafana:

    • Prométhée peut gratter les mesures de la page de statut Nginx et d'autres sources. Lorsqu'il est combiné avec Grafana, vous obtenez de puissantes capacités de visualisation et d'alerte. Vous pouvez surveiller les temps de réponse, la charge du serveur et d'autres mesures au fil du temps.
  3. Nouvelle relique:

    • New Relic propose des solutions de surveillance complètes, y compris une surveillance spécifique de Nginx. Il suit les temps de réponse, le débit et les erreurs, vous aidant à comprendre comment votre serveur Nginx fonctionne sous différentes charges.
  4. Datadog:

    • Datadog fournit des mesures Nginx détaillées et peut aider à suivre le chargement du serveur, les temps de réponse et d'autres indicateurs de performances clés. Il prend également en charge l'alerte et l'analyse des données historiques.
  5. Géraccées:

    • GOACCESS peut analyser les journaux NGINX en temps réel pour fournir des informations sur la charge du serveur et les temps de réponse. Il est léger et peut être exécuté directement sur le serveur.

Comment puis-je configurer une surveillance en temps réel pour le processeur Nginx et l'utilisation de la mémoire?

La configuration de la surveillance en temps réel pour l'utilisation du processeur et de la mémoire NGINX peut être effectuée via les étapes suivantes:

  1. Installer des agents de surveillance:

    • Installez des agents comme l'exportateur de nœuds pour Prometheus. Node Exporter s'exécute sur le serveur NGINX et expose des mesures sur la CPU et l'utilisation de la mémoire qui peuvent être grattées par Prometheus.
  2. Configurer Prométhée:

    • Configurez Prometheus pour gratter les métriques de Node Exporter. Vous devrez créer un fichier de configuration prometheus.yml et inclure le travail nécessaire pour se retirer de Node Exporter:

       <code class="yaml">scrape_configs: - job_name: 'nginx' static_configs: - targets: ['localhost:9100'] # Assuming Node Exporter is running on port 9100</code>
  3. Configurez Grafana:

    • Utilisez Grafana pour créer des tableaux de bord qui visualisent les données collectées par Prometheus. Vous pouvez ajouter Prometheus en tant que source de données et concevoir des panneaux personnalisés pour afficher le processeur en temps réel et l'utilisation de la mémoire pour votre serveur NGINX.
  4. Alertes en temps réel:

    • Configurer les règles d'alerte dans Prometheus pour envoyer des notifications lorsque l'utilisation du processeur ou de la mémoire dépasse les seuils prédéfinis. Ces alertes peuvent être intégrées à des services de notification comme Slack ou PagerDuty.

Quelles sont les meilleures pratiques pour optimiser les performances Nginx en fonction des données de surveillance?

Sur la base des données de surveillance, voici quelques meilleures pratiques pour optimiser les performances de Nginx:

  1. Tune des processus des travailleurs:

    • Ajustez le nombre de processus de travail en fonction des cœurs CPU de votre serveur. Vous pouvez le définir dans nginx.conf :

       <code class="nginx">worker_processes auto;</code>
    • La surveillance de l'utilisation du processeur peut vous aider à déterminer si vous devez augmenter ou diminuer le nombre de travailleurs.
  2. Optimiser la gestion des connexions:

    • Surveillez le nombre de connexions actives et ajustez worker_connections en conséquence. Cela peut aider à gérer efficacement les connexions plus concurrentes:

       <code class="nginx">events { worker_connections 1024; }</code>
  3. Activer la mise en cache:

    • Utilisez les capacités de mise en cache de Nginx pour réduire la charge sur vos serveurs backend. La surveillance des temps de réponse peut aider à déterminer où la mise en cache serait la plus efficace.
    • Configurer la mise en cache dans nginx.conf :

       <code class="nginx">proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m;</code>
  4. Compression GZIP:

    • Activer la compression GZIP pour réduire la quantité de données transférées sur le réseau. Surveillez la bande passante et les temps de réponse pour voir les avantages:

       <code class="nginx">gzip on; gzip_vary on; gzip_proxied any; gzip_comp_level 6; gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml rss text/javascript;</code>
  5. Utiliser l'équilibrage de la charge:

    • Si vos données de surveillance affichent une charge de serveur élevée, envisagez d'implémenter l'équilibrage de charge sur plusieurs serveurs pour distribuer uniformément le trafic.
  6. Surveiller et ajuster les tailles de tampon:

    • En fonction de vos données de surveillance, ajustez les tailles de tampon comme proxy_buffer_size et proxy_buffers pour optimiser les performances pour les transferts de fichiers importants ou les sites de trafic élevé:

       <code class="nginx">proxy_buffer_size 128k; proxy_buffers 4 256k; proxy_busy_buffers_size 256k;</code>
  7. Gardez Nginx à jour:

    • Mettez régulièrement à jour Nginx pour bénéficier de l'amélioration des performances et des correctifs de sécurité. La surveillance des journaux peut vous aider à identifier tous les problèmes qui pourraient survenir après la mise à jour.

En suivant ces meilleures pratiques et en surveillant en continu votre serveur Nginx, vous pouvez optimiser ses performances et vous assurer qu'il s'exécute efficacement dans les charges variables.

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:
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