Microsoft Azure es uno de los proveedores de servicios en la nube más populares del mundo y es ideal para el alojamiento de bases de datos en aplicaciones que aprovechan Microsoft en toda su infraestructura. MySQL es la base de datos de código abierto número uno que comúnmente se hospeda a través de instancias de Azure. Si bien Microsoft ofrece su propio producto Azure Database, existen otras alternativas disponibles que pueden ayudarlo a mejorar su rendimiento de MySQL. En esta publicación de blog, comparamos Azure Database for MySQL con ScaleGrid MySQL en Azure para que pueda ver qué proveedor ofrece el mejor rendimiento y latencia. Medimos la latencia en ms percentil 95 de latencia.
De un vistazo:TLDR | ||||||
---|---|---|---|---|---|---|
|
¿Acabas de empezar? Consulte la publicación The Best Way to Host MySQL on Azure Cloud para obtener más información sobre cómo optimizar la implementación de su base de datos en la nube.
Evaluación comparativa de rendimiento de MySQL Azure
En este informe comparativo, comparamos el alojamiento de MySQL en Azure en ScaleGrid con Azure Database for MySQL en estos tres escenarios de carga de trabajo:
- Carga de trabajo de lectura intensiva:80 % de lecturas y 20 % de escrituras
- Carga de trabajo equilibrada:50 % de lecturas y 50 % de escrituras
- Carga de trabajo de escritura intensiva:20 % de lecturas y 80 % de escrituras
Medimos el rendimiento de MySQL y la latencia, y medimos el rendimiento en términos de consultas por segundo (QPS) y la latencia en términos del percentil 95 (ms). Consulte nuestra sección Configuración comparativa debajo del informe de rendimiento para ver cómo se configuraron estas pruebas.
Rendimiento intensivo de lectura de MySQL
Las cargas de trabajo de lectura intensiva de MySQL son cargas de trabajo que normalmente están dominadas por operaciones de lectura, como SELECT. Por lo tanto, una carga de trabajo de lectura intensiva sería aquella que busca en la base de datos con más frecuencia en lugar de escribir en ella. Percona tiene una excelente publicación sobre cargas de trabajo de lectura intensiva frente a escritura intensiva donde puede obtener más información.
Echemos un vistazo al rendimiento y la latencia de ScaleGrid MySQL frente a Azure Database for MySQL:
Rendimiento
Hilos | ScaleGrid | Azul | Mejora de ScaleGrid |
---|---|---|---|
25 | 5,299 | 1,689 | 214% |
50 | 6,092 | 2302 | 165% |
100 | 8429 | 2877 | 193% |
150 | 9,011 | 2870 | 214% |
175 | 7025 | 2805 | 151% |
Como podemos ver en el gráfico anterior y en la tabla de rendimiento, ScaleGrid MySQL logra un rendimiento hasta 3 veces mayor en comparación con Azure Database para cargas de trabajo de lectura intensiva. Mientras que el rendimiento de Azure Database for MySQL es inferior a 3000 consultas por segundo en todos los escenarios de subprocesos, ScaleGrid tiene entre 5000 y 9000 consultas por segundo en todos los subprocesos. |
Latencia
Hilos | ScaleGrid | Azul | Mejora de ScaleGrid |
---|---|---|---|
25 | 258 | 451 | -43% |
50 | 101 | 670 | -85% |
100 | 148 | 978 | -85% |
150 | 309 | 1562 | -80% |
175 | 1089 | 1,678 | -35% |
Mientras que la latencia de Azure Database for MySQL aumenta rápidamente a medida que aumenta la cantidad de subprocesos, ScaleGrid MySQL logra una latencia baja constante en todos los conteos de subprocesos . De media, ScaleGrid para MySQL tiene un 66 % menos de latencia que Azure Database para MySQL para escenarios de carga de trabajo de lectura intensiva. |
Reduzca la latencia de #MySQL en un 66 % en Azure, con un rendimiento hasta 3 veces mayorHaga clic para twittear
Rendimiento equilibrado de carga de trabajo de MySQL
Las cargas de trabajo equilibradas aprovechan cantidades aproximadamente iguales de operaciones de lectura y operaciones de escritura.
Rendimiento
Hilos | ScaleGrid | Azul | Mejora de ScaleGrid |
---|---|---|---|
25 | 3806 | 1,748 | 118% |
50 | 5,834 | 2437 | 139% |
100 | 6365 | 2712 | 135% |
150 | 5,724 | 2775 | 106% |
175 | 6,206 | 1,767 | 251% |
En promedio, ScaleGrid mejoró el rendimiento de MySQL en un 150 % en comparación con Azure Database para MySQL para cargas de trabajo equilibradas, y es más del doble de mejor en todo el número de subprocesos. Azure Database alcanzó un máximo de alrededor de 2775 consultas por segundo en 150 subprocesos, mientras que ScaleGrid logró 5724 consultas por segundo para la misma cantidad de subprocesos. |
Latencia
Hilos | ScaleGrid | Azul | Mejora de ScaleGrid |
---|---|---|---|
25 | 76 | 390 | -81% |
50 | 103 | 612 | -83% |
100 | 240 | 943 | -75% |
150 | 560 | 1590 | -65% |
175 | 560 | 2199 | -75% |
Observamos otra mejora espectacular en el rendimiento de latencia para cargas de trabajo equilibradas, donde las implementaciones de ScaleGrid MySQL pueden funcionar a menos de un tercio de la latencia en comparación con Azure Database para MySQL. |
Rendimiento intensivo de escritura de MySQL
Mientras que las operaciones de lectura buscan en la base de datos, las operaciones de escritura son aquellas que guardan o modifican la base de datos, como las consultas INSERTAR, ACTUALIZAR o ELIMINAR. Las cargas de trabajo de escritura intensiva suelen ser más costosas que las cargas de trabajo de lectura intensiva, ya que las operaciones consumen más recursos. Comparemos el rendimiento y la latencia de ScaleGrid frente a Azure Database en cargas de trabajo de escritura intensiva de MySQL.
Rendimiento
Hilos | ScaleGrid | Azul | Mejora de ScaleGrid |
---|---|---|---|
25 | 3327 | 826 | 303% |
50 | 5003 | 1,154 | 334% |
100 | 5,180 | 1,476 | 251% |
150 | 4310 | 1,651 | 161% |
175 | 4071 | 1,643 | 148% |
En nuestro escenario de escritura intensiva, podemos ver la mayor mejora de rendimiento donde ScaleGrid logra hasta 4 veces mayor rendimiento en comparación con Azure Database . Esto es especialmente evidente en nuestros escenarios de subprocesos bajos, pero incluso con 175 subprocesos, ScaleGrid aún funciona 2,5 veces mejor que Azure Database. |
Latencia
Hilos | ScaleGrid | Azul | Mejora de ScaleGrid |
---|---|---|---|
25 | 76 | 277 | -73% |
50 | 101 | 383 | -74% |
100 | 298 | 996 | -70% |
150 | 760 | 1,740 | -56% |
175 | 1089 | 2009 | -46% |
ScaleGrid superó nuevamente a Azure Database con un promedio de 64 % menos de latencia en todos los subprocesos para cargas de trabajo de escritura intensiva. |
Como podemos ver en los informes anteriores, ScaleGrid lo ayuda a aumentar significativamente su rendimiento y disminuir su latencia en las implementaciones de Azure Database para MySQL en cargas de trabajo equilibradas, de lectura y escritura intensivas. escenarios. Para obtener más información sobre cómo estos dos proveedores se comparan entre las funciones, consulte la página ScaleGrid vs. Azure Database MySQL.
Configuraciones comparativas
Echemos un vistazo a las configuraciones que usamos en la evaluación comparativa de rendimiento:
Comparación de configuraciones
Diseñamos la configuración usando los planes más comparables ofrecidos entre ScaleGrid y Azure Database. Solo hay diferencias menores y los costos son los mismos para los dos proveedores:
ScaleGrid MySQL en Azure | Base de datos Azure para MySQL | |
---|---|---|
Tipo de instancia | Dedicado grande:Standard_Ds2_v2 2 núcleos | Propósito general:2 núcleos |
RAM | 7GB | 10 GB (memoria de 5 GB por núcleo virtual) |
SSD | 128 GB, disco SSD Premium, 500 IOPS | 167 GB, hasta 500 IOPS |
Tipo de implementación | 2+1 Quórum con replicación semisincrónica | +1 Leer réplica Replicación asíncrona |
Región | Este de EE. UU. | Este de EE. UU. |
Soporte | Incluido | Plan estándar ($100) |
Precio mensual estimado | $400 | $400 |
Configuración de Sysbench
Configuración | Detalles |
---|---|
Herramienta | Sysbench versión 1.0.20 |
Host | Standard_Ds2_v2 2 núcleos (2 vcpus, 7 GB de memoria) en la región Este de EE. UU. |
# Tablas | 100 |
# filas por tabla | 2,000,000 |
Distribución de números aleatorios | Especial |
Configuración del servidor MySQL
Configuración | Azure Scalegrid (Dedicado) | Azure DB para MySQL |
---|---|---|
Versión de SQL | 5.7.25 | 5.7.27 |
innodb_buffer_pool_size | 4G | 7.5G |
innodb_log_file_size | 1G | 268M |
innodb_io_capacity | 500 | 500 |
innodb_io_capacity_max | 1000 | 1000 |
Tenga en cuenta que en ScaleGrid, tiene opciones avanzadas para personalizar sus configuraciones de MySQL. Esto le permite personalizar su implementación según las necesidades de su aplicación y optimizar el rendimiento. Desafortunadamente, Azure Database no permite la personalización de algunos de los parámetros, por lo que está atascado con las configuraciones predeterminadas disponibles a través de su plataforma.
Por ejemplo, pudimos personalizar el tamaño del archivo de registro de InnoDB a 1 GB, mientras que para Azure Database, esto no se puede modificar y tiene un valor predeterminado de 268M. Obtenga más información sobre las limitaciones de Azure Database for MySQL.
Hay muchas otras ventajas de usar Scalegrid MySQL para Azure, vea la comparación completa en nuestra página ScaleGrid vs. Azure Database – MySQL Hosting.