Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL na platformie Azure Performance Benchmark — ScaleGrid a Azure Database

Microsoft Azure jest jednym z najpopularniejszych dostawców usług w chmurze na świecie i w naturalny sposób nadaje się do hostingu baz danych w aplikacjach wykorzystujących Microsoft w swojej infrastrukturze. MySQL to największa baza danych typu open source, która jest często hostowana za pośrednictwem instancji platformy Azure. Chociaż firma Microsoft oferuje własny produkt Azure Database, istnieją inne dostępne alternatywy, które mogą pomóc w poprawie wydajności MySQL. W tym wpisie w blogu porównujemy Azure Database for MySQL i ScaleGrid MySQL na platformie Azure, aby zobaczyć, który dostawca oferuje najlepszą przepustowość i wydajność opóźnień. Mierzymy opóźnienie w 95. percentylu czasu oczekiwania.

W skrócie – TLDR

Obciążenia z intensywnym odczytem

Podczas obciążeń o dużej intensywności odczytu ScaleGrid udaje się osiągnąć do 3 razy wyższą przepustowość i średnio o 66% większe opóźnienia w porównaniu z usługą Azure Database. Przeczytaj teraz

Zrównoważone obciążenia

Dzięki średniej o 150% wyższej przepustowości i mniej niż jednej trzeciej opóźnienia ScaleGrid przewyższa Azure Database dla zrównoważonych obciążeń. Przeczytaj teraz

Obciążenia z intensywnym zapisem

Scalegrid osiąga do 4 razy wyższą przepustowość i średnio o 64% mniejsze opóźnienia we wszystkich wątkach w porównaniu z usługą Azure Database for MySQL. Przeczytaj teraz

Dopiero zaczynasz? Zapoznaj się z wpisem Najlepszy sposób na hostowanie MySQL w chmurze Azure, aby dowiedzieć się więcej o optymalizacji wdrażania bazy danych w chmurze.

test wydajności MySQL Azure

W tym raporcie porównawczym porównujemy hosting MySQL na platformie Azure w ScaleGrid z usługą Azure Database for MySQL w tych trzech scenariuszach obciążenia:

  • Obciążenie intensywnego odczytu:80% odczytów i 20% zapisów
  • Zrównoważone obciążenie pracą:50% odczytów i 50% zapisów
  • Obciążenie intensywnego zapisu:20% odczytów i 80% zapisów

Mierzymy przepustowość i opóźnienia MySQL oraz mierzymy przepustowość pod względem zapytań na sekundę (QPS) i opóźnienia pod względem 95. percentyla (ms). Sprawdź naszą sekcję Konfiguracja testu porównawczego pod raportem wydajności, aby zobaczyć, jak skonfigurowano te testy.

Wydajność MySQL z intensywnym odczytem

Obciążenia intensywnie odczytujące MySQL to obciążenia, które są zazwyczaj zdominowane przez operacje odczytu, takie jak SELECT. Tak więc obciążeniem intensywnego odczytu byłoby takie, które częściej przeszukuje bazę danych niż pisanie do niej. Percona ma świetny post na temat obciążeń intensywnie czytających i zapisujących, w którym możesz dowiedzieć się więcej.

Rzućmy okiem na przepustowość i opóźnienia między ScaleGrid MySQL a Azure Database for MySQL:

Przepustowość

Wątki ScaleGrid Lazurowe Ulepszenie ScaleGrid
25 5299 1689 214%
50 6092 2302 165%
100 8429 2877 193%
150 9011 2870 214%
175 7025 2805 151%
Jak widać na powyższym wykresie i tabeli wydajności, ScaleGrid MySQL osiąga do 3x większą przepustowość w porównaniu z usługą Azure Database w przypadku obciążeń intensywnie korzystających z odczytu. Podczas gdy przepustowość usługi Azure Database for MySQL jest mniejsza niż 3000 zapytań na sekundę we wszystkich scenariuszach wątków, ScaleGrid ma ponad 5000-9 000 zapytań na sekundę we wszystkich wątkach.

Opóźnienie

Wątki ScaleGrid Lazurowe Ulepszenie ScaleGrid
25 258 451 -43%
50 101 670 -85%
100 148 978 -85%
150 309 1562 -80%
175 1089 1678 -35%
Podczas gdy opóźnienie usługi Azure Database for MySQL gwałtownie rośnie wraz ze wzrostem liczby wątków, ScaleGrid MySQL stale osiąga niskie opóźnienia we wszystkich liczbach wątków . ScaleGrid dla MySQL ma średnio o 66% mniejsze opóźnienie niż Azure Database dla MySQL dla scenariuszy wymagających intensywnego odczytu.

Zmniejsz opóźnienie #MySQL o 66% na platformie Azure, dzięki nawet 3-krotnie wyższej przepustowościKliknij, aby tweetować

Wydajność zrównoważonego obciążenia MySQL

Zrównoważone obciążenia wykorzystują mniej więcej taką samą liczbę operacji odczytu i operacji zapisu.

Przepustowość

Wątki ScaleGrid Lazurowe Ulepszenie ScaleGrid
25 3,806 1748 118%
50 5834 2437 139%
100 6365 2712 135%
150 5724 2775 106%
175 6206 1767 251%
Średnio ScaleGrid poprawiło przepustowość MySQL o 150% w porównaniu z bazą danych Azure dla MySQL dla zrównoważonych obciążeń i jest ponad 2x lepszy we wszystkich wątkach. Usługa Azure Database osiągnęła maksymalną liczbę 2775 zapytań na sekundę przy 150 wątkach, podczas gdy ScaleGrid osiągnęła 5724 zapytań na sekundę dla tej samej liczby wątków.

Opóźnienie

Wątki ScaleGrid Lazurowe Ulepszenie ScaleGrid
25 76 390 -81%
50 103 612 -83%
100 240 943 -75%
150 560 1590 -65%
175 560 2199 -75%
Widzimy kolejną radykalną poprawę wydajności opóźnień dla zrównoważonych obciążeń, gdzie wdrożenia ScaleGrid MySQL są w stanie wykonać mniej niż jedna trzecia opóźnienia w porównaniu do Azure Database for MySQL.

Intensywna wydajność zapisu MySQL

Podczas gdy operacje odczytu wyszukują w bazie danych, operacje zapisu to te, które zapisują lub modyfikują bazę danych, takie jak zapytania INSERT, UPDATE lub DELETE. Obciążenia intensywnie korzystające z zapisu są zwykle droższe niż obciążenia intensywnie korzystające z odczytu, ponieważ operacje zużywają więcej zasobów. Porównajmy przepustowość ScaleGrid i Azure Database z wydajnością opóźnień w obciążeniach MySQL intensywnie korzystających z zapisu.

Przepustowość

Wątki ScaleGrid Lazurowe Ulepszenie ScaleGrid
25 3327 826 303%
50 5,003 1154 334%
100 5180 1476 251%
150 4310 1651 161%
175 4071 1643 148%
W naszym scenariuszu z intensywnym zapisem jesteśmy w stanie zaobserwować największą poprawę wydajności, w której ScaleGrid osiąga do 4x wyższa przepustowość w porównaniu do Azure Database . Jest to szczególnie widoczne w naszych scenariuszach z niską liczbą wątków, ale nawet przy 175 wątkach ScaleGrid nadal działa 2,5 raza lepiej niż Azure Database.

Opóźnienie

Wątki ScaleGrid Lazurowe Ulepszenie ScaleGrid
25 76 277 -73%
50 101 383 -74%
100 298 996 -70%
150 760 1740 -56%
175 1089 2009 -46%
ScaleGrid ponownie przewyższył Azure Database ze średnio 64% niższym opóźnieniem we wszystkich wątkach dla obciążeń wymagających intensywnego zapisu.

Jak widać z powyższych raportów, ScaleGrid pomaga znacznie zwiększyć przepustowość i zmniejszyć opóźnienia w stosunku do wdrożeń Azure Database dla MySQL w przypadku intensywnych operacji odczytu, zapisu i zrównoważonych obciążeń scenariusze. Aby dowiedzieć się więcej o porównaniu tych dwóch dostawców w różnych funkcjach, zapoznaj się ze stroną ScaleGrid i Azure Database MySQL.

Konfiguracje benchmarków

Rzućmy okiem na konfiguracje użyte w teście wydajności:

Porównanie konfiguracji

Konfigurację zaprojektowaliśmy przy użyciu najbardziej porównywalnych planów oferowanych między ScaleGrid a Azure Database. Istnieją tylko niewielkie różnice, a koszty są takie same dla dwóch dostawców:

ScaleGrid MySQL na Azure Azure Database for MySQL
Typ wystąpienia Dedykowana duża:Standard_Ds2_v2 2 rdzenie Ogólny cel:2 rdzenie
RAM 7GB 10 GB (5 GB pamięci na rdzeń wirtualny)
SSD 128 GB, dysk SSD Premium, 500 IOPS 167 GB, do 500 IOPS
Typ wdrożenia 2+1 Kworum z replikacją półsynchroniczną +1 Asynchroniczna replikacja odczytu repliki
Region Wschodnie USA Wschodnie USA
Wsparcie W zestawie Standardowy plan (100 USD)
Szacowana cena miesięczna 400$ 400$

Konfiguracja Sysbench

Konfiguracja Szczegóły
Narzędzie Sysbench wersja 1.0.20
Host Standard_Ds2_v2
2 rdzenie (2 vcpus, 7 GB pamięci) w regionie wschodnich Stanów Zjednoczonych
# tabele 100
# wierszy na tabelę 2,000,000
Rozkład liczb losowych Specjalne

Konfiguracja serwera MySQL

Konfiguracja Azure Scalegrid (dedykowane) Azure DB dla MySQL
wersja SQL 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

Zauważ, że w ScaleGrid masz zaawansowane opcje dostosowywania konfiguracji MySQL. Umożliwia to dostosowanie wdrożenia do potrzeb aplikacji i optymalizację pod kątem wydajności. Niestety Azure Database nie pozwala na dostosowanie niektórych parametrów, więc utkniesz z domyślnymi konfiguracjami dostępnymi za pośrednictwem ich platformy.

Na przykład udało nam się dostosować rozmiar pliku dziennika InnoDB do 1 GB, podczas gdy w przypadku Azure Database nie można tego zmienić i ma on domyślną wartość 268M. Dowiedz się więcej o ograniczeniach usługi Azure Database for MySQL.

Istnieje wiele innych zalet używania Scalegrid MySQL dla Azure, sprawdź pełne porównanie na naszej stronie ScaleGrid vs. Azure Database – MySQL Hosting.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wartości oddzielone przecinkami w klauzuli MySQL IN

  2. Jaka jest różnica między INNER JOIN, LEFT JOIN, RIGHT JOIN i FULL JOIN?

  3. Jak wyświetlić dane Unicode za pomocą PHP

  4. Włącz zdalny dostęp do bazy danych MySQL

  5. ScaleGrid DBaaS rozszerza usługi hostingowe MySQL poprzez AWS Cloud