sql >> Databáze >  >> RDS >> Mysql

Jak zlepšit výkon MySQL AWS 2x oproti Amazon RDS za stejnou cenu

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:

  1. Úloha náročná na čtení: 80 % čtení a 20 % psaní
  2. Vyvážená pracovní zátěž: 50 % čtení a 50 % zápis
  3. 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 Tweet

Scé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.


  1. Vytvoření databáze programově v SQL Server

  2. MYSQL OR vs výkon IN

  3. Instalace SQL Server 2017

  4. Selhání addnode resolv.conf