- PVSM.RU - https://www.pvsm.ru -
Сегодня разработчики не представляют себе высоконагруженную систему без базы данных. Этот способ хранения информации становится культовым. Мы привыкли работать с базой данных каждый день, но все же есть тёмные пятна. Одно из них – производительность. Написано множество статей о настройке, оптимизации базы данных и т.д. Они полезны, если у вас уже есть база данных (БД) и её производительности недостаточно. Но эти статьи не помогут, если вам нужно запустить базу данных в облачных сервисах, таких как AWS, Azure, Rackspace и т.д.
Уверен, эти вопросы некоторым знакомы, потому что меня много об этом спрашивали:
Цель статьи – решить эти вопросы. Конечно, на них нет прямого ответа, он будет начинаться со слов «зависит от ...». Но я надеюсь, мой анализ все же поможет вам принять правильное решение.
В левом углу ринга удивительный выделенный железный сервер HP DL380 G9 со следующими спецификациями:
CPU: 16 cores (Dual Socket Octo Core Intel Xeon E5–2630v3 2.4GHz, #Processors: 2, #Cores per Proc: 8)
RAM: 128 GB
DISKS: 500 GB RAID 5 SSD
А в правом углу ринга два сервиса Amazon: EC2 и RDS. Чтобы добиться таких же характеристик, как на железном сервере, я использую два инстанса базы данных: DB1 (Memory Optimized) и DB2 (Compute optimized). Спецификации следующие:
DB1:
r3.4xlarge (memory optimized)
16 cores
122 GB RAM
320 GB SSD Instance Storage
DB2:
c3.8xlarge
32 cores
60 GB RAM
750 GB io1 EBS 7500 IOPS
Я также протестирую инстансы с разными типами аренды: выделенные и по запросу, плюс EBS-оптимизацию для инстанса, в который она не включена по умолчанию (например, r3.4xlarge).
Обратите внимание:
sysbench --db-driver=mysql --num-threads=$THREADS --max-requests=0 --test=oltp --mysql-table-engine=innodb --oltp-table-size=2000000 --max-time=60 --mysql-engine-trx=yes --mysql-user=$USER --mysql-password=$PASSWORD --mysql-host=$HOST run
Прежде чем перейти к тестированию, хочу показать вам рекомендации Amazon. В 2015 году компания выпустила подробный Whitepaper по запуску реляционных баз данных на EC2 и RDS. Полную документацию вы найдёте по ссылке [1].
Вот краткая выдержка из документа:
Рекомендуем сначала рассмотреть Amazon RDS. Это лучший выбор, если:
Лучше запустить SQL Server на EC2, если:
Как я уже говорил, у нас есть два бойца на ринге, так что в результате мы получим железный сервер против AWS. Поскольку мы используем пару сервисов Amazon, будет несколько тестов:


Результаты очень интересные, попробуем проанализировать:

Как вы видите из графиков выше, инстансы EC2 недостаточно хорошо работают для высоконагруженных систем с огромным количеством соединений. Поэтому на вопрос «Использовать для базы данных Amazon RDS или EC2?» я должен ответить: «Зависит от ...». Если вы работаете с высоконагруженной базой данных с огромным количеством соединений, то определённо должны выбрать RDS. По сравнению с железными серверами он показывает неплохие результаты, несмотря на разницу при меньшем количестве потоков. Но если вы используете кластерную систему с парой подчинённых узлов и количеством потоков меньше 16, выберите EC2 – этот сервис немного лучше работает при меньшем количестве потоков.
На вопрос: «Должен ли я использовать AWS или железный сервер для моей базы данных» отвечу также: «Зависит от ...», только помните что:
| Железный сервер Физический |
Облако IaaS Виртуальные машины в публичном облаке |
|
|---|---|---|
| П л ю с ы |
|
|
| М и н у с ы |
|
|
По заявлению Amazon выделенные инстансы главным образом обеспечивают безопасность данных. Результаты тестирования по разным регионам плавающие – отличаются буквально на 2-3%. В основном это зависит от нагрузки на регион и, как следствие, расхождения графиков. Я бы не стал рассматривать выделенные инстансы как способ увеличить быстродействие БД.
И да, до сих пор сложно ответить на вопрос: «Сервер какого типа я должен выбрать на Amazon?». Но я советую запускать базу данных для высоконагруженных систем на RDS. Если все же решите использовать EC2, то инстансы Memory Optimized с EBS-оптимизацией – лучший выбор.
Автор: FirstVDS / FirstDEDIC
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/mysql/253667
Ссылки в тексте:
[1] по ссылке: http://d0.awsstatic.com/whitepapers/rdbms-in-the-cloud-sql-server-on-aws.pdf
[2] выделенный сервер: https://www.reg.ru/?rlink=reflink-717
[3] Источник: https://habrahabr.ru/post/327046/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.