4 votes

Les instances sont lentes lorsqu'elles sont connectées à l'équilibreur de charge AWS

J'ai installé 5 EC2 t1.micro derrière un équilibreur de charge AWS.

Toutes les instances ralentissent dès qu'elles sont connectées au LB. Huit requêtes sur dix prennent plus de 30 secondes, même lorsque je fais les requêtes directement aux instances (en contournant le LB). La charge CPU des instances ne semble pas être le problème. Lorsque je retire l'une des instances du LB, elle répond parfaitement. Dès qu'elle est ajoutée au LB, les requêtes ralentissent à nouveau.

Quelqu'un peut-il me donner des indices sur la raison pour laquelle les instances réagissent beaucoup plus lentement une fois que le LB est branché ?

Merci d'avance

5voto

Hannah Points 31

Il semble que les requêtes soient en file d'attente dans vos ELB en raison d'en-têtes Keep-Alive (peut-être) trop longs. Les ELB essaient de minimiser le nombre de connexions au backend en respectant l'en-tête Keep-Alive.

Un keep-alive court (ou désactivé) forcera ELB à ouvrir une seule connexion par requête à votre backend, si les nœuds de votre backend ont des ressources libres pour gérer cette connexion entrante. Les keep-alives longs réduiront le nombre de connexions au backend et obligeront l'ELB à sérialiser les requêtes autant que possible, ce qui peut avoir pour conséquence que des requêtes attendent que d'autres soient traitées.

Vérifiez vos files d'attente ELB dans Cloudwatch pendant les tests de charge et, si elles augmentent alors que vos backends sont inactifs, essayez de diminuer le nombre de requêtes par connexion et de réduire les délais de conservation (Keep-Alive). Les valeurs exactes varieront en fonction des exigences de votre application.

PS : t1.micro est diabolique PS(2) : L'adhésivité, c'est le mal

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X