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