AWS je poskytovatel cloudu č. 1 pro hostování databází s otevřeným zdrojovým kódem a cloud pro nasazení MySQL. Protože organizace pokračují v migraci do cloudu, je důležité řešit problémy s výkonem, jako je vysoká latence, nízká propustnost a zpoždění replikace s většími vzdálenostmi mezi vašimi uživateli a cloudovou infrastrukturou. Zatímco mnoho uživatelů AWS používá jako výchozí řešení své spravované databázové řešení Amazon RDS, jsou k dispozici alternativy, které mohou zlepšit váš výkon MySQL na AWS prostřednictvím pokročilých možností přizpůsobení a neomezené podpory typu instance EC2. ScaleGrid nabízí přesvědčivou alternativu k hostování MySQL na AWS, která nabízí lepší výkon, větší kontrolu a žádné uzamčení dodavatele cloudu a stejnou cenu jako Amazon RDS. V tomto příspěvku porovnáme výkon MySQL Amazon RDS vs. MySQL Hosting na ScaleGrid na instancích AWS High Performance.
TLDR
Nasazení MySQL společnosti ScaleGrid na AWS High Performance může poskytnout 2x až 3x vyšší propustnost při poloviční latenci než Amazon RDS pro MySQL s jejich další výhodou, že má 2 repliky pro čtení ve srovnání s 1 in RDS.
Test výkonu MySQL na AWS
ScaleGrid | Amazon RDS | |
Typ instance | AWS High Performance XLarge (viz podrobnosti o systému níže) | Instance DB r4.xlarge (Multi-AZ) |
Typ nasazení | Sada 3 uzlů Master-Slave se semisynchronní replikací | Multi-AZ nasazení s 1 replikou pro čtení |
SSD disk | Místní SSD a univerzální – 2 TB | Všeobecné použití – 2 TB |
Měsíční náklady (USD) | 1 798 $ | 1 789 $ |
Amazon RDS náklady | Cena | Množstvo | Celkem | Poznámky |
Multi-AZ | ||||
Instance DB (hr) | 0,48 $ | 730 | 350,40 $ | db.r4.xlarge |
Instance DB (hr) | 0,48 $ | 730 | 350,40 $ | db.r4.xlarge |
Úložiště (GB) | 0,115 $ | 2000 | 230,00 $ | Obecné použití – 2 TB (single-AZ) |
Přečtěte si Replika | ||||
Instance DB (hr) | 0,48 $ | 730 | 350,40 $ | db.r4.xlarge (Single-AZ) |
Úložiště (GB) | 0,115 $ | 2000 | 230,00 $ | Obecné použití – 2 TB (single-AZ) |
Ostatní náklady | ||||
Záložní úložiště (GB) | 0,095 $ | 1000 | 95,00 $ | Uvolněte až 100 % úložiště DB |
Přenos dat (ven na internet) | 0,09 $ | 0 | 0,00 $ | Zdarma až 1 GB/měsíc |
Přenos dat (ven do regionů) | 0,01 $ | 2000 | 20,00 $ | Východ USA (Severní Virginie) |
Podpora | 162,62 $ | 1 | 162,62 $ | 10 % měsíčních nákladů |
Celkem | 1 788,82 $ |
Jak můžete vidět z výše uvedené tabulky, cena MySQL RDS je do 10 USD od plně spravovaného a komplexního hostingového řešení MySQL společnosti ScaleGrid.
Co jsou vysoce výkonné sady replik ScaleGrid?
Sada replik ScaleGrid MySQL na AWS High Performance využívá hybrid místního SSD a EBS disku k dosažení vysokého výkonu a vysoké spolehlivosti. Typická konfigurace je nasazena pomocí sady replik se 3 uzly:
- Master a Slave-1 používají místní SSD disky.
- Slave-2 používá disk EBS (může to být disk pro všeobecné použití nebo vyhrazený disk IOPS).
Co to znamená? Vzhledem k tomu, že Master a Slave-1 běží na lokálním SSD, získáte ze svých počítačů AWS nejlepší možný diskový výkon. Už žádné síťové EBS, jen bleskově rychlé místní SSD. Čtení a zápisy na primární a dokonce i čtení z Slave-1 bude fungovat rychlostí SSD. Slave-2 používá datový disk EBS a můžete nakonfigurovat množství IOPS požadované pro váš cluster. Tato konfigurace poskytuje úplnou bezpečnost pro vaše data, a to i v případě, že ztratíte místní SSD disky.
Sada replik MySQL AWS High Performance XLarge společnosti ScaleGrid používá instance i3.xlarge (30,5 GB RAM) s místním SSD pro Master a Slave-1 a i3.2xlarge (61 GB RAM) instance pro Slave-2.
Konfigurace MySQL
Podobná konfigurace MySQL se používá v nasazeních ScaleGrid i RDS:
Konfigurace | Hodnota |
verze | Vydání komunity 5.7.25 |
innodb_buffer_pool_size | 25G |
innodb_log_file_size | 1G |
innodb_flush_log_at_trx_commit | 1 |
sync_binlog | 1 |
innodb_io_capacity | 3000 |
innodb_io_capacity_max | 6000 |
slave_parallel_workers | 30 |
slave_parallel_type | LOGICKÉ_HODINY |
Konfigurace srovnávacího výkonu MySQL
Konfigurace | Podrobnosti |
Nástroj | Sysbench verze 1.0.17 |
Hostitel | 1 r4.xlarge umístěný ve stejném datovém centru AWS jako hlavní MySQL |
# tabulky | 100 |
# Řádky na tabulku | 5 000 000 |
Skript pro generování pracovní zátěže | oltp_read_write.lua |
Scénáře a výsledky testu výkonu MySQL
Abychom zajistili, že poskytneme informativní výsledky pro všechny typy zátěže MySQL AWS, rozdělili jsme naše testy do těchto tří scénářů, abyste je mohli hodnotit na základě intenzity zátěže při čtení/zápisu:
- Úloha náročná na čtení: 80 % čtení a 20 % psaní
- Vyvážená pracovní zátěž: 50 % čtení a 50 % zápis
- Vytížení náročné na psaní: 20 % čtení a 80 % psaní
Každý scénář je spuštěn s různým počtem klientských vláken sysbench v rozmezí od 50 do 400 a každý test se spouští po dobu 10 minut. Propustnost měříme pomocí dotazů za sekundu (QPS) a latence 95. percentilu a zajišťujeme, že maximální zpoždění replikace na podřízených zařízeních nepřekročí 30 s. U některých testů na nasazení ScaleGrid je konfigurace MySQL binlog_group_commit_sync_delay vyladěna tak, aby zpoždění replikace slave nepřesáhlo 30 s. Tato technika se nazývá „zpomalení pána, aby se urychlili otroci“ a je vysvětlena na blogu J-F Gagne.
Jak zlepšit výkon #MySQL AWS 2x oproti Amazon RDS za stejnou cenu Kliknutím na TweetScénář 1:Vytížení náročné na čtení s 80 % čtení a 20 % zápisů
Jak můžeme vidět z testů zátěže náročné na čtení, vysoce výkonné instance MySQL ScaleGrid na AWS jsou schopny konzistentně zpracovávat přibližně 27 800 QPS kdekoli od 50 do 400 vláken. To je téměř 200% nárůst oproti výkonu MySQL RDS, který má v průměru pouze 9 411 QPS ve stejném rozsahu vláken.
ScaleGrid také udržuje o 53 % nižší latenci v průměru během celých testů výkonu MySQL AWS. Latence Amazon RDS i ScaleGrid se neustále zvyšují s rostoucím počtem vláken, kde ScaleGrid dosahuje maxima 383 ms pro 400 vláken, zatímco Amazon RDS je na stejné úrovni 831 ms.
Scénář 2:Vyvážená pracovní zátěž s 50 % čtení a 50 % zápisů
V našich testech vyváženého pracovního zatížení vysoce výkonné nasazení MySQL na AWS společnosti ScaleGrid opět překonává s průměrem 20 605 QPS na vláknech v rozmezí od 50 do 400. Amazon RDS pouze v průměru 8 296 pro stejný počet vláken, což vedlo ke 148% zlepšení s ScaleGrid.
Latence ScaleGrid i Amazon RDS se výrazně snížila v testech vyvážené zátěže ve srovnání s testy náročnými na čtení uvedenými výše. Amazon RDS měl průměrnou latenci 258 ms v testech vyvážené zátěže, kde ScaleGrid dosáhl v průměru pouze 125 ms a dosáhl více než 52% snížení latence oproti MySQL na Amazon RDS.
Scénář 3:Vytížení náročné na zápis s 20 % čtení a 80 % zápisů
V našem závěrečném scénáři zátěže MySQL AWS s intenzivním zápisem dosáhl ScaleGrid výrazně vyšší propustnosti s průměrem 17 007 QPS v rozsahu 50 až 400 vláken. To je 123% zlepšení oproti Amazon RDS, který dosáhl pouze 7 638 QPS při stejném počtu vláken.
Testy latence 95. percentilu také přinesly výrazně nižší latenci pro ScaleGrid v průměru 114 ms během 50 až 400 vláken. Amazon RDS dosáhl ve svých testech latence v průměru 247 ms, což vedlo k průměrnému 54% snížení latence při nasazení vysoce výkonného MySQL společnosti ScaleGrid na služby AWS přes Amazon RDS.
Analýza
Jak jsme zjistili z výsledků testu, pracovní zatížení náročné na čtení mělo za následek vyšší propustnost a latenci oproti vyváženému pracovnímu zatížení a pracovnímu zatížení náročnému na zápis, bez ohledu na to, jak MySQL bylo nasazeno na AWS:
Průměry testu výkonu MySQL na AWS propustnost | ScaleGrid | Amazon RDS | Vylepšení ScaleGrid |
Propustnost náročná na čtení | 27 795 | 9 411 | 195,4 % |
Vyvážení propustnosti zátěže | 20 605 | 8 296 | 148,4 % |
Propustnost náročná na zápis | 17 007 | 7 638 | 122,7 % |
Průměry testu výkonu MySQL na AWS latence | ScaleGrid | Amazon RDS | Vylepšení ScaleGrid |
Intenzivní latence při čtení | 206 ms | 439 ms | -53,0 % |
Vyvážená latence pracovní zátěže | 125 ms | 258 ms | -51,6 % |
Latence intenzivního zápisu | 114 ms | 247 ms | -53,8 % |
Vysvětlení výsledků
- Vidíme, že nasazení ScaleGrid MySQL na AWS poskytlo téměř 3x lepší propustnost pro zátěž náročné na čtení ve srovnání s nasazením RDS.
- Jak se zátěž při zápisu zvyšovala, i když se absolutní propustnost snížila, ScaleGrid stále poskytoval téměř 2,5krát lepší propustnost.
- U pracovních zátěží náročných na zápis jsme zjistili, že zpoždění replikace se začalo projevovat u slave EBS v nasazení ScaleGrid. Protože naším cílem bylo udržet zpoždění replikace slave do 30 s pro naše běhy, zavedli jsme binlog_group_commit_sync_delay, abychom zajistili, že slave může dosáhnout lepšího paralelního provádění. To řídilo zpoždění a vedlo k menší absolutní propustnosti při nasazení ScaleGrid, ale stále jsme mohli vidět 2,2x lepší propustnost ve srovnání s nasazením RDS.
- U všech scénářů náročného na čtení, zápisu a vyváženého pracovního zatížení nabízel ScaleGrid 0,5x nižší charakteristiky latence ve srovnání s RDS.
Nasazení ScaleGrid 'High Performance' může poskytnout 2x-3x vyšší propustnost při poloviční latenci RDS s další výhodou 2 čtecích replik ve srovnání s 1 v RDS. Chcete-li se dozvědět více o výhodách hostování MySQL společnosti ScaleGrid oproti Amazon RDS pro MySQL, podívejte se na naši stránku Porovnání poskytovatelů MySQL nebo spusťte bezplatnou 30denní zkušební verzi, abyste mohli prozkoumat plně spravovanou platformu DBaaS.