Microsoft Azure je jedním z nejpopulárnějších poskytovatelů cloudu na světě a přirozeně se hodí pro hostování databází v aplikacích využívajících Microsoft v celé jejich infrastruktuře. MySQL je open source databáze číslo jedna, která je běžně hostována prostřednictvím instancí Azure. Přestože Microsoft nabízí svůj vlastní produkt Azure Database, jsou k dispozici další alternativy, které vám mohou pomoci zlepšit výkon MySQL. V tomto příspěvku na blogu porovnáváme Azure Database for MySQL a ScaleGrid MySQL v Azure, abyste viděli, který poskytovatel nabízí nejlepší propustnost a výkon latence. Latenci měříme v ms 95. percentilu latence.
Na první pohled – TLDR | ||||||
---|---|---|---|---|---|---|
|
Jste na začátku? Podívejte se na příspěvek Nejlepší způsob hostování MySQL v Azure Cloud, kde se dozvíte více o optimalizaci nasazení cloudové databáze.
Srovnání výkonu MySQL Azure
V této srovnávací zprávě porovnáváme hostování MySQL v Azure na ScaleGrid vs. Azure Database for MySQL v těchto třech scénářích zátěže:
- Intenzivní zátěž pro čtení:80 % čtení a 20 % zápisů
- Vyvážená pracovní zátěž:50 % čtení a 50 % zápisů
- Pracovní zátěž náročná na zápis:20 % čtení a 80 % zápis
Měříme propustnost a latenci MySQL a měříme propustnost z hlediska dotazů za sekundu (QPS) a latenci z hlediska 95. percentilu (ms). Podívejte se na naši sekci Konfigurace srovnávacích testů pod zprávou o výkonu, abyste viděli, jak byly tyto testy nakonfigurovány.
Výkon při intenzivním čtení MySQL
Úlohy náročné na čtení MySQL jsou pracovní zátěže, kterým obvykle dominují operace čtení, jako je SELECT. Takže zátěž náročná na čtení by byla taková, která prohledává databázi častěji než zápis do ní. Percona má skvělý příspěvek o pracovní zátěži náročné na čtení vs. zápis, kde se můžete dozvědět více.
Pojďme se podívat na propustnost a latenci ScaleGrid MySQL vs. Azure Database for MySQL:
Propustnost
Vlákna | ScaleGrid | Azurová | Vylepšení 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 % |
Jak můžeme vidět z výše uvedeného grafu a tabulky výkonu, ScaleGrid MySQL dosahuje až 3x vyšší propustnosti ve srovnání s Azure Database pro úlohy náročné na čtení. Zatímco propustnost Azure Database for MySQL je nižší než 3 000 dotazů za sekundu ve všech scénářích vláken, ScaleGrid má přes 5 000–9 000 dotazů za sekundu napříč vlákny. |
Latence
Vlákna | ScaleGrid | Azurová | Vylepšení ScaleGrid |
---|---|---|---|
25 | 258 | 451 | -43 % |
50 | 101 | 670 | -85 % |
100 | 148 | 978 | -85 % |
150 | 309 | 1562 | -80 % |
175 | 1 089 | 1 678 | -35 % |
Zatímco latence Azure Database for MySQL rychle roste s rostoucím počtem vláken, ScaleGrid MySQL stabilně dosahuje nízké latence napříč všemi počty vláken. . ScaleGrid pro MySQL má v průměru o 66 % nižší latenci než Azure Database pro MySQL pro scénáře zátěže náročné na čtení. |
Snižte latenci #MySQL o 66 % v Azure s až 3krát vyšší propustnostíClick To Tweet
Vyvážený výkon zátěže MySQL
Vyvážená pracovní zátěž využívá zhruba stejný počet operací čtení a zápisu.
Propustnost
Vlákna | ScaleGrid | Azurová | Vylepšení 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 % |
V průměru ScaleGrid zlepšil propustnost MySQL o 150 % oproti Azure Database pro MySQL pro vyvážené pracovní zatížení a je více než 2x lepší napříč celým počtem vláken. Azure Database dosáhla maximální rychlosti přibližně 2 775 dotazů za sekundu při 150 vláknech, zatímco ScaleGrid dosáhla 5 724 dotazů za sekundu pro stejný počet vláken. |
Latence
Vlákna | ScaleGrid | Azurová | Vylepšení ScaleGrid |
---|---|---|---|
25 | 76 | 390 | -81 % |
50 | 103 | 612 | -83 % |
100 | 240 | 943 | -75 % |
150 | 560 | 1 590 | -65 % |
175 | 560 | 2 199 | -75 % |
Vidíme další dramatické zlepšení výkonu latence u vyvážených pracovních zátěží, kde nasazení ScaleGrid MySQL dokáže fungovat s nižší než jedna třetina latence ve srovnání s Azure Database for MySQL. |
Výkon MySQL náročný na zápis
Zatímco operace čtení prohledávají v databázi, operace zápisu jsou ty, které ukládají nebo upravují databázi, jako jsou dotazy INSERT, UPDATE nebo DELETE. Úlohy náročné na zápis jsou obvykle dražší než úlohy náročné na čtení, protože operace spotřebovávají více zdrojů. Pojďme porovnat ScaleGrid vs. propustnost databáze Azure a výkon latence v rámci úloh náročných na zápis do MySQL.
Propustnost
Vlákna | ScaleGrid | Azurová | Vylepšení 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 % |
V našem scénáři náročném na zápis jsme schopni zaznamenat největší zlepšení výkonu tam, kde ScaleGrid dosahuje až 4x vyšší propustnost ve srovnání s Azure Database . To je zvláště patrné v našich scénářích s nízkým vláknem, ale i při 175 vláknech ScaleGrid stále funguje 2,5x lépe než Azure Database. |
Latence
Vlákna | ScaleGrid | Azurová | Vylepšení 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 opět překonal Azure Database s průměrem o 64 % nižší latencí napříč všemi vlákny pro zátěže náročné na zápis. |
Jak je vidět z výše uvedených přehledů, ScaleGrid vám pomáhá výrazně zvýšit propustnost a snížit latenci oproti nasazení Azure Database pro MySQL v rámci náročných úloh náročných na čtení, zápis a vyvážených úloh. scénáře. Další informace o srovnání těchto dvou poskytovatelů napříč funkcemi najdete na stránce ScaleGrid vs. Azure Database MySQL.
Srovnávací konfigurace
Pojďme se podívat na konfigurace, které jsme použili v benchmarku výkonu:
Porovnání konfigurací
Konfiguraci jsme navrhli pomocí nejsrovnatelnějších plánů nabízených mezi ScaleGrid a Azure Database. Existují pouze drobné rozdíly a náklady jsou u obou poskytovatelů stejné:
ScaleGrid MySQL v Azure | Azure Database for MySQL | |
---|---|---|
Typ instance | Vyhrazená velká:Standard_Ds2_v2 2 jádra | Obecné použití:2 jádra |
RAM | 7 GB | 10 GB (5 GB paměti na vCore) |
SSD | 128 GB, prémiový SSD disk, 500 IOPS | 167 GB, až 500 IOPS |
Typ nasazení | Kvorum 2+1 se semisynchronní replikací | +1 pro čtení repliky asynchronní replikace |
Region | Východ USA | Východ USA |
Podpora | V ceně | Standardní tarif (100 $) |
Odhadovaná měsíční cena | 400 $ | 400 $ |
Konfigurace Sysbench
Konfigurace | Podrobnosti |
---|---|
Nástroj | Sysbench verze 1.0.20 |
Hostitel | Standard_Ds2_v2 2 jádra (2 vcpus, 7 GB paměti) v regionu východní USA |
# tabulky | 100 |
# Řádky na tabulku | 2 000 000 |
Rozdělení náhodných čísel | Speciální |
Konfigurace serveru MySQL
Konfigurace | Azure Scalegrid (Dedicated) | Azure DB pro MySQL |
---|---|---|
Verze SQL | 5.7.25 | 5.7.27 |
innodb_buffer_pool_size | 4G | 7,5G |
innodb_log_file_size | 1G | 268 milionů |
innodb_io_capacity | 500 | 500 |
innodb_io_capacity_max | 1000 | 1000 |
Všimněte si, že ve ScaleGrid máte pokročilé možnosti přizpůsobení konfigurací MySQL. To vám umožní přizpůsobit vaše nasazení potřebám vaší aplikace a optimalizovat výkon. Azure Database bohužel neumožňuje přizpůsobení některých parametrů, takže jste uvízli u výchozích konfigurací dostupných prostřednictvím jejich platformy.
Například jsme byli schopni přizpůsobit velikost souboru protokolu InnoDB na 1 GB, zatímco pro Azure Database to nelze upravit a má výchozí hodnotu 268 MB. Přečtěte si další informace o omezeních v Azure Database for MySQL.
Používání ScaleGrid MySQL pro Azure má mnoho dalších výhod. Podívejte se na úplné srovnání na naší stránce ScaleGrid vs. Azure Database – Hosting MySQL.