Microsoft Azure est l'un des fournisseurs de cloud les plus populaires au monde, et un choix naturel pour l'hébergement de bases de données sur les applications tirant parti de Microsoft dans leur infrastructure. MySQL est la base de données open source numéro un généralement hébergée via des instances Azure. Bien que Microsoft propose son propre produit Azure Database, il existe d'autres alternatives disponibles qui peuvent vous aider à améliorer vos performances MySQL. Dans cet article de blog, nous comparons Azure Database pour MySQL et ScaleGrid MySQL sur Azure afin que vous puissiez voir quel fournisseur offre les meilleures performances de débit et de latence. Nous mesurons la latence en ms de latence au 95e centile.
En un coup d'œil – TLDR | ||||||
---|---|---|---|---|---|---|
|
Vous débutez ? Consultez la publication The Best Way to Host MySQL on Azure Cloud pour en savoir plus sur l'optimisation du déploiement de votre base de données cloud.
Analyse comparative des performances MySQL Azure
Dans ce rapport de référence, nous comparons l'hébergement MySQL sur Azure chez ScaleGrid et Azure Database pour MySQL dans ces trois scénarios de charge de travail :
- Charge de travail intensive en lecture :80 % de lectures et 20 % d'écritures
- Charge de travail équilibrée :50 % de lectures et 50 % d'écritures
- Charge de travail intensive en écriture :20 % de lectures et 80 % d'écritures
Nous mesurons les performances de débit et de latence de MySQL, et mesurons le débit en termes de requêtes par seconde (RPS) et la latence en termes de 95e centile (ms). Consultez notre section Configuration des tests de performance sous le rapport de performances pour voir comment ces tests ont été configurés.
Performances MySQL en lecture intensive
Les charges de travail intensives en lecture de MySQL sont des charges de travail qui sont généralement dominées par des opérations de lecture, telles que SELECT. Ainsi, une charge de travail intensive en lecture serait celle qui recherche la base de données plus souvent que celle qui y écrit. Percona a un excellent article sur les charges de travail intensives en lecture et en écriture où vous pouvez en savoir plus.
Examinons les performances de débit et de latence de ScaleGrid MySQL par rapport à Azure Database pour MySQL :
Débit
Fils | ScaleGrid | Azur | Amélioration de ScaleGrid |
---|---|---|---|
25 | 5 299 | 1 689 | 214 % |
50 | 6 092 | 2 302 | 165 % |
100 | 8 429 | 2 877 | 193 % |
150 | 9 011 | 2 870 | 214 % |
175 | 7 025 | 2 805 | 151 % |
Comme nous pouvons le voir sur le graphique ci-dessus et le tableau des performances, ScaleGrid MySQL atteint un débit jusqu'à 3 fois plus élevé par rapport à Azure Database pour les charges de travail intensives en lecture. Alors que le débit d'Azure Database pour MySQL est inférieur à 3 000 requêtes par seconde dans tous les scénarios de threads, ScaleGrid a plus de 5 000 à 9 000 requêtes par seconde dans les threads. |
Latence
Fils | ScaleGrid | Azur | Amélioration de ScaleGrid |
---|---|---|---|
25 | 258 | 451 | -43 % |
50 | 101 | 670 | -85 % |
100 | 148 | 978 | -85 % |
150 | 309 | 1562 | -80 % |
175 | 1 089 | 1 678 | -35 % |
Alors que la latence d'Azure Database pour MySQL augmente rapidement à mesure que le nombre de threads augmente, ScaleGrid MySQL atteint régulièrement une faible latence sur tous les nombres de threads . En moyenne, ScaleGrid pour MySQL a une latence inférieure de 66 % à Azure Database pour MySQL pour les scénarios de charge de travail intensive en lecture. |
Réduisez votre latence #MySQL de 66 % sur Azure, avec des performances de débit jusqu'à 3 fois supérieuresClick To Tweet
Performances de la charge de travail équilibrée MySQL
Les charges de travail équilibrées exploitent des quantités à peu près égales d'opérations de lecture et d'écriture.
Débit
Fils | ScaleGrid | Azur | Amélioration de ScaleGrid |
---|---|---|---|
25 | 3 806 | 1 748 | 118 % |
50 | 5 834 | 2 437 | 139 % |
100 | 6 365 | 2 712 | 135 % |
150 | 5 724 | 2 775 | 106 % |
175 | 6 206 | 1 767 | 251 % |
En moyenne, ScaleGrid a amélioré le débit MySQL de 150 % par rapport à la base de données Azure pour MySQL pour des charges de travail équilibrées, et est plus de 2 fois mieux à travers tout le nombre de threads. Azure Database a atteint un maximum d'environ 2 775 requêtes par seconde à 150 threads, tandis que ScaleGrid a atteint 5 724 requêtes par seconde pour le même nombre de threads. |
Latence
Fils | ScaleGrid | Azur | Amélioration de ScaleGrid |
---|---|---|---|
25 | 76 | 390 | -81 % |
50 | 103 | 612 | -83 % |
100 | 240 | 943 | -75 % |
150 | 560 | 1 590 | -65 % |
175 | 560 | 2 199 | -75 % |
Nous constatons une autre amélioration spectaculaire des performances de latence pour les charges de travail équilibrées, où les déploiements ScaleGrid MySQL peuvent fonctionner à moins plus d'un tiers de la latence par rapport à Azure Database pour MySQL. |
Performances intensives en écriture MySQL
Alors que les opérations de lecture effectuent une recherche dans la base de données, les opérations d'écriture sont celles qui enregistrent ou modifient la base de données, telles que les requêtes INSERT, UPDATE ou DELETE. Les charges de travail intensives en écriture sont généralement plus coûteuses que les charges de travail intensives en lecture, car les opérations consomment plus de ressources. Comparons les performances de débit et de latence de ScaleGrid à celles d'Azure Database sur les charges de travail intensives en écriture MySQL.
Débit
Fils | ScaleGrid | Azur | Amélioration de ScaleGrid |
---|---|---|---|
25 | 3 327 | 826 | 303 % |
50 | 5 003 | 1 154 | 334 % |
100 | 5 180 | 1 476 | 251 % |
150 | 4 310 | 1 651 | 161 % |
175 | 4 071 | 1 643 | 148 % |
Dans notre scénario d'écriture intensive, nous sommes en mesure de constater la plus grande amélioration des performances où ScaleGrid atteint jusqu'à 4x débit plus élevé par rapport à la base de données Azure . Cela est particulièrement évident dans nos scénarios à faible thread, mais même à 175 threads, ScaleGrid fonctionne toujours 2,5 fois mieux qu'Azure Database. |
Latence
Fils | ScaleGrid | Azur | Amélioration de ScaleGrid |
---|---|---|---|
25 | 76 | 277 | -73 % |
50 | 101 | 383 | -74 % |
100 | 298 | 996 | -70 % |
150 | 760 | 1 740 | -56 % |
175 | 1 089 | 2 009 | -46 % |
ScaleGrid a de nouveau surpassé la base de données Azure avec une moyenne de 64 % de latence inférieure sur l'ensemble du nombre de threads pour les charges de travail intensives en écriture. |
Comme nous pouvons le voir dans les rapports ci-dessus, ScaleGrid vous aide à augmenter considérablement votre débit et à réduire votre latence par rapport aux déploiements de base de données Azure pour MySQL sur des charges de travail intensives en lecture, en écriture et équilibrées. scénarios. Pour en savoir plus sur la façon dont ces deux fournisseurs se comparent entre les fonctionnalités, consultez la page ScaleGrid vs. Azure Database MySQL.
Configurations de référence
Regardons les configurations que nous avons utilisées dans le benchmark des performances :
Comparaison des configurations
Nous avons conçu la configuration en utilisant les plans les plus comparables proposés entre ScaleGrid et Azure Database. Il n'y a que des différences mineures et les coûts sont les mêmes pour les deux fournisseurs :
ScaleGrid MySQL sur Azure | Base de données Azure pour MySQL | |
---|---|---|
Type d'instance | Dédié grand :Standard_Ds2_v2 2 cœurs | Usage général :2 cœurs |
RAM | 7 Go | 10 Go (5 Go de mémoire par vCore) |
SSD | 128 Go, disque SSD Premium, 500 IOPS | 167 Go, jusqu'à 500 IOPS |
Type de déploiement | Quorum 2+1 avec réplication semi-synchrone | +1 réplication asynchrone en lecture |
Région | Est des États-Unis | Est des États-Unis |
Assistance | Inclus | Plan standard (100 $) |
Prix mensuel estimé | 400 $ | 400 $ |
Configuration Sysbench
Configuration | Détails |
---|---|
Outil | Sysbench version 1.0.20 |
Hôte | Standard_Ds2_v2 2 cœurs (2 vcpu, 7 Go de mémoire) sur la région Est des États-Unis |
# tableaux | 100 |
# lignes par tableau | 2 000 000 |
Répartition des nombres aléatoires | Spécial |
Configuration du serveur MySQL
Configuration | Azure Scalegrid (dédié) | Azure DB pour MySQL |
---|---|---|
Version SQL | 5.7.25 | 5.7.27 |
innodb_buffer_pool_size | 4G | 7,5 G |
innodb_log_file_size | 1G | 268M |
innodb_io_capacity | 500 | 500 |
innodb_io_capacity_max | 1000 | 1000 |
Notez que chez ScaleGrid, vous disposez d'options avancées pour personnaliser vos configurations MySQL. Cela vous permet de personnaliser votre déploiement en fonction des besoins de votre application et d'optimiser les performances. Malheureusement, Azure Database ne permet pas la personnalisation de certains paramètres, vous êtes donc bloqué avec les configurations par défaut disponibles via leur plate-forme.
Par exemple, nous avons pu personnaliser la taille du fichier journal InnoDB à 1 Go alors que pour la base de données Azure, cela ne peut pas être modifié et a une valeur par défaut de 268 Mo. En savoir plus sur les limitations d'Azure Database pour MySQL.
L'utilisation de Scalegrid MySQL pour Azure présente de nombreux autres avantages. Consultez la comparaison complète sur notre page ScaleGrid vs Azure Database - Hébergement MySQL.