¿Qué proveedor proporciona el mejor rendimiento en máquinas virtuales? Hemos hecho una comparativa entre Microsoft Azure, Amazon Web Services (AWS) y Jotelulu.
En Jotelulu lo cuestionamos todo, y estamos obsesionados con ofrecer el mejor servicio, lo que impulsa una estrategia de innovación y mejora continua. Con esta estrategia en mente, estamos continuamente comprobando las funcionalidades y optimizaciones del resto de actores del sector cloud lo que en muchos casos desemboca en análisis y comparativas como la plasmada en este blog post.
Dicho esto, se van a exponer los datos obtenidos generados en un test de rendimiento de máquinas virtuales Microsoft Windows Server en distintos proveedores de servicios cloud:
- Los proveedores cloud elegidos en esta primera comparativa son:
- Microsoft Azure.
- Amazon Web Services (AWS).
- Jotelulu.
- Las máquinas sobre las que se van a hacer la prueba tienen las siguientes características para conseguir una homogeneidad en la muestra:
- Windows Server 2019 Standard.
- 4 cores.
- 16 GB de RAM.
- Discos SSD.
- Para poder establecer el rendimiento de cada uno de los servidores y realizar las pruebas, las herramientas seleccionadas y los parámetros analizados son:
- AS SSD Benchmark se va a usar para realizar las pruebas de transferencia de discos (#1). La herramienta se puede descargar de la siguiente fuente: AS SSD Benchmark.
- CineBench va a ser la herramienta seleccionada para testear la capacidad de procesamiento de CPU y memoria principal (#2). La herramienta se puede descargar de la siguiente fuente: CineBench.
- Test LAN será la herramienta seleccionada para realizar los test de conexión de red y movimiento de datos (#3). La herramienta se puede descargar de la siguiente fuente: Test LAN.
NOTA: dejamos el detalle y análisis de cada una de las herramientas utilizadas en un Anexo al final del presente artículo (Tras las conclusiones).
Comparativa de rendimiento AWS, Azure y Jotelulu.
Tras presentar las bases del análisis y la forma en que vamos a trabajar, veamos los resultados en cada una de las pruebas realizadas.
#1. Transferencias de Discos:
Para las pruebas de transferencias de datos en discos se va a usar AS SSD Benchmark que nos permitirá comprobar el rendimiento tanto de lectura como de escritura del disco, tanto de modo secuencial como aleatoria.
Se han realizado distintas pruebas con distintos volúmenes de datos:
- 1 GB (Tamaño por defecto).
- 3 GB.
- 5 GB.
- 10 GB.
Y dentro de cada uno de ellos se han medido, tal como se ha comentado previamente:
- Seq-test: Se mide cuánto tiempo se tarda en escribir y leer un archivo de 1 GB.
- 4K: Se realiza una prueba similar en bloques aleatorios de 4K.
- 4K-64Thrd: Es similar al 4K, pero distribuyendo la carga en 64 subprocesos.
- Time: Mide la potencia de respuesta a la compresión de los datos.
En base a todos estos datos, se establece un “score” (puntuación) para lectura, escritura y media.
En nuestro caso, valoraremos especialmente el “score” ya que nos da esa puntuación media en base a cada uno de estos puntos tratados.
Los resultados en todas las pruebas con distintos volúmenes de datos son muy similares, presentando ligeras variaciones, pero comportándose de igual forma en líneas generales, motivo por el que vamos a exponer únicamente los datos de las pruebas de 5GB, para así ahorrar tiempo al lector.
Transferencia de discos con 5 GB:
Al igual que en el resto de pruebas, en la comparativa de funcionamiento con transferencias de 5 GB, podríamos describir un ranking en el que Jotelulu (1) sale ganando en rendimiento con 339 puntos de media frente a los 173 de Azure (2) y los 15 de AWS (3).
Si ponemos foco en la imagen donde se pueden ver las medidas tomadas, se podrá observar que los tiempos de acceso de Jotelulu son cinco veces más rápidos (x5) a los de Azure y doce veces superiores (x2) a los de AWS, que ha dado unos rendimientos muy pobres en todas las pruebas de movimiento de datos.
5GB | Tipo de Prueba | JOTELULU | AWS | AZURE | Unidades |
Read | Seq | 540,23 | 41,51 | 199,17 | MB/s |
4K | 11,46 | 0,7 | 27,53 | MB/s | |
4K-64Thrd | 74,84 | 0,69 | 31,63 | MB/s | |
Acc.Time | 0,411 | 5,583 | 2,125 | ms | |
Score | 140 | 6 | 79 | pts | |
Write | Seq | 449,45 | 46,25 | 164,02 | MB/s |
4K | 11,66 | 0,7 | 9,95 | MB/s | |
4K-64Thrd | 71,01 | 0,7 | 15,6 | MB/s | |
Acc.Time | 1,692 | 27,932 | 1,883 | ms | |
Score | 128 | 6 | 42 | pts | |
Media | Score | 339 | 15 | 173 | pts |
Tabla. Comparativa de transferencia de discos para 5 GB
#2. Capacidad de procesamiento de CPU:
Tal como se ha comentado previamente, para comprobar el rendimiento del procesador para Jotelulu, AWS y Azure, haremos uso de CineBench, que arroja resultados bastante reveladores.
En la ejecución de las pruebas en formato CPU (Multicore), o lo que es lo mismo, haciendo uso de todo el procesador con la potencia de todos sus núcleos, se observa que Jotelulu da el mejor rendimiento (1), seguido por AWS (2) y por último por Azure (3).
JOTELULU | AWS | AZURE | |
CPU (Multi Core) | 2497 pts | 2445 pts | 1892 pts |
Tabla. Comparativa de rendimiento CPU (Multi Core)
Repitiendo la prueba en formato monoprocesador (Single Core) cambia radicalmente la situación. En este caso, Azure (1) muestra una clara ventaja sobre Jotelulu (2) y AWS (3) queda en tercera posición.
JOTELULU | AWS | AZURE | |
CPU (Single Core) | 664 pts | 640 pts | 746 pts |
Tabla. Comparativa de rendimiento CPU (Single Core)
Sin embargo, podemos ver que en lo que respecta al factor MP Ratio, que es una relación entre el rendimiento de los modos monoprocesador y multiprocesador, AWS (1) queda posicionado ligeramente por delante de Jotelulu (2) y que Azure (3) queda muy por detrás de ambos.
JOTELULU | AWS | AZURE | |
MP Ratio | 3.76 x | 3.82 x | 2.54 x |
Tabla. Comparativa de MP Ratio
En base a esto, se puede decir que AWS da un rendimiento ligeramente superior a Jotelulu en la media, pero que Jotelulu da un mejor rendimiento en operativas que impliquen hacer un uso completo de las funcionalidades de la CPU.
#3. Transferencia de datos en red:
El siguiente punto es medir la velocidad de movimiento de datos a través de la red, para ello se usará la herramienta LAN Speed Test que permite medir la transferencia a través de distintos medios (discos duros, USB y tarjetas de red).
NOTA: La aplicación de test permite trabajar con mínimos, máximos y medias, siendo esta última la que se ha tomado para este benchmarking.
Para la segunda prueba se ha decidido hacer el movimiento de datos a una unidad de disco remoto (Unidad Z) ubicada fuera de las tres infraestructuras para así evitar que se falseen los datos.
En la prueba se escriben datos aleatorios en un fichero de 2 GB para posteriormente leer los datos, tomando mediciones de las tasas de transferencia.
En esta nueva tanda de pruebas, Jotelulu no ha salido tan bien parada, ya que para la escritura Azure (1) ha quedado la primera, ocupando Jotelulu (2) el segundo lugar y por detrás AWS (3).
Al realizar la prueba de lectura, Azure (1) ha quedado la primera, AWS (2) la segunda y Jotelulu (3) la tercera, generándose una diferencia de aproximadamente un 10% entre la primera y la segunda y de un 30% entre la primera y la tercera.
Dato medido | JOTELULU | AWS | AZURE | |
Writing (Upload) | Packet Size (Bytes) | 2000000000 | 2000000000 | 2000000000 |
Time / Packet | 224,0857 | 402,0651 | 176,4262 | |
Time to complete | 224,0857 | 402,0651 | 176,4262 | |
Bytes per second | 8925157 | 4974319 | 11336185 | |
Bits per second | 71401254 | 39794551 | 90689478 | |
Mbps (Default) | 71,4 | 39,79 | 90,69 | |
Reading (Download) | Packet Size (Bytes) | 2000000000 | 2000000000 | 2000000000 |
Time / Packet | 9,3373 | 6,4145 | 5,6562 | |
Time to complete | 9,3373 | 6,4145 | 5,6562 | |
Bytes per second | 214194911 | 311791746 | 353591410 | |
Bits per second | 1713559288 | 2494333965 | 2828731282 | |
Mbps (Default) | 1713,56 | 2494,33 | 2828,73 |
Tabla. Comparativa de transferencia de 2 GB en unidad remota
Conclusiones:
En este pequeño artículo, se ha hecho la presentación de una serie de herramientas dedicadas al benchmarking, que en nuestro caso se han seleccionado para poder testear algunos de los puntos clave de nuestras máquinas virtuales, confrontando los datos con los resultantes de las mismas pruebas en las plataformas cloud de Microsoft Azure y Amazon Web Services (AWS).
Es importante señalar que, para estas pruebas, se han desplegado máquinas virtuales con las mismas características en los tres proveedores de servicios cloud para de esta manera jugar en igualdad de condiciones.
Así mismo, se debe decir que se han observado mediciones diferentes en cada una de las ejecuciones de las herramientas de benchmarking por lo que se decidió ejecutarlas varias veces y seleccionar la medición más cercana a la media de todos los valores, para de esta manera, ser lo más fiel posible a la verdad.
Tras observar los resultados de todas las pruebas se puede determinar que los servidores de Jotelulu quedan bien posicionados, presentando unos resultados bastante correctos.
Jotelulu queda muy por encima en transferencia de datos en disco, quedando AWS en mal lugar y presentando, al menos en nuestras pruebas, algunos problemas de comportamiento. Respecto a la operación de la CPU, hay que decir que Jotelulu queda primero en operación Multi Core, pero en segundo puesto en comportamiento Single Core, con un desempeño total ligeramente inferior a Azure. Por último, en el caso de la transferencia de datos en red, Jotelulu queda por detrás de Azure con aproximadamente un 15% de rendimiento inferior a este.
Esperamos que este análisis arroje algo de luz y os oriente a la hora de llevar a cabo vuestros propios análisis.
Anexo – Detalle de herramientas utilizadas:
**Dejamos aquí la descripción y detalle de las herramientas utilizadas para el análisis.
AS SSD Benchmark:
AS SSD Benchmark permite probar el rendimiento tanto de lectura como de escritura del disco tanto de modo secuencial como aleatoria, y además lo hace bloqueando el uso de la memoria caché, lo que permite saber a ciencia cierta las tasas de IOP que proporciona el disco.
Para realizar estas mediciones, AS SSD Benchmark escribe y lee un archivo de un tamaño dado (partiendo de 1 GB) con bloques de 4K elegidos al azar. Para ello realiza las pruebas utilizando uno o sesenta y cuatro hilos, realizando mediciones mientras lo realiza y obteniendo de esta manera el tiempo de acceso al SSD.
En la batería de pruebas adicionales, se realiza la copia de algunos archivos grandes, así como muchos archivos pequeños; una combinación de tamaños de archivo, así como la compresión de datos para, de esta manera, examinar el comportamiento de la unidad.
El programa realiza varias pasadas:
- Seq-test: Se mide cuánto tiempo se tarda en escribir y leer un archivo de 1 GB.
- 4K: Se realiza una prueba similar en bloques aleatorios de 4K.
- 4K-64Thrd: Es similar al 4K, pero distribuyendo la carga en 64 subprocesos.
- Time: Mide la potencia de respuesta a la compresión de los datos.
En base a todos estos datos, se establece un “score” (puntuación) para lectura, escritura y media.
Las mediciones se pueden realizar con movimientos de datos de:
- 1 GB (Tamaño por defecto).
- 3 GB.
- 5 GB.
- 10 GB.
NOTA: Si el lector quiere hacer estas pruebas sobre máquinas, se deberá tener en cuenta que pueden tomar mucho tiempo.
CineBench:
CineBench es uno de los programas de referencia para la evaluación de las capacidades de hardware de todo tipo de equipos. Este software se suele usar en benchmarking de sistemas para establecer comparativas, por ejemplo, durante la escritura de reportes de revistas y webs especializadas, así como por los administradores para la optimización de sus sistemas o la evaluación de nuevos sistemas antes de la compra.
Mediante una serie de tests, este software explota las capacidades generales de la CPU haciendo tareas de renderizado, permitiendo tomar mediciones y aprovechando las capacidades de múltiples núcleos de CPU, así como de las funciones de procesador modernas.
El software básicamente pone a prueba la CPU mediante la producción de una sola imagen utilizando las últimas técnicas de trazado. Con este trabajo, el programa analiza cómo está realizando la CPU la administración de los hilos y la memoria.
CineBench permite trabajar en modo multiprocesador y monoprocesador, y en estas pruebas realizamos ambos métodos para obtener unas conclusiones más extensas, que incluirán el “MP Ratio”, una relación del rendimiento en modo multiprocesador y monoprocesador.
Test LAN:
La herramienta LAN Speed Test es una herramienta diseñada para medir la transferencia a través de distintos medios como pueden ser los discos duros, las unidades USB y las tarjetas de red LAN, tanto cableada como inalámbrica.
Para realizar estas mediciones, se debe seleccionar una carpeta de destino, que puede ser local o remota, siendo necesario que sea remota (como por ejemplo una carpeta compartida) para realizar las pruebas de red.
Cuando se ha seleccionado el destino, el programa crea un archivo en la memoria. Luego lo transfiere en ambos sentidos, anulando además el uso de la caché del sistema operativo para evitar el falseo de datos.
Otras herramientas:
En origen, estuvimos valorando el uso de otras herramientas de Benchmarking como Sandra, pero finalmente tuvimos que descartar esa idea porque las herramientas de Benchmarking suelen incluir baterías de pruebas que estresan la máquina, lo que hace que los sistemas hipervisores de los proveedores cloud desconectaran las instancias para evitar problemas.