ICM / how-to-do / Benchmark de ICM

Benchmark de ICM

17 febrero 2022 | Lluis Pons

Hoy queremos compartir una comparativa con otros proveedores del rendimiento de instancias en uno de los clústers de la plataforma actual de ICM. En concreto, con instancias análogas de otros proveedores.

Las pruebas realizadas se han llevado a cabo de la misma manera que lo hace el proveedor Upcloud, para poder tener unos datos sacados de los mismos ítems evaluados por este proveedor. Ellos se comparan con su competidor directo: DigitalOcean. Ambos son proveedores de infraestructura.

Para tener una idea aproximada de dónde estamos, estas pruebas las realizamos regularmente. Así, podemos ver qué visión se tiene de la plataforma desde el punto de vista de un VPS.

Características de los recursos de Hardware utilizado

Instancias de ICM

Se optó por generar una VPS lo más parecido posible a las instancias comparadas de los otros proveedores. Dispone de 8 Cores Intel(R) Xeon(R) Gold 6140 CPU @ 2.30GHz, 64GB de memoria RAM y almacenamiento SSD.

Instancias de Azure:

E8s-v4: Las máquinas virtuales de la serie Esv4 se basan en el procesador Intel® Xeon® Platinum 8272CL (procesador escalable Intel® Xeon® de segunda generación).

Este procesador personalizado se ejecuta a una velocidad básica de 2,5 GHz y puede alcanzar hasta 3,4 GHz de frecuencia turbo en todos los núcleos. Los tamaños de máquina virtual Ev4 y Esv4 ofrecen hasta 504 GiB de RAM y no tienen ningún almacenamiento temporal. Estas máquinas virtuales son ideales para aplicaciones empresariales que hacen un uso intensivo de la memoria. Puede conectar almacenamiento en discos SSD estándar, HDD estándar y SSD Premium a estas máquinas virtuales. Los discos utilizados para la prueba son SSD Premmium con 128 GB de tamaño.

F8s-v2: Las máquinas virtuales de la serie Fsv2 proporcionan 2 GiB de RAM y 8 GB de almacenamiento temporal (SSD) local por vCPU, y están optimizadas para cargas de trabajo que hacen un uso intensivo de los recursos de proceso.

Las máquinas virtuales de la serie Fsv2 cuentan con tecnología Hyper-Threading y se basan en los procesadores Intel® Xeon® Platinum 8272CL (segunda generación de los procesadores escalables Intel® Xeon®) o Intel Xeon® Platinum 8168 (Skylake). Estas máquinas virtuales son ideales para escenarios como el procesamiento por lotes, los servidores web, los análisis y los juegos. Las máquinas virtuales Fsv2 se pueden conectar al almacenamiento persistente en discos SSD Premium o Ultra. Los discos utilizados para la prueba son SSD Premmium con 128 GB de tamaño.

Instancias de OVH:

El test se realizó en una instancia del tipo C2

Estas instancias son ideales para las aplicaciones que requieren una alta frecuencia de cálculo o procesamiento paralelo de tareas. Con Intel Core Processor (Haswell, no TSX) @ 3GHz con 8 cores y 30G de RAM con almacenamiento SSD.

Sysbench

Es una suite de evaluación que nos proporciona amplias estadísticas sobre las tasas de operación y la latencia con una sobrecarga mínima, incluso con miles de subprocesos simultáneos. Es una de las mejores opciones que existen para la evaluación comparativa de servidores. Y es la escogida en su mayoría de casos.

Rendimiento de la CPU

Para probar el rendimiento de la CPU. La prueba calcula números primos hasta el primo máximo utilizando un número determinado de subprocesos durante 60 segundos.

sysbench cpu --cpu-max-prime=20000 --threads=4 --time=60 run

cpu

Rendimiento de la memoria

Esta prueba escribe 100 GB de datos en la memoria con un límite de tiempo de 30 segundos para evitar pruebas prolongadas en hosts más lentos. El rendimiento de la memoria generalmente se mide en tasa de transferencia (MB/s).

sysbench memory --memory-oper=write --memory-block-size=1K --memory-scope=global --memory-total- size=100G --threads=4 --time=30 run

memory

Generación de los ficheros para la prueba

El siguiente comando file io prepara una serie de archivos de prueba para un tamaño total de 10 gigabytes. Nos da una visión de la velocidad secuencial con la generación de los ficheros.

sysbench fileio --file-total-size=10G prepare

file oi

Lecturas aleatorias

Las lecturas y escrituras aleatorias son probablemente los tipos más comunes de cargas de almacenamiento. Debido a las diferentes solicitudes de distintas tareas, los accesos consecutivos al almacenamiento rara vez caen en direcciones vecinas, por lo que el patrón de acceso se denomina aleatorio.

El siguiente comando de ejemplo ejecuta una prueba de lectura aleatoria en el disco de almacenamiento, utilizando los archivos preparados de antemano con un tamaño de bloque de 4 kilobytes.

sysbench fileio --file-test-mode=rndrd --file-total-size=10G --file-block-size=4K --threads=4 --time=60 run

rnrdb

rdrdn iops

Escrituras secuenciales

El acceso secuencial al almacenamiento es común con archivos de gran tamaño, como audio y vídeo.

Cuando un sistema lee o escribe en orden secuencial, el dispositivo de almacenamiento pierde menos tiempo en operaciones relacionadas. Gracias al acceso más rápido, las operaciones secuenciales brindan un mejor rendimiento y puntajes de referencia. Por la misma razón, los fabricantes citan a menudo operaciones secuenciales cuando enumeran las velocidades del disco.

sysbench fileio --file-test-mode=seqwr --file-total-size=10G --file-block-size=4K --threads=4 --time=60 run

seqrw

seqrw iops

Latencia

La latencia es presente en todos y cada uno de los componentes que forman un sistema informático. Esta medida es una de las más importantes y que siempre debemos tener en cuenta. Es el retardo temporal, medido normalmente el milisegundo, entre la petición de un dato al disco y su obtención. En el gráfico siguiente mostramos los resultados obtenidos por el test de las diferentes pruebas realizadas.

latencia

Conclusión

A la vista de los números obtenidos en las diferentes pruebas, podemos determinar que la solución de Cloud privado de ICM basada en el SDS (Software Defined Storage) de Nutanix es la más equilibrada, de entre las que hemos realizado las pruebas.

La batería de pruebas se ha realizado sobre instancias y proveedores con los que ICM trabaja en el día a día. Siempre trabajamos con la idea de mejorar tanto en nuestra nube privada como los partners de IaaS que utilizamos, y estas pruebas frecuentes nos ayudan a entender la evolución de todas las plataformas.

En los entornos de Cloud Pública, es importante tener en cuenta los vecinos con los que compartes infraestructura, tanto CPU y RAM como Storage. El uso (ratios de sobresuscripción de recursos) y sobreuso de los demás afecta negativamente en el performance. En el caso de la nube privada de ICM, se hace una monitorización exhaustiva de los recursos para garantizar los recursos necesarios para cada uno de los servidores y evitar al máximo la afectación de un cliente sobre otros. Es decir, ICM garantiza el 100% de los recursos a sus clientes.