Mysql
 sql >> база данни >  >> RDS >> Mysql

Как да подобрим производителността на MySQL AWS 2 пъти над Amazon RDS на същата цена

AWS е доставчик на облак №1 за хостинг на база данни с отворен код и облак за внедряване на MySQL. Тъй като организациите продължават да мигрират към облака, важно е да се изправите пред проблеми с производителността, като висока латентност, ниска пропускателна способност и забавяне на репликацията с по-големи разстояния между вашите потребители и облачна инфраструктура. Докато много потребители на AWS по подразбиране използват своето решение за управлявана база данни, Amazon RDS, има налични алтернативи, които могат да подобрят вашата MySQL производителност в AWS чрез разширени опции за персонализиране и неограничена поддръжка на типове EC2 екземпляри. ScaleGrid предлага завладяваща алтернатива на хостването на MySQL на AWS, която предлага по-добра производителност, повече контрол и без заключване на доставчика в облак и същата цена като Amazon RDS. В тази публикация сравняваме производителността на MySQL Amazon RDS спрямо MySQL хостинг в ScaleGrid на AWS високопроизводителни инстанции.

TLDR

Разгръщането MySQL на ScaleGrid на AWS High Performance може да осигури 2x-3x пропускателната способност при половината от латентността на Amazon RDS за MySQL с допълнителното им предимство да имат 2 реплики за четене в сравнение с 1 инча RDS.

MySQL на тест за производителност на AWS

ScaleGrid Amazon RDS
Тип на екземпляра AWS High Performance XLarge (вижте подробностите за системата по-долу) DB екземпляр r4.xlarge (Multi-AZ)
Тип на внедряване Набор от 3 възела главен-подчинен с полусинхронна репликация Разгръщане в няколко AZ с 1 реплика за четене
SSD диск Локален SSD и общо предназначение – 2TB Общо предназначение – 2TB
Месечна цена (USD) 1798$ 1789$

Amazon RDS Разходи Цена Количество Общо Бележки
Multi-AZ
DB екземпляр (hr) $0,48 730 350,40$ db.r4.xlarge
DB екземпляр (hr) $0,48 730 350,40$ db.r4.xlarge
Съхранение (GB) $0,115 2000 $230,00 Общо предназначение – 2TB (Single-AZ)
Прочетете реплика
DB екземпляр (hr) $0,48 730 350,40$ db.r4.xlarge (Single-AZ)
Съхранение (GB) $0,115 2000 $230,00 Общо предназначение – 2TB (Single-AZ)
Други разходи
Архивно съхранение (GB) $0,095 1000 $95,00 Освободете до 100% от хранилището на DB
Прехвърляне на данни (извън към интернет) $0,09 0 $0,00 Безплатно до 1GB/месец
Прехвърляне на данни (излизане към региони) $0,01 2000 $20,00 Изток на САЩ (Северна Вирджиния)
Поддръжка $162,62 1 $162,62 10% от месечните разходи
Общо $1,788.82

Както можете да видите от таблицата по-горе, цените на MySQL RDS са в рамките на $10 спрямо напълно управляваното и всеобхватно решение за хостинг MySQL на ScaleGrid.

Какви са високопроизводителните набори реплики на ScaleGrid?

Комплектът реплики ScaleGrid MySQL на AWS High Performance използва хибрид от локален SSD и EBS диск, за да постигне както висока производителност, така и висока надеждност. Типична конфигурация се разгръща с помощта на набор от реплики с 3 възела:

  • Master и Slave-1 използват локални SSD дискове.
  • Slave-2 използва EBS диск (може да бъде с общо предназначение или осигурен IOPS диск).

Какво означава това? Тъй като Master и Slave-1 работят на локален SSD, вие получавате възможно най-добрата производителност на диска от вашите AWS машини. Няма повече мрежово базиран EBS, просто невероятно бърз локален SSD. Чете и записва на вашия Primary и дори чете от Slave-1 ще работи със скорост на SSD. Slave-2 използва EBS диск с данни и можете да конфигурирате количеството IOPS, необходимо за вашия клъстер. Тази конфигурация осигурява пълна безопасност за вашите данни, дори в случай, че загубите локалните SSD дискове.

Наборът реплики MySQL AWS High Performance XLarge на ScaleGrid използва екземпляри i3.xlarge (30,5 GB RAM) с локален SSD за главен и подчинен-1 и i3.2xlarge (61 GB RAM) екземпляр за Slave-2.

Конфигурация на MySQL

Подобна конфигурация на MySQL се използва както за внедряване на ScaleGrid, така и за RDS:

Конфигурация Стойност
версия 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 LOGICAL_CLOCK

Конфигурация за сравнителен анализ на производителността на MySQL

Конфигурация Подробности
Инструмент Sysbench версия 1.0.17
Хост 1 r4.xlarge, разположен в същия център за данни на AWS като Master MySQL
# Таблици 100
# реда на таблица 5,000,000
Скрипт за генериране на работно натоварване oltp_read_write.lua

Сценарии и резултати за тестване на производителността на MySQL

За да гарантираме, че предоставяме информативни резултати за всички типове натоварвания на MySQL AWS, ние разбихме нашите тестове в тези три сценария, за да можете да оцените въз основа на интензивността на натоварването при четене/запис:

  1. Натоварване с интензивно четене: 80% чете и 20% пише
  2. Балансирано работно натоварване: 50% чете и 50% пише
  3. Натоварване с интензивно писане: 20% чете и 80% пише

Всеки сценарий се изпълнява с различен брой клиентски нишки на sysbench, вариращи от 50 до 400, и всеки тест се изпълнява за продължителност от 10 минути. Ние измерваме пропускателната способност по отношение на заявки в секунда (QPS) и 95-ти процентил латентност и гарантираме, че максималното забавяне на репликация на подчинените устройства не надхвърля 30 секунди. За някои от тестовете за внедряването на ScaleGrid, конфигурацията на MySQL binlog_group_commit_sync_delay е настроена така, че забавянето на подчинената репликация да не надхвърля 30 секунди. Тази техника се нарича „забавяне на главния за ускоряване на подчинените“ и е обяснена в блога на J-F Gagne.

Как да подобрим производителността на #MySQL AWS 2 пъти над Amazon RDS на същата цена Щракнете за туит

Сценарий 1:Работно натоварване с интензивно четене с 80% четене и 20% записване

Както можем да видим от тестовете с интензивно четене, високопроизводителните MySQL екземпляри на ScaleGrid в AWS са в състояние да обработват последователно около 27 800 QPS навсякъде от 50 до 400 нишки. Това е почти 200% увеличение в сравнение с MySQL RDS производителността, която е средно само 9411 QPS в същия диапазон от нишки.

ScaleGrid също поддържа 53% по-ниска латентност средно по време на всички тестове за производителност на MySQL AWS. Закъснението както на Amazon RDS, така и на ScaleGrid се увеличава постоянно с нарастването на броя на нишките, където ScaleGrid достига максимум 383 мс за 400 нишки, докато Amazon RDS е на 831 мс на същото ниво.

Сценарий 2:Балансирано работно натоварване с 50% четене и 50% записване

В нашите тестове за ефективност на балансирано работно натоварване, разгръщането на MySQL High Performance на ScaleGrid в AWS отново превъзхожда със средно 20 605 QPS в нишки, вариращи от 50 до 400. Amazon RDS само средно 8296 за същия брой нишки, което води до 148% подобрение с ScaleGrid.

Закъсненията както на ScaleGrid, така и на Amazon RDS значително намаляха при тестовете за балансирано натоварване в сравнение с тестовете с интензивно четене, разгледани по-горе. Amazon RDS има средна латентност от 258 мс в тестовете за балансирано работно натоварване, където ScaleGrid достига средно само 125 мс, постигайки над 52% намаление на латентността спрямо MySQL на Amazon RDS.

Сценарий 3:Работно натоварване с интензивно писане с 20% четене и 80% записване

В нашия последен сценарий с интензивно писане на работно натоварване на MySQL AWS, ScaleGrid постигна значително по-висока производителност със средно 17 007 QPS в диапазона от 50 до 400 нишки. Това е 123% подобрение спрямо Amazon RDS, който постигна само 7638 QPS за същия брой нишки.

Тестовете за забавяне на 95-ия процентил също дадоха значително по-ниска латентност за ScaleGrid при средно 114 мс за 50 до 400 нишки. Amazon RDS постигна средно 247 мс в своите тестове за закъснение, което доведе до средно намаление на латентността с 54% при внедряване на високопроизводителния MySQL на ScaleGrid в AWS услуги през Amazon RDS.

Анализ

Както забелязахме от резултатите от теста, натоварванията с интензивно четене доведоха както до по-висока пропускателна способност, така и до латентност спрямо балансирани натоварвания и натоварвания с интензивно записване, независимо как MySQL беше внедрен на AWS:

MySQL на AWS Средни тестове за производителност на производителността ScaleGrid Amazon RDS Подобрение на ScaleGrid
Пропускателна способност с интензивно четене 27 795 9,411 195,4%
Балансиране на производителността на работното натоварване 20 605 8,296 148,4%
Пропускателна способност с интензивно писане 17 007 7 638 122,7%

MySQL на AWS Средни стойности на теста за забавяне ScaleGrid Amazon RDS Подобрение на ScaleGrid
Закъснение с интензивно четене 206ms 439ms -53,0%
Закъснение на балансирано работно натоварване 125ms 258ms -51,6%
Закъснение с интензивно писане 114ms 247ms -53,8%

Обяснение на резултатите

  • Виждаме, че ScaleGrid MySQL при внедряването на AWS осигурява близо 3 пъти по-добра пропускателна способност за натоварването с интензивно четене в сравнение с внедряването на RDS.
  • С увеличаването на натоварването при запис, въпреки че абсолютната пропускателна способност намалява, ScaleGrid все още осигурява близо 2,5 пъти по-добра производителност.
  • За натоварвания, изискващи интензивно писане, открихме, че забавянето на репликацията е започнало да се задейства за EBS slave при внедряването на ScaleGrid. Тъй като нашата цел беше да запазим забавянето на подчинената репликация в рамките на 30 секунди за нашите изпълнения, ние въведохме binlog_group_commit_sync_delay, за да гарантираме, че подчинените могат да постигнат по-добро паралелно изпълнение. Това контролираше забавянето и доведе до по-малка абсолютна пропускателна способност при внедряването на ScaleGrid, но все пак можехме да видим 2,2 пъти по-добра пропускателна способност в сравнение с внедряването на RDS.
  • За всички сценарии с интензивно четене, интензивно записване и балансирано натоварване, ScaleGrid предлага 0,5 пъти по-ниски характеристики на латентност в сравнение с RDS.

Разгръщането с висока производителност на ScaleGrid може да осигури 2x-3x пропускателната способност при половината от латентността на RDS с допълнително предимство от наличието на 2 реплики за четене в сравнение с 1 в RDS. За да научите повече за предимствата на хостинг MySQL на ScaleGrid пред Amazon RDS за MySQL, разгледайте нашата страница за сравнение на доставчици на MySQL или започнете безплатна 30-дневна пробна версия, за да разгледате напълно управляваната DBaaS платформа.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да синхронизирам повторно Mysql DB, ако главен и подчинен имат различен корпус на база данни на Mysql репликация?

  2. Как да извадя часовете от дата и час в MySQL?

  3. Разбиране на застой в MySQL и PostgreSQL

  4. bbPress:Как да намерите съпоставяния на прикачени файлове към съответните им публикации

  5. Дублиране, копиране или архивиране на таблици в MySQL, MariaDB, Oracle, PostgreSQL, DB2 и SQLite със Създаване на таблица като SQL