Comment puis-je résoudre un problème de latence élevée sur mon ELB Classic Load Balancer ?

Lecture de 4 minute(s)
0

La latence est élevée lorsque je me connecte à un Classic Load Balancer Elastic Load Balancing (ELB).

Brève description

Une latence élevée sur un Classic Load Balancer survient dans les cas suivants :

  • Problèmes de connectivité réseau
  • Mauvaise configuration du Classic Load Balancer
  • Utilisation élevée de la mémoire (RAM) sur les instances backend
  • Utilisation élevée du processeur sur les instances backend
  • Mauvaise configuration du serveur Web sur les instances backend
  • Problèmes de dépendances d'applications Web s'exécutant sur des instances backend, notamment des bases de données externes ou des compartiments Amazon Simple Storage Service (Amazon S3)

Résolution

1.    Résolvez les problèmes de connectivité réseau de votre Classic Load Balancer.

2.    Configurez le Classic Load Balancer pour votre cas d'utilisation.

3.    Vérifiez les journaux d'accès de votre Classic Load Balancer pour déterminer quelles instances backend sont sujettes à une latence élevée. Examinez le temps backend_processing_time pour trouver les instances backend qui ont des problèmes de latence.
Pour vérifier que le serveur d'application Web d'une instance backend est sujet à une latence élevée, utilisez curl pour mesurer la réponse du premier octet :

[ec2-user@ip-192.0.2.0 ~]$ for X in `seq 6`; do curl -Ik -w "HTTPCode=%{http_code} TotalTime=%{time_total}\n" http://www.example.com/ -so /dev/null; done  
High Latency sample output:  
HTTPCode=200 TotalTime=2.452  
HTTPCode=200 TotalTime=1.035
Low latency sample output:  
HTTPCode=200 TotalTime=0.515  
HTTPCode=200 TotalTime=0.013

4.    Vérifiez la statistique Moyenne de la métrique Latence d'Amazon CloudWatch pour votre Classic Load Balancer. Si la valeur est élevée, c'est qu'un problème existe au niveau des instances backend ou des serveurs de dépendance des applications.

5.    Vérifiez la statistique Maximale de la métrique Latence. Si la valeur atteint ou dépasse la valeur du délai d'inactivité, les requêtes sont interrompues et entraînent des erreurs HTTP 504.

6.    Vérifiez les modèles de la métrique Latence. Des pics de métrique à intervalles réguliers indiquent des problèmes de performance des instances backend, dus à la surcharge des tâches planifiées.

7.    Vérifiez la métrique SurgeQueueLength de CloudWatch pour ELB. Si les demandes adressées à Classic Load Balancer dépassent la valeur maximale (1 024), elles sont rejetées et l'équilibreur de charge génère une erreur HTTP 503. La statistique de la somme de la métrique SpilloverCount mesure le nombre total de requêtes rejetées. Pour en savoir plus, reportez-vous à Comment résoudre les problèmes de capacité de Classic Load Balancer dans ELB ?

8.    Examinez l'Apache traité sur vos instances backend pour vérifier les problèmes de mémoire.

Exemple de commande :

watch -n 1 "echo -n 'Apache Processes: ' && ps -C apache2 --no-headers | wc -l && free -m"

Exemple de sortie :

Every 1.0s: echo –n 'Apache Processes: ' && ps –C apache2 –no-
headers | wc -1 && free –m
Apache Processes: 27
          total     used     free     shared     buffers     cached
Mem:      8204      7445     758      0          385         4567
-/+ buffers/cache:  2402     5801
Swap:     16383     189      16194

9.    Vérifiez la métrique CloudWatch CPUUtilization de vos instances backend. Identifiez une utilisation élevée du processeur ou des pics d'utilisation du processeur. En cas d'utilisation élevée du processeur, mettez à niveau vos instances vers un type d'instance de plus grande capacité.

10.    Vérifiez le paramètre MaxClient pour les serveurs Web sur vos instances backend. Ce paramètre définit le nombre de requêtes simultanées que l'instance peut traiter. Augmentez la valeur MaxClient pour les instances dont la mémoire et l'utilisation du processeur sont appropriées et qui présentent une latence élevée.

Comparez le nombre de processus générés par Apache (httpd) au paramètre MaxClient. Si le nombre de processus Apache atteint fréquemment la valeur MaxClient, augmentez-la.

Exemple de commande :

[root@ip-192.0.2.0 conf]# ps aux | grep httpd | wc -l 15

Exemple de sortie :

<IfModule prefork.c>  
StartServers         10  
MinSpareServers      5  
MaxSpareServers      10  
ServerLimit          15  
MaxClients           15  
MaxRequestsPerChild  4000  
</IfModule>

11.    Vérifiez les dépendances à l'origine de problèmes de latence sur vos instances backend.

Voici quelques-unes des dépendances susceptibles de causer des problèmes de latence :

  • bases de données partagées, ressources externes, notamment les compartiments S3
  • connexions de ressources externes, notamment les instances de traduction d'adresses réseau (NAT)
  • services Web distants
  • serveurs proxy

Informations connexes

Surveiller votre Classic Load Balancer

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 8 mois