¿Merece la pena irse a la Cloud IaaS? Benchmark de VM en Azure.

Sitio dedicado a Microsoft Azure y otras tecnologías Cloud

Guepardo corriendo

Una de las dudas que más plantea la migración de nuestras aplicaciones a máquinas virtuales en Azure es el rendimiento.

Y para eliminar las principales dudas he realizado un pequeño estudio sobre las prestaciones de estas máquinas virtuales, llevándome una sorpresa que -supongo- compartiras conmigo.

El contexto y la prueba

Pruebas de Performance Test como Integer Math, Prime Numbers, Memory Read Cache, etc.

La primera dificultad es encontrar un aplicación de benchmark que me pueda valer para las máquinas virtuales. Lo cual no es trivial.

Estas máquinas no se plasman de forma «normal«, y la aplicación no consigue detectar el tipo de tarjeta gráfica sobre la que poder correr los test de GPU.

También el procesador es raruno, la memoria, y hasta los discos duros son de marca irreconocible.

De perdidos al río, he escogido la aplicación Performance Test de la casa PassMark porque… leí en algún sitio que la habían usado para hacer pruebas similares a las que quiero hacer, y porque el diseño gráfico de los resultados es limpio y bonito.

No es el mejor motivo del mundo, pero me vale para comparar casi todo. Y las pruebas no están nada mal.

Resultados

A continuación pongo los resultados ordenados por la máquina con menos puntuación a la que más ha conseguido; y finalmente muestro el resultado de la máquina de control con las que he comparado a todas.

NA. Las estadísticas están escritas dentro del texto alternativo de las imágenes para que puedas ser accesibles.

D8s_V3 – 8 nucleos – 32Gb Ram – SSD Standar de 127 Gb.295€/mes
Curiosamente, esta es mi máquina de desarrollo; la que utilizo para las formaciones; y corre Docker, Service Fabric y el SDK de Azure al completo, además de tener varios Visual Studio y decenas de aplicaciones. Y es la peor, la más lenta y la de peor prestaciones/coste.

PassMark - 1009
CPU - 5736
2D - 85
Memory - 1973
Disk - 1903
Precio - 295€/mes

B20ms – 20 núcleos – 80Gb RAM – SSD Premium 127Gb615€/mes
Voy a subir la apuesta subiendo el número de núcleos, la velocidad del disco duro, pero conteniendo los costes. Donde más le gano es en procesador. Lo malo es que hay que recordar que las series B funcionan en un modo ráfaga, por lo cual esta potencia realmente la voy a tener durante un tiempo muy limitado.

PassMark - 1815
CPU - 18582
2D - 185
Memory - 2215
Disk - 902
Precio - 615€/mes

D64s_V3 – 64 núcleos – 256Gb RAM – SSD PRemium 127Gb.2166€/mes
Compruebo cuanto mejora mi máquina de desarrollo si la llevo al límite que me permite mi suscripción. Observando que el incremento en cálculo es muy importante, seguido por la velocidad del disco duro al pasar a un SKU Premium.

PassMark - 2233
CPU - 34521
2D - 175
Memory - 1981
Disk - 6948
Precio - 2166€/mes

F16s_V2 – 16 nucleos – 32Gb RAM – SSD Premium 127Gb502 €
Me voy a probar otra familia de máquinas optimizadas para computación y cálculos. Y parece que es así, porque con 16 núcleos consigue casi la mitad de puntuación que la máquina anterior que tenía 64 núcleos. Lamentáblemente las prisas y los límites naturales de las suscripciones, me han impedido poder probar con una F64. Curioso el incremento en el rendimiento en 2D, que es el que hace que la puntuación global supere a la máquina anterior.

PassMark - 2493
CPU - 15715
2D - 231
Memory - 2443
Disk - 2371
Precio 502€/mes

NV12 – 12 núcleos GPU – 112Gb RAM – SSD Standard 127Gb1681€/mes
Salto hacia las máquinas de hipercomputación, y he seleccionado una serie N, que utiliza la GPU de Nvidia para hacer cálculos, en la búsqueda de una mayor prestación de los gráficos, como ha sido. Sin embargo el mayor impacto está en la capacidad de cálculo con apenas 12 núcleos (el menor número de la comparativa a excepción de la máquina de control) y en un brillante comportamiento de un disco duro que no debiera ser tan rápido ¿?

PassMark - 3701
CPU - 13546
2D - 200
Memory - 2209
Disk - 4954
Precio - 1681€/mes

E20ds_V4 – 20 núcleos – 160Gb RAM – SSD Premium 127Gb. – 1065€/mes
Y hete aquí la máquina virtual más cara que puedo configurar. Una serie E pensada para trabajo en memoria y que realmente sobresale en la velocidad del SSD Premium; tanto en memoria como en CPU también mejora en comparación con las de tamaño similar.

PassMark - 3687
CPU - 19120
2D - 357
Memory - 2672
Disk - 8836
Precio - 1065€/mes

Como se puede observar, estoy haciendo el panolí, porque podría pasar de la peor a la mejor máquina que puedo configurar con mis límites actuales en la suscripción casi por el mismo coste mensual.

Otra solución es pedir un aumento de núcleos en las series F, porque es la que más potencia parece que dá junto con las series N y sus GPU, y eso me saldría aún más barato.

Una bofetada con la realidad

¿Y cual es la máquina de control que he utilizado para comparar las máquinas virtuales en Azure?

Pues mi máquina de Gamer de serie media:

  • AMD Ryzen 3600 con 6 núcleos
  • 32Gb de RAM a 3200 en Dual Channel
  • 1 SSD de 256 Gb. (el más barato que encontré). Bueno, hay más, pero eso no los cuento.
  • RTX2070, aunque podemos descartar las pruebas 3D del todo porque ninguna VM lo ha soportado.
  • Un coste total de unos 1400€ tirando por lo alto y contando todos los SSD.

Y el resultado hace que pensar…

PassMark - 5771
CPU - 17526
2D - 862
Memory - 2954
Disk - 3633
Precio - 1400€ en total.

Como se puede observar, para conseguir la misma potencia en Azure me tengo que gastar cada mes casi el coste de una máquina nueva!!

Tres cosas me han llamado poderosamente la atención:

  1. Mis SSD son leentos en comparación con lo que me pueden ofrecer las VM en Azure, y eso que no he probado las familias que están pensadas específicamente para almacenamiento.
  2. Las interminables capas de abstracción dejan la computación en la nube al nivel del barro. Que mi máquina on-premise solo tiene 6 nucleos y es un solo procesador, y se pasa por la piedra a máquinas con más del doble.
  3. Es obvio que mi RTX va a ser mucho más rápida que una tarjeta gráfica emulada en una máquina virtual… pero es que el día a día está basado en los gráficos 2D.

Otra cosa es que tengo que tener MUY en cuenta lo que me ha enseñado esta comparativa cuando diseñe arquitectura.

Es crítico hacer un piloto con la aplicación que vamos a desplegar en la VM, que no solo vale la teoría; hay que pegarse una paliza buscando el mejor equilibro prestaciones/coste.

Y, como conclusión, creo que necesitamos que el Cloud ofrezca más capacidades por cada euro de coste… he de reconocer que me ha defraudado un poquito, a mi que soy un apasionado.

Espero que sea de utilidad.

 

2 comentarios

  1. Juanjo dice:

    No creo que usar esa métrica para comparar «servidores» con «ordenadores personales» diga mucho.
    Te recomiendo conectar 1000 usuarios a tu portátil personal a ver que tal rinde y cuanto te gastas al año de conexión para dar buen servicio. Y que explicación das a los usuarios si se te estropea el disco sin tener un sistema de replicación

    • Administrador dice:

      Tienes toda la razón, te recomiendo hacer las pruebas y compartir los resultados que es muy sencillico (tres horitas de nada).

      Por otro lado estas pruebas -muy simples y en un número demasiado pequeño- comparan la capacidad de computo y velocidad de los componentes para tener una referencia de lo que las capas de abstracción penalizan el rendimiento del Cloud.

      Indudablemente la nube es imbatible en aspectos de escalabilidad, disponibilidad, confiabilidad, capacidad de cómputo, conectividad, etc. Pero no es nada de eso el objetivo de esta mínima prueba, que me causaba tanta curiosidad y que tantas veces me han preguntado mis alumnos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.