Home Articles techniques Impact de l’équilibrage de charge adaptatif sur la production
Applications

Impact de l’équilibrage de charge adaptatif sur la production

About The Author

Outline

Au sein de notre CDN, nous développons continuellement de nouvelles façons innovantes d’aider notre infrastructure à maintenir des performances et une résilience élevées lors d’augmentations soudaines de charge. Cela implique souvent d’explorer les optimisations sur les techniques existantes que nous utilisons. De plus, la validation de nouvelles approches est une partie importante de ce processus, car elle garantit que les nouveaux changements ont les impacts positifs attendus dans les environnements de production.

Lorsque le contenu devient populaire, nous le répliquons sur plusieurs serveurs dans un centre de données/point de présence (POP). Cela nous permet de mieux équilibrer la charge et de gérer de telles surtensions, réduisant ainsi le risque de surcharge des serveurs. Ce mécanisme de réplication est appelé « Hot Filing » et le contenu populaire est appelé « Hot file ». Nous avons récemment développé une optimisation de l’équilibrage de charge adaptatif (ALB) qui améliore notre classement à chaud traditionnel en le rendant plus résistant aux pics de trafic. En particulier, il décide dynamiquement de la quantité de réplication nécessaire en mesurant la charge du serveur au lieu de s’appuyer sur des seuils statiques. Cela répartit plus uniformément la charge sur tous les serveurs d’un POP, augmentant ainsi la capacité globale de traitement des requêtes de tout POP et, par conséquent, du CDN. Notre article précédent sur l’évaluation d’un système d’équilibrage de charge adaptatif détaille les mécanismes de cette optimisation.

Dans cet article, nous validons l’impact positif de cette optimisation en production. Nous commençons par définir les indicateurs que nous avons utilisés pour mesurer l’impact. Ensuite, nous montrons l’impact de l’optimisation sur chacune de ces métriques à travers des exemples. Enfin, nous montrons l’impact global de l’optimisation sur tous les POP où elle a été déployée. En résumé, nous avons constaté que le temps total des serveurs a vu une charge excessive au-delà d’un seuil prédéfini réduite d’au moins 70%, tandis que presque tous les POP ont vu une amélioration de cette mesure. Cette optimisation est désormais globalement activée pour tout le trafic client.

Définition des métriques

Pour évaluer l’impact de cette nouvelle optimisation en production, nous avons défini et suivi trois métriques :

  1. Asymétrie des serveurs : il s’agit du rapport entre la charge d’un serveur et la charge médiane de tous les serveurs du POP.
  2. Nombre de Hot Files : il s’agit du nombre de fichiers répliqués par le mécanisme Hot Filing à un moment donné. L’équilibrage de charge adaptatif devrait augmenter le nombre de fichiers actifs, car le remplissage à chaud est le mécanisme sous-jacent de sa distribution de charge.
  3. Temps passé par les serveurs au-dessus de l’asymétrie cible : cette mesure évalue l’efficacité de l’équilibrage de charge adaptatif. Lorsque nous définissons notre seuil d’asymétrie cible à une valeur particulière, nous voulons voir que l’asymétrie de la plupart des serveurs est généralement inférieure à cette valeur.

Impact de l’optimisation sur les métriques surveillées

ATTEINDRE L’ASYMÉTRIE DE LA CIBLE

La figure ci-dessous montre deux instantanés de la répartition de la charge des serveurs dans un POP. Sur la gauche (sans Adaptive Load Balancing), nous voyons un certain nombre de serveurs qui dépassent la cible d’asymétrie (case rouge) avec leur charge supérieure à 1,8 fois la médiane du POP. Sur la droite (avec l’équilibrage de charge adaptatif), nous voyons un meilleur équilibre entre les serveurs, aucun serveur ne présentant une charge supérieure à 1,8 fois la médiane.

Modification de la répartition de la charge avec l’équilibrage de charge adaptatif. Nous remarquons une réduction des serveurs surchargés.

NOMBRE DE HOT FILES ET RÉPARTITION DE LA CHARGE
Ensuite, nous avons examiné comment le nombre de Hot Files a été affecté et les modifications correspondantes de la charge sur chaque serveur. Le graphique ci-dessous montre que le nombre de Hot Files a augmenté lorsque ALB a été activé sur un POP. Ce comportement était attendu car le mécanisme augmente de manière sélective les chances que les fichiers soient déchargés des serveurs avec une charge plus élevée.

Fondamentalement, l’archivage à chaud et l’ALB réduisent la charge sur les serveurs individuels en augmentant le nombre de serveurs qui gèrent des fichiers particuliers. Cela augmente la charge de stockage sur chaque serveur. Cependant, les fichiers supplémentaires choisis pour être répliqués à un moment donné sont relativement faibles par rapport au total des fichiers servis à partir du POP puisqu’ils sont sélectionnés uniquement à partir de serveurs aberrants qui nécessitent un déchargement. Dans la plupart des cas, l’espace de cache supplémentaire utilisé est très faible par rapport à l’espace disque total. Par conséquent, le compromis est intéressant mais important à identifier et à connaître. Dans notre implémentation, nous avons inclus des vérifications de bon état pour valider que l’utilisation du cache n’est pas affectée négativement par cette optimisation.

Nombre de Hot Files. Ce nombre augmente lorsque l’équilibrage de charge adaptatif est activé (marqueur rouge) car les serveurs aberrants sont tentés d’être déchargés.

Le deuxième graphique montre le volume de trafic fourni par chaque serveur sur la même période à ce point de vente. Nous avons observé que lorsque l’équilibrage de charge adaptatif était activé (ligne rouge pointillée), la charge sur les serveurs devenait plus équilibrée. Cela a rendu les serveurs plus résilients au trafic entrant et réduit le risque de surcharge des serveurs.

Répartition de la charge (Mbps) dans un POP entre 05/02-05/04. Lorsque l’équilibrage de charge adaptatif est activé, la distribution devient plus fluide, avec un plus grand nombre de serveurs fournissant le trafic plus proche de la médiane. Cela permet de limiter le risque de surcharge des serveurs par de nouveaux trafics.

TEMPS PASSÉ SUR L’ASYMÉTRIE DE LA CIBLE
Ici, nous avons considéré une expérience dans laquelle un POP a été réglé pour maintenir une asymétrie cible de 1,6x. Dans la figure ci-dessous, la ligne orange montre la distribution de « l’asymétrie du serveur » sur la période d’expérience. En comparant cette distribution à la ligne bleue, qui est la distribution respective pour la période de référence (pas d’équilibrage de charge adaptatif), nous avons observé un déplacement de la charge vers la médiane. Notamment, la « queue » de la distribution a également été réduite de manière significative, le 99e percentile tombant de 2,12 à 1,52, en dessous de l’asymétrie cible.

L’équilibrage de charge adaptatif diminue la charge maximale du serveur et rapproche les charges du serveur de la médiane.

Réduire cette « queue » dans la distribution est le principal objectif de l’optimisation puisque les serveurs de cette queue, c’est-à-dire ceux qui ont la charge la plus élevée, courent un plus grand risque d’être surchargés avec de nouvelles pointes de trafic. Pour quantifier davantage cette réduction, nous avons également mesuré le nombre de minutes pendant lesquelles un serveur a livré du trafic sur la cible pendant les périodes d’expérience avec/sans équilibrage de charge adaptatif :

L’équilibrage de charge adaptatif réduit le temps passé par les serveurs à livrer une charge au-delà d’un seuil cible.

Dans ce cas, nous avons observé une réduction de 88% du temps passé sur l’asymétrie de la cible dans ce pop. C’est un bon indicateur que l’équilibrage de charge adaptatif peut maintenir l’asymétrie de la distribution de charge autour de la valeur souhaitée.

Résultats du déploiement mondial

Après avoir testé l’optimisation sur une poignée de POP sélectionnés et avoir constaté de bons résultats sur les métriques mesurées, nous avons déployé le système sur chaque POP afin de quantifier l’impact agrégé au fil du temps. Comme précédemment, nous avons mesuré le nombre de minutes collectives consacrées par les serveurs dans un POP à livrer du trafic au-dessus de notre asymétrie cible spécifiée (définie sur 1,8 fois la charge moyenne du serveur dans un POP). Le graphique suivant montre deux distributions de minutes passées par les serveurs au-dessus de ce seuil pour 75 pop. La ligne bleue correspond à 4 jours de données de référence et la ligne orange correspond à 4 jours de données d’équilibrage de charge adaptatif. Le décalage global de la distribution vers la gauche montre que les serveurs dans les POP exécutant Adaptive Load Balancing ont passé moins de minutes au-dessus du seuil.

Minutes cumulées consacrées par les serveurs à fournir une charge supérieure au seuil spécifié (1,8 * médiane) sur 4 jours pour tous les pop. Avec l’équilibrage de charge adaptatif, la distribution est décalée vers la gauche, ce qui montre que le mécanisme maintient les charges du serveur en dessous de la déviation cible par rapport à la médiane pendant plus longtemps.

Pour mieux comprendre les répercussions sur les POP individuels, nous avons également enregistré le pourcentage de variation de cette mesure pour chaque POP. Les résultats ont montré que la moitié des POP ont vu une réduction de 70 à 95% du total des serveurs de temps au-dessus de l’asymétrie cible, et presque tous les POP ont vu une réduction du temps passé au-dessus du seuil.

Dans le cadre de nos efforts continus pour améliorer continuellement les performances et la fiabilité de notre CDN, nous avons récemment déployé et évalué une optimisation de la façon dont nous équilibrons la charge du trafic au sein d’un POP. Cette optimisation identifie les serveurs chargés au-delà d’un seuil spécifié par rapport au reste du POP et décharge ces serveurs, en atténuant en particulier le risque d’impact sur les performances en cas de nouvelles pointes de trafic. Les résultats de la production démontrent des améliorations significatives qui ont été cohérentes avec les résultats de simulation précédents en montrant l’efficacité de l’optimisation pour maintenir la répartition de la charge du serveur dans une asymétrie souhaitée. Par conséquent, nous avons maintenant activé cette optimisation à l’échelle mondiale pour l’ensemble du trafic client.

Nous remercions tout particulièrement Angela Chen pour avoir travaillé à la mise en œuvre et au déploiement de ce mécanisme. Merci également à Scott Yeager, Derek Shiell, Marcel Flores, Anant Shah et Reed Morrison pour leur aide aux discussions générales, Colin RASOR, Richard Rymer et Olexandr Rybak pour leur aide à la collecte et à la visualisation des données.