2017-06-01 3 views
1

J'ai deux instances EC2 derrière un ELB et dans un groupe Auto Scaling. La politique d'intensification est comme ci-dessous:Comment gérer un pic soudain du trafic Web pendant la mise à l'échelle automatique

CPUUtilization> = 70 300 secondes (Ajoute un serveur)

Alors que l'activité Atoscaling est en cours, la charge sur les instances existantes est déjà 99% et les connexions sont abandonnées.

Y at-il un moyen de gérer cela plus efficacement?

+0

Je ne pense pas que vous puissiez faire quoi que ce soit au niveau de la configuration, peut-être pourriez-vous faire tomber 300 secondes, mais cela ne résoudra pas le problème. Voyez si vous pouvez faire quelque chose sur les instances pour les élever rapidement. – kosa

Répondre

2

L'astuce de Auto Scaling consiste à définir une alarme capable d'identifier précisément la charge de votre système.

L'utilisation de l'UC n'est pas toujours la bonne méthode à utiliser: votre application ne peut gérer qu'un nombre limité de connexions, elle peut être compressée sur RAM et les types de requêtes peuvent également varier.

Une bonne idée est de surveiller votre système pendant près les charges de pointe pour déterminer un signal précise qui identifie les périodes de pointe (ou, mieux encore, vous aide à prévoir les périodes de pointe imminente). Utiliser des outils de surveillance standard sur votre cas individuels, tels que la surveillance de la mémoire libre, le nombre d'utilisateurs de l'application, le nombre de transactions, etc.

Vous pouvez utiliser des outils de surveillance normale, ou vous pouvez écrire quelque chose qui pousse les mesures à Amazon CloudWatch , de sorte que vous allez au-delà des métriques de base du CPU et du réseau que CloudWatch fournit normalement. Vous pouvez même utiliser la métrique Latence de Load Balancer pour déclencher la mise à l'échelle lorsque l'application ralentit (code personnalisé requis). Une fois que vous avez un signal fiable à détecter lorsque le système approche de la capacité et doit être mis à l'échelle, vous pouvez alors vous concentrer sur pour raccourcir le délai d'ajout de capacité. Mesurez le temps nécessaire au lancement d'une nouvelle instance et commencez à accepter le trafic. Essayez de réduire les temps de lancement en utilisant une AMI entièrement configurée plutôt que d'installer un logiciel via les données utilisateur. Peut-être que vous pouvez supprimer ou désactiver des services sur l'instance pour le faire démarrer plus rapidement. Essayez d'utiliser différents types de volumes EBS (par exemple, SSD à usage général peut éclater jusqu'à 3000 IOP) et différents types d'instances.

Peut-être même scale-out plus tôt (par exemple à 50%) - les frais supplémentaires pourraient être mineures par rapport au service amélioré pour vos utilisateurs.

Votre objectif devrait être de faire en sorte que les utilisateurs n'aient jamais un service lent ou des connexions interrompues.

+0

Merci pour votre aide John! C'était utile. – Ishaan