Comparaison des performances des serveurs basés sur ARM sur GCP, AWS et Azure

Shirui Zhao

August 12, 2022

Ecosystem

Contexte

La conception de l'architecture des microprocesseurs RISC utilise un ensemble d'instructions hautement optimisé pour permettre aux petits processeurs de gérer efficacement des tâches complexes. ARM est devenu la pierre angulaire du plus grand écosystème informatique et des appareils mobiles au monde, et est considéré par de nombreux experts comme l'avenir du cloud computing en raison de sa faible consommation d'énergie, de sa flexibilité en matière de licences et de son faible coût.

Par conséquent, les principaux fournisseurs de cloud, dirigés par AWS, Google Cloud Platform (GCP) et Azure, ont successivement lancé des serveurs basés sur l'architecture ARM. Parmi eux, AWS a lancé le premier processeur de serveur AWS Graviton basé sur l'architecture ARM en 2018.

AWS Graviton

AWS Graviton est une série de processeurs de serveurs basés sur l'architecture ARM lancée par AWS en 2018. La première génération de processeurs AWS Graviton utilise des puces personnalisées et des cœurs Neoverse 64 bits.

Lancés en 2020, les processeurs AWS Graviton2 représentent un bond en avant majeur en termes de performances et de fonctionnalités par rapport à la première génération de processeurs AWS Graviton. Une performance 7 fois plus rapide, 4 fois plus de cœurs, 2 fois plus de cache, une mémoire 5 fois plus rapide, et plus encore.

Les derniers processeurs AWS Graviton3, qui seront lancés fin mai 2022, sont basés sur la conception plus avancée Neoverse V1. Ils offrent jusqu'à deux fois la performance en virgule flottante, deux fois la performance cryptographique et trois fois la performance en ML par rapport aux processeurs AWS Graviton2, y compris le support de bfloat16. La figure suivante montre les principaux modèles équipés des processeurs AWS Graviton3 :

Processeurs AWS Graviton3

Google Cloud Platform T2A

La machine virtuelle Tau T2A de Google Cloud Platform (GCP) est une prévisualisation de la première machine virtuelle basée sur ARM de Google en juillet 2022, alimentée par les processeurs Ampere® Altra® Arm basés sur la conception Neoverse N1. Les machines virtuelles Tau T2A sont disponibles dans une variété de formes prédéfinies avec jusqu'à 48 vCPU par machine virtuelle et 4 Go de mémoire par vCPU.

Elles offrent jusqu'à 32 Gbps de bande passante réseau et une large gamme d'options de stockage attaché au réseau, ce qui rend la machine virtuelle Tau T2A adaptée aux charges de travail extensibles, y compris les serveurs web, les microservices conteneurisés, le traitement des enregistrements de données, le transcodage multimédia et les applications Java. Les principaux modèles sont les suivants :

Machine virtuelle Tau T2A

Machines virtuelles Azure basées sur ARM

En avril, Microsoft a annoncé une prévisualisation de sa famille de machines virtuelles Azure basées sur les processeurs Ampere® Altra® Arm. Les nouvelles machines virtuelles sont conçues pour exécuter efficacement des charges de travail extensibles, des serveurs web, des serveurs d'applications, des bases de données open source, des applications cloud-native et riches en .NET, des applications Java, des serveurs de jeux, des serveurs multimédias, et plus encore. La nouvelle série de machines virtuelles comprend les machines virtuelles générales Dpsv5 et les machines virtuelles optimisées pour la mémoire Epsv5. Les principaux modèles sont les suivants :

Machines virtuelles Dpsv5 et Epsv5

Test de performance des serveurs ARM des trois fournisseurs de cloud

Dans cet article, nous refléterons la performance globale de chaque serveur en testant la performance monocœur. Ici, la passerelle API Apache APISIX, intensive en IO réseau, est sélectionnée pour lier un seul cœur de CPU pour des tests de stress sur trois modèles : AWS c7g.large, GCP t2a-standard-2 et Azure D2ps v5 (appartenant à la série Dpsv5, CPU bicœur), et analyser la performance du serveur à travers les deux indicateurs de QPS et de délai de réponse.

Apache APISIX est une passerelle API cloud-native, haute performance et extensible. Basée sur NGNIX + LuaJIT et etcd, APISIX possède les caractéristiques de routage dynamique et de chargement à chaud de plugins par rapport aux passerelles API traditionnelles, ce qui la rend particulièrement adaptée à la gestion des API sous l'architecture cloud native.

Apache APISIX

Ensuite, nous utiliserons le script de test de performance open source officiel d'APISIX pour les tests.

Cas de test

Nous testerons la performance d'Apache APISIX dans deux scénarios typiques afin d'obtenir des données de test plus réalistes et riches :

  • Scénario 1 : Single upstream. Dans ce scénario, un seul upstream (sans aucun plugin) est utilisé pour tester la performance d'APISIX en mode de proxy pur de retour à l'origine.
  • Scénario 2 : Single upstream + multiple plugins. Ce scénario utilise un seul upstream avec plusieurs plugins et deux plugins sont utilisés ici. Il teste principalement la performance d'APISIX lorsque les deux plugins de consommation de performance de base, limit-count et prometheus, sont activés.

Résultats des tests

La figure ci-dessous montre les résultats du test QPS (requêtes par seconde) et plus le nombre est élevé, meilleure est la performance.

Résultats QPS

La figure ci-dessous montre les résultats du test de délai de réponse en millisecondes. Plus le nombre est petit, meilleure est la performance.

Résultats du délai de réponse

Du point de vue du QPS et du délai de réponse, sous des passerelles API intensives en IO réseau comme Apache APISIX, AWS C7g a une amélioration de performance de 100% par rapport à GCP T2A, et Azure Dpsv5 a une avance de performance d'environ 15% par rapport à GCP T2A.

Comparaison du rapport coût-performance

Comme cet article se concentre uniquement sur le test de la performance des machines ARM de différents fournisseurs de cloud, nous ignorerons le changement de "le même nombre de cœurs CPU avec une mémoire différente", et analyserons le rapport coût-performance d'AWS Graviton3 et de GCP T2A uniquement du point de vue du nombre de cœurs CPU.

Dans le scénario de test actuel, le rapport coût-performance peut être compris comme : QPS/coût.

Le tableau ci-dessous compare les prix horaires des serveurs pour différents cœurs pour AWS C7g (US East Ohio), GCP T2A (us-central1) et Azure Dpsv5 (East US) :

Série de VM / vCPU1248163264
AWS C7g$0.0361$0.0723$0.1445$0.289$0.5781$1.1562$1.7342
GCP T2A$0.0385$0.077$0.154$0.308$0.616$1.232$1.848
Azure Dpsv5*$0.077$0.154$0.308$0.616$1.232$1.848

Le tableau suivant résume le coût et le rapport coût-performance d'AWS c7g.large et de GCP t2a-standard-2 fonctionnant pendant un an, en se référant aux données QPS pour un seul upstream dans le test de performance d'Apache APISIX. Plus le nombre est élevé, plus le QPS peut être obtenu au prix unitaire.

Coût annuelRapport coût-performance (QPS/coût)
AWS c7g.large$633.336.3
GCP t2a-standard-2$674.516.8
Azure D2ps v5$398.0(41% off)33.6

D'après les résultats des tests, AWS C7g est plus rentable que GCP T2A et Azure Dpsv5. Bien qu'Azure Dpsv5 n'ait qu'une amélioration de performance de 15% par rapport à GCP T2A, le rapport coût-performance est presque le double.

Résumé

AWS a lancé le premier processeur basé sur ARM, AWS Graviton, en 2018. Il avait environ 4 ans d'avance sur GCP pour le déploiement du domaine des serveurs basés sur ARM. Aujourd'hui, le processeur AWS Graviton en est à sa troisième génération.

À travers les résultats des tests de performance et l'analyse du rapport prix-performance d'Apache APISIX, nous pouvons voir qu'AWS Graviton3 offre une performance et une rentabilité supérieures à GCP T2A et Azure Dpsv5. Cela est indissociable du fait qu'AWS est impliqué depuis de nombreuses années dans le domaine des serveurs basés sur ARM.

De plus, nous avons utilisé Apache APISIX lié à des tests monocœurs lors de nos tests, et le rapport prix-performance d'AWS Graviton 3 pourrait être encore amélioré si plusieurs cœurs étaient utilisés.

Référence

Tags: