Cet article présente les défis et les pratiques de la surveillance et de l'analyse des ** performances ** des grands centres de données ** Alibaba **.
L'événement phare d'Alibaba est le 11.11 Global Shopping Festival, qui se vend chaque année sur toute la plate-forme pour commémorer la journée des célibataires en Chine.
La figure ci-dessous utilise les données de 2017. Pour vous aider à voir la taille de l'événement, le graphique en haut à gauche montre les chiffres des ventes: environ 25,3 milliards de dollars américains, ce qui est supérieur aux ventes combinées de l'American Thanksgiving, du Black Friday et du Cyber Monday cette année-là. ..
Les experts techniques accordent plus d'importance au graphique de droite. En 2017, la plate-forme cloud d'Alibaba a permis un volume de pointe de 325000 transactions et 256000 paiements par seconde.
Que signifie une telle performance de pointe pour Alibaba? La raison pour laquelle nous sommes particuliers sur la performance est que nous visons à réduire les coûts tout en améliorant continuellement les performances grâce à une innovation constante.
Derrière les chiffres de performances de pointe ci-dessus se cache l'énorme infrastructure logicielle et matérielle qui la sous-tend.
Comme le montre la figure ci-dessus, l'infrastructure d'Alibaba comprend une variété d'applications au plus haut niveau, telles que l'application de commerce électronique Taobao et Tmall, le réseau de distribution Cainiao, l'application de messagerie professionnelle DingTalk, la plate-forme de paiement Alipay et Alibaba Cloud. Existe. Cette variété de scénarios commerciaux est caractéristique de l'économie d'Alibaba.
En bas se trouve un grand centre de données connecté à des millions de machines.
Le niveau intermédiaire est appelé la «plate-forme d'activation» dans Alibaba. Les applications de niveau supérieur les plus proches sont les bases de données, le stockage, les intergiciels et les plates-formes informatiques. Entre les deux se trouvent la planification des ressources, la gestion des clusters et les conteneurs. En bas se trouvent les logiciels système tels que le système d'exploitation, la JVM et la virtualisation.
Les tests de référence sont utiles car vous avez besoin d'un moyen simple et reproductible de mesurer les performances. Cependant, il y a des limites aux tests de référence. En effet, chaque test dépend de son propre environnement d'exploitation défini ainsi que de ses paramètres matériels et logiciels. Ces paramètres peuvent avoir un impact significatif sur les performances. Un autre problème est de savoir si les configurations matérielles et logicielles répondent réellement aux exigences de l'entreprise et fournissent ainsi des résultats typiques.
Les effets observés dans les tests de référence peuvent-ils s'étendre aux environnements de production complexes du monde réel?
Les centres de données d'Alibaba ont des dizaines de milliers d'applications commerciales et des millions de serveurs répartis dans le monde. Par conséquent, lorsque vous envisagez une mise à niveau logicielle ou matérielle dans un centre de données, il est important que les effets observés dans les petits tests de référence puissent effectivement être appliqués à l'environnement de production complexe du centre de données. Ce sera.
Par exemple, différentes applications Java peuvent avoir des capacités JVM différentes affectant des performances différentes, et différents matériels peuvent avoir des résultats de performances différents pour la même application. De tels cas ne sont pas rares. Il n'est pas possible d'exécuter des tests sur chaque application ou matériel, une approche systématique est donc nécessaire pour estimer l'impact global sur les performances des nouvelles fonctionnalités sur différentes applications et différents matériels.
Dans le centre de données, il est important d'évaluer l'impact global sur les performances des mises à niveau logicielles et matérielles. Prenons l'exemple de notre 11.11 Global Shopping Festival. Nous surveillons très attentivement nos indicateurs commerciaux pendant les pics de ventes et de négociation. Mais que faire si les indicateurs commerciaux doublent? Cela signifie-t-il que nous devons doubler le nombre de toutes les machines? Afin de donner la réponse, il est nécessaire de disposer d'une méthode d'évaluation qui montre l'impact de la technologie sur l'entreprise tout en évaluant les capacités techniques. Nous avons proposé de nombreuses innovations et trouvé de nombreuses opportunités pour optimiser les performances, mais nous devons également démontrer la valeur commerciale.
Afin de résoudre les problèmes ci-dessus, nous avons développé une plateforme d'estimation / évaluation / décision de la performance du système (SPEED).
Tout d'abord, SPEED estime ce qui se passe actuellement dans le centre de données. Collectez des données grâce à une surveillance globale et analysez ces données pour détecter le potentiel d'optimisation.
SPEED évalue ensuite les mises à niveau logicielles et matérielles en production en ligne. Par exemple, avant de déployer un nouveau produit matériel, les fournisseurs de matériel effectuent généralement leurs propres tests de performances pour montrer les gains de performances. Cependant, les gains de performances sont spécifiques au scénario de test du fournisseur. Tout ce que nous devons savoir, c'est dans quelle mesure le matériel est adapté à notre cas d'utilisation particulier.
Ce n'est pas facile de répondre. Pour des raisons évidentes, les utilisateurs ne peuvent pas laisser les fournisseurs de matériel tester leurs performances dans leur environnement professionnel. Au lieu de cela, vous devrez effectuer vous-même la version Canary du nouveau matériel. Bien sûr, plus la version Canary est grande, plus l'évaluation est précise, mais l'environnement de production est directement lié à l'entreprise et ne peut pas être très important au début. Pour minimiser les risques, les utilisateurs libèrent généralement des canaris entre une poignée de machines et des dizaines de machines, puis évoluent progressivement jusqu'à des centaines, voire des milliers. ..
Par conséquent, une contribution importante de SPEED est que même de petites versions de canari peuvent fournir des estimations raisonnables, ce qui peut réduire les coûts et atténuer les risques à long terme. À mesure que les versions Canary augmentent en taille, SPEED continue d'améliorer la qualité de l'analyse des performances, aidant les utilisateurs à prendre des décisions importantes.
Le but de la décision n'est pas seulement de décider d'effectuer une mise à niveau matérielle ou logicielle donnée, mais aussi d'acquérir une compréhension globale de la nature des performances de la pile logicielle et matérielle. Comprendre quelles architectures matérielles et logicielles sont les plus adaptées à votre scénario d'application vous aidera à envisager l'orientation de la personnalisation logicielle et matérielle.
L'un des indicateurs de performance les plus populaires dans les centres de données est l'utilisation du processeur. Mais pensez-y. En supposant que l'utilisation moyenne du processeur par machine dans le centre de données est de 50%, la demande d'applications n'augmente plus et les logiciels n'interfèrent pas les uns avec les autres, alors les machines existantes dans le centre de données Le nombre peut-il être divisé par deux? Probablement pas possible.
En raison du grand nombre de charges de travail différentes et de grandes quantités de matériel, le principal défi d'une analyse complète des performances dans le centre de données est de trouver un indicateur de performance globale pour résumer les performances des différentes charges de travail et du matériel. .. Pour autant que nous le sachions, il n'existe actuellement aucune norme unifiée. Chez SPEED, nous avons proposé une métrique appelée Efficacité de l'utilisation des ressources (RUE) pour mesurer l'utilisation des ressources par unité de travail.
Ici, l'utilisation des ressources est le taux d'utilisation des ressources telles que le processeur, la mémoire, le stockage et le réseau, et le travail effectué est la tâche d'interrogation et de traitement des données volumineuses des applications de commerce électronique.
Le concept RUE offre un moyen complet et multiforme d'évaluer les performances. Par exemple, si le côté métier dit "la vitesse de réponse d'une application sur une machine a augmenté", le côté technique considère également que "la charge du système et l'utilisation du CPU augmentent certainement". Dans de tels cas, la réaction naturelle est que vous craignez que la nouvelle fonctionnalité n'ait causé l'échec. Cependant, comme meilleure réponse, vous pouvez également consulter l'index de débit de requête par seconde (QPS). Si QPS est à la hausse, cela peut indiquer que davantage de ressources sont utilisées pour effectuer plus de travail après la sortie de nouvelles fonctionnalités.
De cette manière, les performances doivent être mesurées de manière globale et multiforme. Sinon, des conclusions irrationnelles peuvent être tirées et de réelles opportunités d'optimisation des performances peuvent être manquées.
L'analyse des performances nécessite la collecte de données, mais comment savoir si les données collectées sont correctes?
Prenons l'exemple de l'hyperthreading, une technologie Intel. Les ordinateurs portables modernes ont généralement deux cœurs ou deux cœurs matériels. Lorsque l'hyperthreading est activé, une machine dual-core devient une machine avec quatre threads matériels (CPU logiques).
Dans la figure ci-dessous, le graphique ci-dessus montre une machine avec deux cœurs matériels et l'hyperthreading désactivé. Le gestionnaire de tâches signale que l'utilisation moyenne du processeur de la machine est de 100% car les ressources du processeur des deux cœurs sont épuisées.
Le graphique dans le coin inférieur gauche montre une machine qui a également deux cœurs matériels mais dont l'hyperthreading est activé. L'utilisation moyenne du processeur de la machine est de 50% car elle a utilisé l'un des threads matériels de chaque cœur physique. D'autre part, le graphique en bas à droite montre que sur une machine qui a également deux cœurs matériels, l'hyperthreading est activé et deux threads matériels sur un cœur sont épuisés. En d'autres termes, l'utilisation moyenne du processeur de cette machine est également de 50%.
Il y a un problème ici. En réalité, l'utilisation du processeur indiquée dans le graphique inférieur gauche et l'utilisation du processeur indiquée dans le graphique inférieur droit sont complètement différentes, mais si vous ne collectez que l'utilisation moyenne du processeur de la machine entière, elles sont exactement les mêmes. Vous pouvez voir qu'il y en a.
Comme vous pouvez le constater, lors de l'analyse des données de performance, nous ne pouvons pas nous permettre de ne considérer que le traitement des données et les algorithmes. Vous devez également tenir compte de la manière dont les données sont collectées.
L'hétérogénéité matérielle est un défi majeur pour l'analyse des performances dans les centres de données, mais elle indique également la direction de l'optimisation des performances.
Par exemple, dans la figure ci-dessous, l'architecture Broadwell à gauche représente l'architecture traditionnelle des processeurs de serveurs Intel au cours des dernières années.
Il y a une grande différence entre les deux architectures. Par exemple, Broadwell utilise le mode double anneau, utilisé depuis de nombreuses années, tandis que Skylake change la méthode d'accès à la mémoire en mode maillé. De plus, Skylake a une extension quadruple du cache L2.
Chacune de ces différences a ses forces et ses faiblesses. Vous devez mesurer l'impact de ces différences sur les performances globales et envisager de mettre à niveau votre serveur de centre de données vers Skylake en tenant compte du coût.
Il est important de comprendre les différences matérielles, car elles affectent toutes les applications exécutées sur le matériel. Le matériel que vous utilisez a un impact significatif sur la direction de la personnalisation et de l'optimisation.
L'architecture logicielle des services Internet modernes est très complexe et l'architecture de commerce électronique d'Alibaba en est un excellent exemple. Ces architectures logicielles complexes posent également des défis importants pour l'analyse des performances dans le centre de données.
Pour donner un exemple simple, le côté droit de la figure ci-dessous est l'application de coupon, le coin supérieur gauche est l'application de lieu de promotion à grande échelle et le côté inférieur gauche est l'application de panier. Ce sont des scénarios commerciaux typiques dans le commerce électronique.
Du point de vue du développement Java, chaque scénario métier est une application. Les clients du commerce électronique peuvent choisir un coupon dans le lieu de la promotion, un coupon dans le panier ou ce qu'ils veulent. Du point de vue de l'architecture logicielle, les sites et les paniers d'achat sont deux applications principales, chacune étant un portail pour les applications de coupons. Chaque portail a un itinéraire d'appel différent pour l'application de coupon, et chacun a un impact différent sur les performances.
Par conséquent, lors de l'analyse des performances globales d'une application de coupons, vous devez prendre en compte les diverses associations d'applications complexes et les chemins d'appels dans toute l'architecture de commerce électronique. Des scénarios commerciaux aussi divers et des chemins d'appel complexes sont difficiles à reproduire pleinement dans les tests de référence et nécessitent une évaluation des performances dans un environnement de production.
La figure ci-dessous montre le paradoxe de Simpson, qui est bien connu pour l'analyse de données réelles.
En continuant à partir de l'exemple précédent, supposons que l'application illustrée dans la figure soit une application de coupon. Supposons qu'une nouvelle fonctionnalité S apparaisse pendant la promotion et que la machine utilisée pour libérer le canari représente 1% du total. Selon les métriques RUE, la fonctionnalité S améliore les performances de 8%. Mais ici, l'application de coupon comporte trois groupes différents et, comme indiqué ci-dessus, les groupes sont liés à des applications avec différents portails, donc du point de vue de chaque groupe, la fonctionnalité est la performance de l'application. Diminution.
Avec le même jeu de données et les mêmes critères, les résultats obtenus par l'analyse globale globale sont exactement le contraire des résultats obtenus par l'analyse individuelle de chaque pièce. C'est le paradoxe de Simpson.
Vous devez être conscient que vous pouvez voir les résultats globaux de l'évaluation, ou vous pouvez voir les résultats pour chaque composant. Dans cet exemple, l'approche correcte consiste à examiner chaque groupe et à conclure que la fonction S dégrade en fait les performances et nécessite des modifications et une optimisation supplémentaires.
Le paradoxe de Simpson nous rappelle pourquoi il est essentiel de prêter attention aux divers pièges potentiels dans l'analyse des performances. Prendre des décisions basées sur des métriques irréfléchies et des données non représentatives, ou prendre des décisions qui ne tiennent pas compte des architectures matérielles et logicielles, peut être très coûteux pour l'entreprise.