Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Leistungsbenchmark für MySQL auf Azure – ScaleGrid vs. Azure Database

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

Leseintensive Arbeitslasten

Bei leseintensiven Workloads erreicht ScaleGrid im Vergleich zu Azure Database einen bis zu dreimal höheren Durchsatz und eine durchschnittlich 66 % bessere Latenz. Jetzt lesen

Ausgeglichene Arbeitslasten

Mit einem durchschnittlich 150 % besseren Durchsatz und weniger als einem Drittel der Latenz übertrifft ScaleGrid Azure Database for Balanced Workloads. Jetzt lesen

Schreibintensive Workloads

Scalegrid erzielt im Vergleich zu Azure Database for MySQL einen bis zu viermal höheren Durchsatz und eine durchschnittlich 64 % geringere Latenz über alle Threads hinweg. Jetzt lesen

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.