Microsoft Azure ist einer der beliebtesten Cloud-Anbieter der Welt und eignet sich hervorragend für das Datenbank-Hosting auf Anwendungen, die Microsoft in ihrer gesamten Infrastruktur nutzen. MySQL ist die Open-Source-Datenbank Nummer eins, die üblicherweise über Azure-Instanzen gehostet wird. Während Microsoft sein eigenes Azure Database-Produkt anbietet, gibt es andere Alternativen, die Ihnen möglicherweise dabei helfen können, Ihre MySQL-Leistung zu verbessern. In diesem Blogbeitrag vergleichen wir Azure Database for MySQL mit ScaleGrid MySQL auf Azure, damit Sie sehen können, welcher Anbieter den besten Durchsatz und die beste Latenzleistung bietet. Wir messen die Latenz in ms 95. Perzentil Latenz.
Auf einen Blick – TLDR | ||||||
---|---|---|---|---|---|---|
|
Fangen Sie gerade erst an? Sehen Sie sich den Beitrag The Best Way to Host MySQL on Azure Cloud an, um mehr über die Optimierung Ihrer Cloud-Datenbankbereitstellung zu erfahren.
MySQL Azure-Leistungsbenchmark
In diesem Benchmark-Bericht vergleichen wir das MySQL-Hosting auf Azure bei ScaleGrid mit Azure Database for MySQL in diesen drei Workload-Szenarien:
- Leseintensive Arbeitslast:80 % Lesevorgänge und 20 % Schreibvorgänge
- Ausgeglichene Arbeitslast:50 % Lesevorgänge und 50 % Schreibvorgänge
- Schreibintensive Arbeitslast:20 % Lesevorgänge und 80 % Schreibvorgänge
Wir messen den MySQL-Durchsatz und die Latenzleistung sowie den Durchsatz in Abfragen pro Sekunde (QPS) und die Latenz in Form des 95. Perzentils (ms). Sehen Sie sich unseren Abschnitt Benchmark-Konfiguration unter dem Leistungsbericht an, um zu sehen, wie diese Tests konfiguriert wurden.
MySQL Leseintensive Leistung
Leseintensive MySQL-Workloads sind Workloads, die typischerweise von Lesevorgängen wie SELECT dominiert werden. Eine leseintensive Arbeitslast wäre also eine, die die Datenbank häufiger durchsucht als sie zu schreiben. Percona hat einen großartigen Beitrag zu leseintensiven vs. schreibintensiven Workloads, in dem Sie mehr erfahren können.
Werfen wir einen Blick auf die Durchsatz- und Latenzleistung von ScaleGrid MySQL im Vergleich zu Azure Database for MySQL:
Durchsatz
Threads | ScaleGrid | Azurblau | ScaleGrid-Verbesserung |
---|---|---|---|
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 % |
Wie wir aus dem obigen Diagramm und der Leistungstabelle ersehen können, erreicht ScaleGrid MySQL einen bis zu 3x höheren Durchsatz im Vergleich zu Azure Database für leseintensive Workloads. Während der Durchsatz von Azure Database for MySQL in allen Threadszenarien unter 3.000 Abfragen pro Sekunde liegt, hat ScaleGrid über 5.000–9.000 Abfragen pro Sekunde in allen Threads. |
Latenz
Threads | ScaleGrid | Azurblau | ScaleGrid-Verbesserung |
---|---|---|---|
25 | 258 | 451 | -43 % |
50 | 101 | 670 | -85 % |
100 | 148 | 978 | -85 % |
150 | 309 | 1562 | -80 % |
175 | 1.089 | 1.678 | -35 % |
Während die Latenz von Azure Database for MySQL mit zunehmender Anzahl von Threads schnell ansteigt, erreicht ScaleGrid MySQL über alle Thread-Anzahlen hinweg kontinuierlich eine niedrige Latenz . Im Durchschnitt hat ScaleGrid für MySQL eine um 66 % geringere Latenz als Azure Database für MySQL für leseintensive Workload-Szenarien. |
Reduzieren Sie Ihre #MySQL-Latenz um 66 % auf Azure mit bis zu dreimal höherer DurchsatzleistungClick To Tweet
Ausgewogene MySQL-Arbeitslastleistung
Ausgeglichene Workloads nutzen etwa gleiche Mengen an Lese- und Schreibvorgängen.
Durchsatz
Threads | ScaleGrid | Azurblau | ScaleGrid-Verbesserung |
---|---|---|---|
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 % |
Im Durchschnitt verbesserte ScaleGrid den MySQL-Durchsatz um 150 % gegenüber Azure Database für MySQL für ausgeglichene Workloads und ist über 2x besser über alle Threads hinweg. Azure Database erreichte bei 150 Threads etwa 2.775 Abfragen pro Sekunde, während ScaleGrid bei der gleichen Anzahl von Threads 5.724 Abfragen pro Sekunde erreichte. |
Latenz
Threads | ScaleGrid | Azurblau | ScaleGrid-Verbesserung |
---|---|---|---|
25 | 76 | 390 | -81 % |
50 | 103 | 612 | -83 % |
100 | 240 | 943 | -75 % |
150 | 560 | 1.590 | -65 % |
175 | 560 | 2.199 | -75 % |
Wir sehen eine weitere dramatische Verbesserung der Latenzleistung für ausgeglichene Workloads, bei denen ScaleGrid-MySQL-Bereitstellungen weniger leisten können als ein Drittel der Latenz im Vergleich zu Azure Database for MySQL. |
MySQL Schreibintensive Leistung
Während Lesevorgänge in der Datenbank suchen, sind Schreibvorgänge solche, die in der Datenbank speichern oder sie ändern, wie z. B. INSERT-, UPDATE- oder DELETE-Abfragen. Schreibintensive Workloads sind in der Regel teurer als leseintensive Workloads, da die Vorgänge mehr Ressourcen verbrauchen. Vergleichen wir den Durchsatz und die Latenzleistung von ScaleGrid mit Azure Database bei schreibintensiven MySQL-Workloads.
Durchsatz
Threads | ScaleGrid | Azurblau | ScaleGrid-Verbesserung |
---|---|---|---|
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 % |
In unserem schreibintensiven Szenario können wir die größte Leistungsverbesserung feststellen, wenn ScaleGrid bis zu 4x erreicht höherer Durchsatz im Vergleich zu Azure Database . Dies wird besonders deutlich in unseren Low-Thread-Szenarien, aber selbst bei 175 Threads ist ScaleGrid immer noch 2,5-mal besser als Azure Database. |
Latenz
Threads | ScaleGrid | Azurblau | ScaleGrid-Verbesserung |
---|---|---|---|
25 | 76 | 277 | -73 % |
50 | 101 | 383 | -74 % |
100 | 298 | 996 | -70 % |
150 | 760 | 1.740 | -56 % |
175 | 1.089 | 2.009 | -46 % |
ScaleGrid übertraf Azure Database erneut mit einer durchschnittlich um 64 % geringeren Latenz über alle Threads hinweg für schreibintensive Workloads. |
Wie wir aus den obigen Berichten ersehen können, hilft Ihnen ScaleGrid dabei, Ihren Durchsatz erheblich zu steigern und Ihre Latenz gegenüber Azure Database-Bereitstellungen für MySQL über leseintensive, schreibintensive und ausgeglichene Workloads hinweg zu verringern Szenarien. Weitere Informationen zum Leistungsvergleich dieser beiden Anbieter finden Sie auf der Seite „ScaleGrid vs. Azure Database MySQL“.
Benchmark-Konfigurationen
Werfen wir einen Blick auf die Konfigurationen, die wir im Leistungsbenchmark verwendet haben:
Konfigurationsvergleich
Wir haben die Konfiguration unter Verwendung der vergleichbarsten Pläne entwickelt, die zwischen ScaleGrid und Azure Database angeboten werden. Es gibt nur geringfügige Unterschiede und die Kosten sind bei beiden Anbietern gleich:
ScaleGrid MySQL auf Azure | Azure Database for MySQL | |
---|---|---|
Instanztyp | Dedicated Large:Standard_Ds2_v2 2 Kerne | Allgemeiner Zweck:2 Kerne |
RAM | 7GB | 10 GB (5 GB Arbeitsspeicher pro virtuellem Kern) |
SSD | 128 GB, Premium-SSD-Festplatte, 500 IOPS | 167 GB, bis zu 500 IOPS |
Bereitstellungstyp | 2+1-Quorum mit halbsynchroner Replikation | +1 Read Replica Asynchrone Replikation |
Region | USA, Osten | USA, Osten |
Unterstützung | Enthalten | Standardplan ($100) |
Geschätzter monatlicher Preis | $400 | $400 |
Sysbench-Konfiguration
Konfiguration | Details |
---|---|
Tool | Sysbench-Version 1.0.20 |
Host | Standard_Ds2_v2 2 Kerne (2 vcpus, 7 GB Speicher) in der Region „USA, Osten“ |
# Tabellen | 100 |
# Zeilen pro Tabelle | 2.000.000 |
Zufallszahlenverteilung | Spezial |
MySQL Server-Konfiguration
Konfiguration | Azure Scalegrid (dediziert) | Azure DB for MySQL |
---|---|---|
SQL-Version | 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 |
Beachten Sie, dass Sie bei ScaleGrid erweiterte Optionen zum Anpassen Ihrer MySQL-Konfigurationen haben. Auf diese Weise können Sie Ihre Bereitstellung an Ihre Anwendungsanforderungen anpassen und die Leistung optimieren. Leider lässt die Azure-Datenbank keine Anpassung einiger Parameter zu, sodass Sie an den Standardkonfigurationen festhalten, die über ihre Plattform verfügbar sind.
Zum Beispiel konnten wir die Größe der InnoDB-Protokolldatei auf 1 GB anpassen, während dies für Azure Database nicht geändert werden kann und einen Standardwert von 268 MB hat. Erfahren Sie mehr über die Einschränkungen in Azure Database for MySQL.
Es gibt viele weitere Vorteile der Verwendung von Scalegrid MySQL für Azure, sehen Sie sich den vollständigen Vergleich auf unserer Seite ScaleGrid vs. Azure Database – MySQL-Hosting an.