sql >> Databasteknik >  >> RDS >> Mysql

MySQL på Azure Performance Benchmark – ScaleGrid vs. Azure Database

Microsoft Azure är en av de mest populära molnleverantörerna i världen och en naturlig passform för databasvärd på applikationer som utnyttjar Microsoft i hela sin infrastruktur. MySQL är den främsta databasen med öppen källkod som vanligtvis är värd genom Azure-instanser. Även om Microsoft erbjuder sin egen Azure Database-produkt, finns det andra tillgängliga alternativ som kan hjälpa dig att förbättra din MySQL-prestanda. I det här blogginlägget jämför vi Azure Database for MySQL vs. ScaleGrid MySQL på Azure så att du kan se vilken leverantör som erbjuder bäst genomströmning och latensprestanda. Vi mäter latens i ms 95:e percentilens latens.

En överblick – TLDR

Läsintensiva arbetsbelastningar

Under läsintensiva arbetsbelastningar lyckas ScaleGrid uppnå upp till 3 gånger högre genomströmning och har i genomsnitt 66 % bättre latens jämfört med Azure Database. Läs nu

Balanserade arbetsbelastningar

Med ett genomsnitt på 150 % bättre genomströmning och mindre än en tredjedel av latensen överträffar ScaleGrid Azure Database for Balanced Workloads. Läs nu

skrivintensiva arbetsbelastningar

Scalegrid uppnår upp till 4 gånger högre genomströmning och har i genomsnitt 64 % lägre latens över alla antal trådar jämfört med Azure Database for MySQL. Läs nu

Börjar du precis? Kolla in inlägget Det bästa sättet att vara värd för MySQL på Azure Cloud för att lära dig mer om hur du optimerar din molndatabasdistribution.

MySQL Azure Performance Benchmark

I den här benchmarkrapporten jämför vi MySQL-hosting på Azure på ScaleGrid vs. Azure Database för MySQL över dessa tre scenarier för arbetsbelastning:

  • Läsintensiv arbetsbelastning:80 % läser och 20 % skriver
  • Balanserad arbetsbelastning:50 % läser och 50 % skriver
  • Skriv intensiv arbetsbelastning:20 % läser och 80 % skriver

Vi mäter MySQL-genomströmningen och latensprestanda, och mäter genomströmningen i termer av frågor per sekund (QPS) och latens i termer av 95:e percentilen (ms). Kolla in avsnittet Benchmark Configuration under resultatrapporten för att se hur dessa tester konfigurerades.

MySQL läsintensiv prestanda

MySQL läsintensiva arbetsbelastningar är arbetsbelastningar som vanligtvis domineras av läsoperationer, såsom SELECT. Så en läsintensiv arbetsbelastning skulle vara en som söker igenom databasen oftare än att skriva till den. Percona har ett bra inlägg om läsintensiva kontra skrivintensiva arbetsbelastningar där du kan lära dig mer.

Låt oss ta en titt på genomströmnings- och latensprestanda för ScaleGrid MySQL vs. Azure Database for MySQL:

Genomströmning

Trådar ScaleGrid Azure ScaleGrid Improvement
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 %
Som vi kan se från ovanstående graf och prestandatabell uppnår ScaleGrid MySQL upp till 3 gånger högre genomströmning b> jämfört med Azure Database för läsintensiva arbetsbelastningar. Medan Azure Database for MySQL-genomströmningen är under 3 000 frågor per sekund i alla trådscenarier, har ScaleGrid över 5 000-9 000 frågor per sekund i trådar.

Latens

Trådar ScaleGrid Azure ScaleGrid Improvement
25 258 451 -43 %
50 101 670 -85 %
100 148 978 -85 %
150 309 1562 -80 %
175 1 089 1 678 -35 %
Medan Azure Database for MySQL-latens snabbt ökar när antalet trådar växer, uppnår ScaleGrid MySQL stadigt låg latens över alla trådantal . I genomsnitt har ScaleGrid för MySQL 66 % lägre latens än Azure Database för MySQL för läsintensiva arbetsbelastningsscenarier.

Minska din #MySQL-latens med 66 % på Azure, med upp till 3 gånger högre genomströmningsprestandaKlicka för att tweeta

MySQL Balanced Workload Performance

Balanserade arbetsbelastningar utnyttjar ungefär lika stora mängder läs- och skrivoperationer.

Genomströmning

Trådar ScaleGrid Azure ScaleGrid Improvement
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 %
I genomsnitt förbättrade ScaleGrid MySQL-genomströmningen med 150 % jämfört med Azure Database för MySQL för balanserade arbetsbelastningar och är över två gånger bättre över alla antal trådar. Azure Database maxade med cirka 2 775 frågor per sekund vid 150 trådar, medan ScaleGrid uppnådde 5 724 frågor per sekund för samma antal trådar.

Latens

Trådar ScaleGrid Azure ScaleGrid Improvement
25 76 390 -81 %
50 103 612 -83 %
100 240 943 -75 %
150 560 1 590 -65 %
175 560 2 199 -75 %
Vi ser ytterligare en dramatisk förbättring av latensprestanda för balanserade arbetsbelastningar, där ScaleGrid MySQL-distributioner kan prestera mindre än en tredjedel av latensen jämfört med Azure Database for MySQL.

MySQL skrivintensiv prestanda

Medan läsoperationer söker från databasen, är skrivoperationer de som sparar till eller modifierar databasen, såsom INSERT, UPDATE eller DELETE-frågor. Skrivintensiva arbetsbelastningar är vanligtvis dyrare än läsintensiva arbetsbelastningar eftersom verksamheten förbrukar mer resurser. Låt oss jämföra ScaleGrid vs. Azure Database-genomströmning och latensprestanda över MySQL-skrivintensiva arbetsbelastningar.

Genomströmning

Trådar ScaleGrid Azure ScaleGrid Improvement
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 %
I vårt skrivintensiva scenario kan vi se den största prestandaförbättringen där ScaleGrid uppnår upp till 4x högre genomströmning jämfört med Azure Database . Detta är särskilt uppenbart i våra scenarier med låg tråd, men även vid 175 trådar presterar ScaleGrid fortfarande 2,5 gånger bättre än Azure Database.

Latens

Trådar ScaleGrid Azure ScaleGrid Improvement
25 76 277 -73 %
50 101 383 -74 %
100 298 996 -70 %
150 760 1 740 -56 %
175 1 089 2 009 -46 %
ScaleGrid överträffade Azure Database igen med ett genomsnitt på 64 % lägre latens över alla antal trådar för skrivintensiva arbetsbelastningar.

Som vi kan se från ovanstående rapporter hjälper ScaleGrid dig att avsevärt öka din genomströmning och minska din latens mot Azure Database-distributioner för MySQL över läsintensiva, skrivintensiva och balanserade arbetsbelastningar scenarier. Om du vill veta mer om hur dessa två leverantörer jämför mellan funktioner, kolla in ScaleGrid vs. Azure Database MySQL-sidan.

Benchmark-konfigurationer

Låt oss ta en titt på konfigurationerna vi använde i prestandabenchmark:

Konfigurationsjämförelse

Vi utformade konfigurationen med de mest jämförbara planerna som erbjuds mellan ScaleGrid och Azure Database. Det finns bara mindre skillnader och kostnaderna är desamma för de två leverantörerna:

ScaleGrid MySQL på Azure Azure Database for MySQL
Instanstyp Dedikerad Large:Standard_Ds2_v2 2 kärnor Allmänt syfte:2 kärnor
RAM 7 GB 10 GB (5 GB minne per vCore)
SSD 128 GB, Premium SSD-disk, 500 IOPS 167 GB, upp till 500 IOPS
Typ av distribution 2+1 kvorum med semisynkron replikering +1 Läs Replika Asynkron replikering
Region Östra USA Östra USA
Support Ingår Standardplan (100 USD)
Uppskattat månadspris 400 $ 400 $

Sysbench-konfiguration

Konfiguration Detaljer
Verktyg Sysbench version 1.0.20
Värd Standard_Ds2_v2
2 kärnor (2 vcpus, 7 GB minne) i regionen östra USA
# tabeller 100
# rader per tabell 2 000 000
Slumptalsfördelning Special

MySQL-serverkonfiguration

Konfiguration Azure Scalegrid (dedikerad) 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

Observera att på ScaleGrid har du avancerade alternativ för att anpassa dina MySQL-konfigurationer. Detta gör att du kan anpassa din distribution till dina applikationsbehov och optimera för prestanda. Tyvärr tillåter inte Azure Database anpassning av vissa av parametrarna, så du har fastnat med standardkonfigurationerna som är tillgängliga via deras plattform.

Vi kunde till exempel anpassa InnoDB-loggfilens storlek till 1 GB, medan detta för Azure Database inte kan ändras och har ett standardvärde på 268M. Läs mer om begränsningarna i Azure Database for MySQL.

Det finns många andra fördelar med att använda Scalegrid MySQL för Azure, kolla in den fullständiga jämförelsen på vår ScaleGrid vs. Azure Database – MySQL Hosting-sida.


  1. Ska jag ange både INDEX och UNIKT INDEX?

  2. Få aktuellt AUTO_INCREMENT-värde för valfri tabell

  3. Vad behöver jag för att undvika när jag skickar en förfrågan?

  4. Hur man får datumet från en sträng i Oracle