Microsoft Azure е един от най-популярните облачни доставчици в света и естествено подходящ за хостинг на бази данни в приложения, използващи Microsoft в своята инфраструктура. MySQL е номер едно база данни с отворен код, която обикновено се хоства чрез екземпляри на Azure. Докато Microsoft предлага свой собствен продукт за база данни Azure, има и други налични алтернативи, които може да са в състояние да ви помогнат да подобрите производителността на MySQL. В тази публикация в блога ние сравняваме Azure Database за MySQL срещу ScaleGrid MySQL на Azure, за да можете да видите кой доставчик предлага най-добрата производителност и латентност. Измерваме латентността в ms 95-та персентилна латентност.
С един поглед – TLDR | ||||||
---|---|---|---|---|---|---|
|
Тъкмо започвате? Вижте най-добрия начин за хостване на MySQL в публикация в Azure Cloud, за да научите повече за оптимизирането на внедряването на вашата облачна база данни.
Сравнение на производителността на MySQL Azure
В този отчет за сравнителен анализ ние сравняваме MySQL хостинг в Azure в ScaleGrid с Azure Database за MySQL в тези три сценария на натоварване:
- Натоварване с интензивно четене:80% четене и 20% запис
- Балансирано работно натоварване:50% четене и 50% запис
- Натоварване с интензивно писане:20% четене и 80% запис
Ние измерваме пропускателната способност на MySQL и производителността на латентността и измерваме пропускателната способност по отношение на заявки в секунда (QPS) и латентност по отношение на 95-ия процентил (ms). Разгледайте нашия раздел Конфигурация на сравнителен анализ под отчета за ефективността, за да видите как са конфигурирани тези тестове.
Ефективност с интензивно четене на MySQL
Натоварванията с интензивно четене на MySQL са натоварвания, които обикновено са доминирани от операции за четене, като SELECT. Така че работното натоварване с интензивно четене би било това, което търси базата данни по-често в сравнение с писането в нея. Percona има страхотна публикация за натоварвания с интензивно четене и писане, където можете да научите повече.
Нека да разгледаме производителността и латентността на ScaleGrid MySQL спрямо Azure Database за MySQL:
Пропускателна способност
Нишки | ScaleGrid | Azure | Подобрение на ScaleGrid |
---|---|---|---|
25 | 5,299 | 1689 | 214% |
50 | 6,092 | 2302 | 165% |
100 | 8,429 | 2877 | 193% |
150 | 9,011 | 2870 | 214% |
175 | 7 025 | 2805 | 151% |
Както можем да видим от горната графика и таблицата за производителност, ScaleGrid MySQL постига до 3 пъти по-висока пропускателна способност в сравнение с Azure Database за натоварвания с интензивно четене. Докато пропускателната способност на Azure Database за MySQL е под 3 000 заявки в секунда във всички сценарии на нишки, ScaleGrid има над 5 000-9 000 заявки в секунда в нишките. |
Закъснение
Нишки | ScaleGrid | Azure | Подобрение на ScaleGrid |
---|---|---|---|
25 | 258 | 451 | -43% |
50 | 101 | 670 | -85% |
100 | 148 | 978 | -85% |
150 | 309 | 1562 | -80% |
175 | 1089 | 1678 | -35% |
Докато забавянето на Azure Database за MySQL бързо нараства с нарастването на броя на нишките, ScaleGrid MySQL постоянно постига ниска латентност при всички нишки . Средно ScaleGrid за MySQL има 66% по-ниска латентност от Azure Database за MySQL за сценарии с интензивно четене на натоварване. |
Намалете забавянето на #MySQL с 66% в Azure с до 3 пъти по-висока производителност.>
Ефективност на балансирано работно натоварване на MySQL
Балансираните натоварвания използват приблизително равни количества операции за четене и операции за запис.
Пропускателна способност
Нишки | ScaleGrid | Azure | Подобрение на ScaleGrid |
---|---|---|---|
25 | 3806 | 1748 | 118% |
50 | 5834 | 2437 | 139% |
100 | 6,365 | 2712 | 135% |
150 | 5724 | 2775 | 106% |
175 | 6,206 | 1767 | 251% |
Средно ScaleGrid подобри пропускателната способност на MySQL със 150% спрямо Azure Database за MySQL за балансирани работни натоварвания и е над 2 пъти по-добър през целия брой нишки. Azure Database достигна максимална скорост от около 2775 заявки в секунда при 150 нишки, докато ScaleGrid постигна 5724 заявки в секунда за същия брой нишки. |
Закъснение
Нишки | ScaleGrid | Azure | Подобрение на ScaleGrid |
---|---|---|---|
25 | 76 | 390 | -81% |
50 | 103 | 612 | -83% |
100 | 240 | 943 | -75% |
150 | 560 | 1590 | -65% |
175 | 560 | 2199 | -75% |
Виждаме друго драматично подобрение в производителността на латентността за балансирани работни натоварвания, където внедряванията на ScaleGrid MySQL могат да работят с по-малко от една трета от латентността в сравнение с Azure Database за MySQL. |
Ефективност на MySQL интензивно писане
Докато операциите за четене търсят от базата данни, операциите за запис са тези, които записват или променят базата данни, като например заявки INSERT, UPDATE или DELETE. Натоварванията с интензивно писане обикновено са по-скъпи от натоварванията с интензивно четене, тъй като операциите консумират повече ресурси. Нека сравним ScaleGrid спрямо производителността на базата данни на Azure и латентността при натоварвания с интензивно писане на MySQL.
Пропускателна способност
Нишки | ScaleGrid | Azure | Подобрение на ScaleGrid |
---|---|---|---|
25 | 3327 | 826 | 303% |
50 | 5003 | 1154 | 334% |
100 | 5180 | 1476 | 251% |
150 | 4310 | 1651 | 161% |
175 | 4071 | 1643 | 148% |
В нашия сценарий с интензивен запис можем да видим най-голямото подобрение на производителността, когато ScaleGrid постига до 4x по-висока пропускателна способност в сравнение с базата данни Azure . Това е особено очевидно в нашите сценарии с ниска нишка, но дори при 175 нишки ScaleGrid все още работи 2,5 пъти по-добре от Azure Database. |
Закъснение
Нишки | ScaleGrid | Azure | Подобрение на ScaleGrid |
---|---|---|---|
25 | 76 | 277 | -73% |
50 | 101 | 383 | -74% |
100 | 298 | 996 | -70% |
150 | 760 | 1740 | -56% |
175 | 1089 | 2009 | -46% |
ScaleGrid превъзхожда Azure Database отново със средно 64% по-ниско забавяне за целия брой нишки за натоварвания с интензивно писане. |
Както можем да видим от горните отчети, ScaleGrid ви помага значително да увеличите пропускателната способност и да намалите латентността си спрямо внедряването на Azure Database за MySQL при интензивно четене, интензивно записване и балансирано натоварване сценарии. За да научите повече за това как тези два доставчика се сравняват между функциите, вижте страницата MySQL на ScaleGrid срещу Azure Database.
Конфигурации за сравнителен анализ
Нека да разгледаме конфигурациите, които използвахме в бенчмарка на производителността:
Сравнение на конфигурации
Проектирахме конфигурацията, използвайки най-сравнимите планове, предлагани между ScaleGrid и Azure Database. Има само малки разлики и разходите са еднакви за двата доставчици:
ScaleGrid MySQL на Azure | Azure Database за MySQL | |
---|---|---|
Тип на екземпляра | Специализиран голям:Standard_Ds2_v2 2 ядра | Общо предназначение:2 ядра |
RAM | 7GB | 10GB (5GB памет на vCore) |
SSD | 128GB, Premium SSD диск, 500 IOPS | 167GB, до 500 IOPS |
Тип внедряване | 2+1 кворум с полусинхронна репликация | +1 Асинхронна репликация за четене на реплика |
Регион | Източен САЩ | Източен САЩ |
Поддръжка | Включено | Стандартен план ($100) |
Прогнозна месечна цена | $400 | $400 |
Конфигурация на Sysbench
Конфигурация | Подробности |
---|---|
Инструмент | Sysbench версия 1.0.20 |
Хост | Standard_Ds2_v2 2 ядра (2 vcpus, 7GB памет) в регион Източен САЩ |
# Таблици | 100 |
# реда на таблица | 2 000 000 |
Разпределение на произволни числа | Специален |
Конфигурация на MySQL сървър
Конфигурация | Azure Scalegrid (Специализирана) | Azure DB за MySQL |
---|---|---|
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 |
Обърнете внимание, че в ScaleGrid имате разширени опции за персонализиране на вашите MySQL конфигурации. Това ви позволява да персонализирате внедряването си според нуждите на приложението си и да оптимизирате за производителност. За съжаление Azure Database не позволява персонализиране на някои от параметрите, така че сте останали с конфигурациите по подразбиране, достъпни чрез тяхната платформа.
Например успяхме да персонализираме размера на регистрационния файл на InnoDB до 1GB, докато за Azure Database това не може да се променя и има стойност по подразбиране от 268M. Научете повече за ограниченията в Azure Database за MySQL.
Има много други предимства от използването на Scalegrid MySQL за Azure, вижте пълното сравнение на нашата страница ScaleGrid срещу Azure Database – MySQL хостинг страница.