Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Plus d'un milliard d'adresses IP uniques transitent chaque jour par le réseau Cloudflare ; il traite plus de 11 millions de requêtes HTTP par seconde ; elle se trouve à moins de 100 ms de 95 % de la population Internet. Notre réseau s'étend sur 200 villes dans plus de 90 pays et notre équipe d'ingénieurs a construit une infrastructure extrêmement rapide et fiable.

Nous sommes très fiers de notre travail et nous nous engageons à contribuer à faire d'Internet un endroit meilleur et plus sûr. Les ingénieurs matériels de Cloudflare ont une compréhension approfondie des serveurs et de leurs composants pour comprendre et sélectionner le meilleur matériel afin d'optimiser ses performances.

Notre pile logicielle gère des charges informatiques élevées et dépend fortement du processeur, ce qui oblige nos ingénieurs à optimiser continuellement l'efficacité et la fiabilité de Cloudflare à chaque niveau de la pile. Côté serveur, le moyen le plus simple d’augmenter la puissance de traitement consiste à ajouter des cœurs de processeur. Plus un serveur peut contenir de cœurs, plus il peut traiter de données. Ceci est important pour nous car la variété de nos produits et de nos clients augmente avec le temps, et la croissance des demandes nécessite des performances accrues de la part des serveurs. Pour augmenter leurs performances, nous avons dû augmenter la densité des cœurs - et c'est exactement ce que nous avons réalisé. Nous fournissons ci-dessous des données détaillées sur les processeurs pour serveurs que nous avons déployés depuis 2015, y compris le nombre de cœurs :

-
Sexe 6
Sexe 7
Sexe 8
Sexe 9

Mise en route
2015
2016
2017
2018

Processeur
Intel Xeon E5-2630 v3
Intel Xeon E5-2630 v4
Intel Xeon Silver 4116
Intel Xeon Platine 6162

Noyaux physiques
2 x 8
2 x 10
2 x 12
2 x 24

TDP
2 x 85W
2 x 85W
2 x 85W
2 x 150W

TDP par cœur
10.65W
8.50W
7.08W
6.25W

En 2018, nous avons fait un grand bond en avant dans le nombre total de cœurs par serveur avec la Gen 9. L'impact environnemental a été réduit de 33% par rapport à la 8ème génération, ce qui nous donne la possibilité d'augmenter le volume et la puissance de calcul par rack. Exigences de conception pour la dissipation thermique (Puissance de conception thermique, TDP) sont mentionnés pour souligner que notre efficacité énergétique a également augmenté au fil du temps. Cet indicateur est important pour nous : premièrement, nous voulons émettre moins de carbone dans l’atmosphère ; Deuxièmement, nous voulons utiliser au mieux l’énergie des centres de données. Mais nous savons que nous avons un objectif à atteindre.

Notre principale mesure déterminante est le nombre de requêtes par watt. Nous pouvons augmenter le nombre de requêtes par seconde en ajoutant des cœurs, mais nous devons respecter notre budget énergétique. Nous sommes limités par l'infrastructure électrique du centre de données qui, associée à nos modules de distribution d'énergie sélectionnés, nous donne une certaine limite supérieure pour chaque rack de serveur. L'ajout de serveurs à un rack augmente la consommation d'énergie. Les coûts d'exploitation augmenteront considérablement si nous dépassons la limite énergétique par rack et devons ajouter de nouveaux racks. Nous devons augmenter la puissance de traitement tout en restant dans la même plage de consommation électrique, ce qui augmentera les demandes par watt, notre indicateur clé.

Comme vous l’avez peut-être deviné, nous avons soigneusement étudié la consommation énergétique dès la phase de conception. Le tableau ci-dessus montre que nous ne devrions pas perdre de temps à déployer des processeurs plus gourmands en énergie si le TDP par cœur est supérieur à celui de la génération actuelle - cela aura un impact négatif sur notre métrique, les demandes par watt. Nous avons soigneusement étudié les systèmes prêts à fonctionner pour notre génération X sur le marché et avons pris une décision. Nous passons de notre conception à double socket Intel Xeon Platinum 48 à 6162 cœurs à une conception à socket unique AMD EPYC 48 à 7642 cœurs.

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

-
Intel
AMD

Processeur
Xeon Platinum 6162
EPYC 7642

Microarchitecture
"Lake Sky"
«Zen 2»

Nom du code
"Skylake SP"
"Rome"

Processus technique
14nm
7nm

noyaux
2 x 24
48

fréquence
1.9 GHz
2.4 GHz

Cache/socket L3
24 x 1.375 Mo
16 x 16 Mo

Mémoire/socket
6 canaux, jusqu'à DDR4-2400
8 canaux, jusqu'à DDR4-3200

TDP
2 x 150W
225W

PCIe/prise
48 voies
128 voies

EST UN
x86-64
x86-64

D'après les spécifications, il ressort clairement que la puce d'AMD nous permettra de conserver le même nombre de cœurs tout en abaissant le TDP. La 9ème génération avait un TDP par cœur de 6,25 W, et la Xème génération ce sera de 4,69 W. Réduit de 25%. Grâce à l'augmentation de la fréquence et peut-être à une conception plus simple avec un seul socket, on peut supposer que la puce AMD fonctionnera mieux dans la pratique. Nous effectuons actuellement divers tests et simulations pour voir dans quelle mesure AMD fonctionnera mieux.

Pour l'instant, notons que le TDP est une métrique simplifiée issue des spécifications du fabricant, que nous avons utilisée dès les premières étapes de la conception du serveur et de la sélection du CPU. Une recherche rapide sur Google révèle qu'AMD et Intel ont des approches différentes pour définir le TDP, ce qui rend la spécification peu fiable. La consommation électrique réelle du processeur, et plus important encore, la consommation électrique du serveur, est ce que nous utilisons réellement pour prendre notre décision finale.

État de préparation de l'écosystème

Pour commencer notre parcours vers le choix de notre prochain processeur, nous avons examiné une large gamme de processeurs de différents fabricants qui correspondaient bien à notre pile logicielle et à nos services (écrits en C, LuaJIT et Go). Nous avons déjà décrit en détail un ensemble d'outils de mesure de la vitesse dans l'un de nos articles de blog. Dans ce cas, nous avons utilisé le même ensemble : il nous permet d'évaluer l'efficacité du processeur dans un délai raisonnable, après quoi nos ingénieurs peuvent commencer à adapter nos programmes à un processeur spécifique.

Nous avons testé une variété de processeurs avec différents nombres de cœurs, de sockets et de fréquences. Puisque cet article explique pourquoi nous avons opté pour l'AMD EPYC 7642, tous les graphiques de ce blog se concentrent sur les performances des processeurs AMD par rapport à l'Intel Xeon Platinum 6162 de notre 9ème génération.

Les résultats correspondent aux mesures d'un serveur avec chaque variante de processeur, c'est-à-dire avec deux processeurs Intel à 24 cœurs ou avec un processeur AMD à 48 cœurs (serveur pour Intel avec deux sockets et serveur pour AMD EPYC avec un). Dans le BIOS, nous définissons les paramètres correspondant aux serveurs en cours d'exécution. Il s'agit de 3,03 GHz pour AMD et de 2,5 GHz pour Intel. En simplifiant considérablement, nous prévoyons qu'avec le même nombre de cœurs, AMD fonctionnera 21 % mieux qu'Intel.

Cryptographie

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Cela semble prometteur pour AMD. Ses performances sont 18 % supérieures en matière de cryptographie à clé publique. Avec une clé symétrique, il perd face aux options de cryptage AES-128-GCM, mais ses performances sont globalement comparables.

compression

Sur les serveurs Edge, nous compressons beaucoup de données pour économiser de la bande passante et augmenter la vitesse de diffusion du contenu. Nous transmettons les données via les bibliothèques C zlib et brotli. Tous les tests ont été exécutés sur le fichier HTML blog.cloudflare.com en mémoire.

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

AMD a gagné en moyenne 29 % en utilisant gzip. Dans le cas de brotli, les résultats sont encore meilleurs sur les tests de qualité 7, que nous utilisons pour la compression dynamique. Sur le test brotli-9, il y a une forte baisse - nous expliquons cela par le fait que Brotli consomme beaucoup de mémoire et déborde le cache. Cependant, AMD gagne largement.

Beaucoup de nos services sont écrits en Go. Dans les graphiques suivants, nous vérifions la vitesse de cryptographie et de compression dans Go avec RegExp sur des lignes de 32 Ko à l'aide de la bibliothèque de chaînes.

Allez à la cryptographie

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Allez à la compression

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Allez regexp

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Allez les cordes

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

AMD obtient de meilleurs résultats dans tous les tests avec Go, à l'exception de ECDSA P256 Sign, où il était en retard de 38 % - ce qui est étrange, étant donné qu'il a obtenu des résultats 24 % meilleurs en C. Cela vaut la peine de comprendre ce qui se passe là-bas. Dans l'ensemble, AMD ne gagne pas grand-chose, mais affiche toujours les meilleurs résultats.

LuaJIT

Nous utilisons souvent LuaJIT sur la stack. C'est la colle qui maintient toutes les parties de Cloudflare ensemble. Et nous sommes heureux qu'AMD ait gagné ici aussi.

Dans l'ensemble, les tests montrent que l'EPYC 7642 est plus performant que deux Xeon Platinum 6162. AMD perd sur quelques tests - par exemple, AES-128-GCM et Go OpenSSL ECDSA-P256 Sign - mais gagne en moyenne sur tous les autres. de 25% .

Simulation de charge de travail

Après nos tests rapides, nous avons exécuté les serveurs via un autre ensemble de simulations dans lesquelles une charge synthétique est appliquée à la pile logicielle de pointe. Ici, nous simulons une charge de travail de scénario avec différents types de demandes pouvant être rencontrées dans le travail réel. Les requêtes varient en termes de volume de données, de protocoles HTTP ou HTTPS, de sources WAF, de Workers et de nombreuses autres variables. Vous trouverez ci-dessous une comparaison du débit des deux CPU pour les types de requêtes que nous rencontrons le plus souvent.

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Les résultats du graphique sont mesurés par rapport à la référence des machines Intel de 9e génération, normalisées à une valeur de 1,0 sur l'axe des x. Par exemple, en prenant de simples requêtes de 10 Ko via HTTPS, nous pouvons voir qu'AMD fait 1,5 fois mieux qu'Intel en termes de requêtes par seconde. En moyenne, AMD a obtenu des résultats 34 % supérieurs à ceux d'Intel pour ces tests. Considérant que le TDP pour un seul AMD EPYC 7642 est de 225 W, et pour deux processeurs Intel est de 300 W, il s'avère qu'en termes de « requêtes par watt », AMD affiche des résultats 2 fois meilleurs qu'Intel !

À ce stade, nous penchions déjà clairement vers l'option de socket unique pour l'AMD EPYC 7642 comme futurs processeurs Gen X. Nous étions très intéressés de voir comment les serveurs AMD EPYC fonctionneraient dans un travail réel, et nous avons immédiatement envoyé plusieurs serveurs à certains proviennent de centres de données.

Du vrai travail

La première étape, bien entendu, a été de préparer les serveurs à travailler en conditions réelles. Toutes les machines de notre flotte fonctionnent avec les mêmes processus et services, ce qui offre une excellente opportunité de comparer correctement les performances. Comme la plupart des centres de données, nous avons déployé plusieurs générations de serveurs et nous rassemblons nos serveurs en clusters afin que chaque classe contienne des serveurs à peu près des mêmes générations. Dans certains cas, cela peut entraîner des courbes de recyclage différentes selon les clusters. Mais pas chez nous. Nos ingénieurs ont optimisé l'utilisation du processeur pour toutes les générations de sorte que, que le processeur d'une machine particulière ait 8 ou 24 cœurs, l'utilisation du processeur est généralement la même que celle des autres.

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Le graphique illustre notre commentaire sur la similarité d'utilisation : il n'y a pas de différence significative entre l'utilisation de processeurs AMD dans les serveurs de génération Gen X et l'utilisation de processeurs Intel dans les serveurs de génération Gen 9. Cela signifie que les serveurs de test et de base sont chargés de la même manière. . Super. C'est exactement ce que nous recherchons sur nos serveurs, et nous en avons besoin pour une comparaison équitable. Les deux graphiques ci-dessous montrent le nombre de requêtes traitées par un cœur de processeur et tous les cœurs au niveau du serveur.

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération
Requêtes par cœur

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération
Requêtes au serveur

On constate qu’AMD traite en moyenne 23 % de requêtes en plus. Pas mal du tout! Nous avons souvent écrit sur notre blog sur les moyens d'augmenter les performances de la génération 9. Et maintenant, nous avons le même nombre de cœurs, mais AMD fait plus de travail avec moins de puissance. Il ressort immédiatement des spécifications concernant le nombre de cœurs et le TDP qu'AMD offre une plus grande vitesse avec une plus grande efficacité énergétique.

Mais comme nous l'avons déjà mentionné, le TDP n'est pas une spécification standard et n'est pas la même pour tous les fabricants, alors regardons la consommation d'énergie réelle. En mesurant la consommation énergétique du serveur en parallèle avec le nombre de requêtes par seconde, nous avons obtenu le graphique suivant :

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération

Sur la base des requêtes par seconde et par watt dépensé, les serveurs Gen X fonctionnant sur des processeurs AMD sont 28 % plus efficaces. On pourrait s'attendre à plus, étant donné que le TDP d'AMD est inférieur de 25 %, mais il ne faut pas oublier que le TDP est une caractéristique ambiguë. Nous avons vu que la consommation électrique réelle d'AMD est presque identique au TDP indiqué à des fréquences bien supérieures à la base ; Intel n'a pas ça. C'est une autre raison pour laquelle le TDP ne constitue pas une estimation fiable de la consommation d'énergie. Les processeurs Intel de nos serveurs Gen 9 sont intégrés dans un système multi-nœuds, tandis que les processeurs AMD fonctionnent dans des serveurs au facteur de forme 1U standard. Cela n'est pas en faveur d'AMD, puisque les serveurs multi-nœuds devraient offrir une plus grande densité avec moins de consommation d'énergie par nœud, mais AMD a quand même dépassé Intel en termes de consommation d'énergie par nœud.

Dans la plupart des comparaisons entre spécifications, simulations de tests et performances réelles, la configuration 1P AMD EPYC 7642 a été nettement meilleure que la 2P Intel Xeon 6162. Dans certaines conditions, AMD peut fonctionner jusqu'à 36 % mieux, et nous pensons qu'en optimisant matériel et logiciel, nous pouvons réaliser cette amélioration sur une base continue.

Il s'avère qu'AMD a gagné.

Des graphiques supplémentaires montrent la latence moyenne et la latence p99 exécutant NGINX sur une période de 24 heures. En moyenne, les processus sur AMD étaient 25 % plus rapides. Sur p99, il fonctionne 20 à 50 % plus rapidement selon l'heure de la journée.

Conclusion

Les ingénieurs en matériel et performances de Cloudflare effectuent un nombre important de tests et de recherches pour déterminer la meilleure configuration de serveur pour nos clients. Nous aimons travailler ici parce que nous pouvons résoudre de gros problèmes comme ceux-ci, et nous pouvons vous aider à résoudre vos problèmes avec des services tels que l'informatique de pointe sans serveur et une gamme de solutions de sécurité comme Magic Transit, Argo Tunnel et la protection DDoS. Tous les serveurs du réseau Cloudflare sont configurés pour fonctionner de manière fiable, et nous essayons toujours de rendre chaque nouvelle génération de serveurs meilleure que la précédente. Nous pensons que l'AMD EPYC 7642 est la réponse en matière de processeurs Gen X.

Grâce à Cloudflare Workers, les développeurs déploient leurs applications sur notre réseau en expansion à travers le monde. Nous sommes fiers de permettre à nos clients de se concentrer sur l'écriture de code tout en nous concentrant sur la sécurité et la fiabilité dans le cloud. Et aujourd'hui, nous sommes encore plus heureux d'annoncer que leur travail sera déployé sur nos serveurs de génération Gen X exécutant des processeurs AMD EPYC de deuxième génération.

Cloudflare choisit les processeurs AMD pour les serveurs Edge de dixième génération
Processeurs EPYC 7642, nom de code "Rome" [Rome]

En utilisant l'EPYC 7642 d'AMD, nous avons pu augmenter nos performances et faciliter l'extension de notre réseau à de nouvelles villes. Rome ne s'est pas construite en un jour, mais elle sera bientôt plus proche de beaucoup d'entre vous.

Au cours des dernières années, nous avons expérimenté de nombreuses puces x86 d'Intel et d'AMD, ainsi que des processeurs ARM. Nous espérons que ces fabricants de processeurs continueront à travailler avec nous à l’avenir afin que nous puissions tous construire ensemble un meilleur Internet.

Source: habr.com

Ajouter un commentaire