Comparación de rendimiento de servidores basados en ARM en GCP, AWS y Azure

Shirui Zhao

August 12, 2022

Ecosystem

Antecedentes

El diseño de la arquitectura de microprocesadores RISC utiliza un conjunto de instrucciones altamente optimizado para permitir que los procesadores pequeños manejen tareas complejas de manera eficiente. ARM se ha convertido en la piedra angular del ecosistema de computación más grande del mundo y de los dispositivos móviles, y muchos expertos lo consideran el futuro de la computación en la nube debido a su bajo consumo de energía, licencias flexibles y bajo costo.

Por lo tanto, los principales proveedores de la nube liderados por AWS, Google Cloud Platform (GCP) y Azure han lanzado sucesivamente servidores con arquitectura ARM. Entre ellos, AWS lanzó el primer procesador de servidor AWS Graviton basado en la arquitectura ARM en 2018.

AWS Graviton

AWS Graviton es una serie de procesadores de servidor basados en la arquitectura ARM lanzados por AWS en 2018. La primera generación de procesadores AWS Graviton utiliza chips personalizados y núcleos Neoverse de 64 bits.

Lanzados en 2020, los procesadores AWS Graviton2 representan un gran salto en rendimiento y funcionalidad en comparación con los procesadores AWS Graviton de primera generación. Ofrecen un rendimiento 7 veces más rápido, 4 veces más núcleos, 2 veces más caché, 5 veces más memoria rápida y más.

Los últimos procesadores AWS Graviton3, que se lanzarán a finales de mayo de 2022, están basados en el diseño más avanzado de Neoverse V1. Ofrecen hasta el doble de rendimiento en operaciones de punto flotante, el doble de rendimiento criptográfico y tres veces el rendimiento en ML en comparación con los procesadores AWS Graviton2, incluyendo soporte para bfloat16. La siguiente figura muestra los principales modelos equipados con procesadores AWS Graviton3:

Procesadores AWS Graviton3

Google Cloud Platform T2A

La máquina virtual Tau T2A de Google Cloud Platform (GCP) es una vista previa de la primera máquina virtual basada en ARM de Google en julio de 2022, impulsada por procesadores Ampere® Altra® Arm basados en el diseño Neoverse N1. Las máquinas virtuales Tau T2A vienen en una variedad de formas predefinidas con hasta 48 vCPUs por VM y 4 GB de memoria por vCPU.

Ofrecen hasta 32 Gbps de ancho de banda de red y una amplia gama de opciones de almacenamiento conectado a la red, lo que hace que la máquina virtual Tau T2A sea adecuada para cargas de trabajo escalables, incluyendo servidores web, microservicios en contenedores, procesamiento de registros de datos, transcodificación de medios y aplicaciones Java. Los principales modelos son los siguientes:

Máquina virtual Tau T2A

Máquinas virtuales basadas en ARM de Azure

En abril, Microsoft anunció una vista previa de su familia de máquinas virtuales de Azure basadas en procesadores Ampere® Altra® Arm. Las nuevas máquinas virtuales están diseñadas para ejecutar eficientemente cargas de trabajo escalables, servidores web, servidores de aplicaciones, bases de datos de código abierto, aplicaciones nativas de la nube y ricas aplicaciones .NET, aplicaciones Java, servidores de juegos, servidores de medios y más. La nueva serie de máquinas virtuales incluye las máquinas virtuales generales Dpsv5 y las optimizadas para memoria Epsv5. Los principales modelos son los siguientes:

Máquinas virtuales Dpsv5 y Epsv5

Prueba de rendimiento de servidores ARM de tres proveedores de la nube

En este artículo, reflejaremos el rendimiento general de cada servidor probando el rendimiento de un solo núcleo. Aquí, se selecciona la puerta de enlace de API Apache APISIX, intensiva en E/S de red, para vincular un solo núcleo de CPU y realizar pruebas de estrés en tres modelos: AWS c7g.large, GCP t2a-standard-2 y Azure D2ps v5 (perteneciente a la serie Dpsv5, CPU de doble núcleo), y analizar el rendimiento del servidor a través de los dos indicadores de QPS y retardo de respuesta.

Apache APISIX es una puerta de enlace de API nativa de la nube, de alto rendimiento y escalable. Basada en NGNIX + LuaJIT y etcd, APISIX tiene características de enrutamiento dinámico y recarga en caliente de complementos en comparación con las puertas de enlace de API tradicionales, lo que la hace especialmente adecuada para la gestión de API bajo arquitecturas nativas de la nube.

Apache APISIX

A continuación, utilizaremos el script de prueba de rendimiento de código abierto oficial de APISIX para realizar las pruebas.

Caso de prueba

Probaremos el rendimiento de Apache APISIX bajo dos escenarios típicos para obtener datos de prueba más realistas y ricos:

  • Escenario 1: Un solo upstream. En este escenario, se utiliza un solo upstream (sin ningún complemento) para probar el rendimiento de APISIX en modo de proxy puro de retorno al origen.
  • Escenario 2: Un solo upstream + múltiples complementos. Este escenario utiliza un solo upstream con múltiples complementos y aquí se utilizan dos complementos. Principalmente prueba el rendimiento de APISIX cuando están habilitados los dos complementos principales que consumen rendimiento, limit-count y prometheus.

Resultados de la prueba

La siguiente figura muestra el resultado de la prueba de QPS (consultas por segundo) y cuanto mayor sea el número, mejor será el rendimiento.

Resultado de QPS

La siguiente figura muestra los resultados de la prueba de retardo de respuesta en milisegundos. Cuanto menor sea el número, mejor será el rendimiento.

Resultados de retardo de respuesta

Desde la perspectiva de QPS y retardo de respuesta, bajo puertas de enlace de API intensivas en E/S de red como Apache APISIX, AWS C7g tiene una mejora de rendimiento del 100% en comparación con GCP T2A, y Azure Dpsv5 tiene una ventaja de rendimiento de aproximadamente el 15% en comparación con GCP T2A.

Comparación de relación costo-rendimiento

Dado que este artículo solo se centra en probar el rendimiento de las máquinas ARM de diferentes proveedores de la nube, ignoraremos el cambio de "el mismo número de núcleos de CPU con diferente memoria" y analizaremos la relación costo-rendimiento de AWS Graviton3 y GCP T2A solo desde la perspectiva del número de núcleos de CPU.

En el escenario de prueba actual, la relación costo-rendimiento puede entenderse como: QPS/costo.

La siguiente tabla compara los precios por hora de los servidores para diferentes núcleos de AWS C7g (US East Ohio), GCP T2A (us-central1) y Azure Dpsv5 (East US):

Serie 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

La siguiente tabla resume el costo y la relación costo-rendimiento de AWS c7g.large y GCP t2a-standard-2 en funcionamiento durante un año, refiriéndose a los datos de QPS para un solo upstream en la prueba de rendimiento de Apache APISIX. Cuanto mayor sea el número, mayor será el QPS que se puede obtener al precio unitario.

Costo anualRelación costo-rendimiento (QPS/costo)
AWS c7g.large$633.336.3
GCP t2a-standard-2$674.516.8
Azure D2ps v5$398.0(41% off)33.6

De los resultados de la prueba, AWS C7g es más rentable que GCP T2A y Azure Dpsv5. Aunque Azure Dpsv5 tiene solo una mejora de rendimiento del 15% en comparación con GCP T2A, la relación costo-rendimiento es casi el doble.

Resumen

AWS lanzó el primer procesador basado en ARM, AWS Graviton, en 2018. Fue aproximadamente 4 años antes que GCP en el despliegue del campo de servidores basados en ARM. Ahora el procesador AWS Graviton ha llegado a la tercera generación.

A través de los resultados de las pruebas de rendimiento y el análisis de la relación precio-rendimiento de Apache APISIX, podemos ver que AWS Graviton3 tiene un mayor rendimiento y es más rentable que GCP T2A y Azure Dpsv5. Esto es inseparable del hecho de que AWS ha estado profundamente involucrado en el campo de los servidores basados en ARM durante muchos años.

Además, utilizamos pruebas de un solo núcleo vinculado a Apache APISIX durante nuestras pruebas, y la relación precio-rendimiento de AWS Graviton 3 podría mejorar aún más si se utilizan múltiples núcleos.

Referencia

Tags: