Назад | Перейти на главную страницу

Есть ли у кого-нибудь опыт, когда речь идет о скорости Amazon RDS против MySQL на небольшом сервере?

EC2 Small против Amazon RDS - что быстрее для MySQL?

(У меня одна база данных, хорошо проиндексированная и настроенная. Около 10 000 строк в каждой таблице.)

Как спектакль?

Во-первых, я не использую RDS - так что не воспринимайте это как абсолют. Как и в случае с EC2, RDS классифицируется по типу инстанса, поэтому с точки зрения вычислений вы получаете то же самое. Разница сводится к «конфигурации» и степени использования оборудования.

Преимущества RDS:

  • Оборудование предназначено только для работы RDS - не используется совместно с инстансами общего назначения
  • Возможно лучший сетевой ввод / вывод
  • Обеспечивает хорошую универсальную конфигурацию "из коробки"
  • Обновления управляются за вас
  • Потенциально проще настроить базовую репликацию
  • Хороший интерфейс для настройки
  • Резервное хранилище включено в стоимость

Недостатки RDS:

  • Более высокая стоимость, чем эквивалентный инстанс EC2 (на ~ 40% больше)
  • Ограниченная настройка
  • Производительность может сильно варьироваться (особенно дисковый ввод-вывод)
  • Необходимое обслуживание может привести к простою при использовании одного экземпляра RDS (этого можно избежать при развертывании в нескольких зонах доступности)
  • Это больше из-под вашего контроля

Преимущества EC2:

  • Можно настроить RAID-массивы для увеличения дискового ввода-вывода
  • Больше гибкости с точки зрения настройки (доступ к my.ini) и обслуживания
  • Низкая стоимость
  • Должен быть в состоянии достичь такой же или лучшей производительности при правильной настройке
  • Обеспечивает более традиционную репликацию и аварийное переключение
  • Можно настроить индивидуальный мониторинг / анализ - и решать проблемы напрямую

Недостатки EC2:

  • Требуется больше навыков / усилий для настройки
  • Производительность «из коробки» не так хороша, как у RDS
  • Менее стабильный сетевой ввод-вывод

Я бы предложил следующее:

  • Если вам не нужны хлопоты и / или вы не можете удовлетворительно настроить MySQL - используйте RDS.
  • Если сетевой ввод-вывод будет иметь большое значение (обычно настройки с множеством потоков одновременно используются) - RDS обеспечит более стабильную производительность
  • Если вам нужен мелкозернистый контроль (или вам не нужна лучшая производительность), или если вам нужна экономия, выбирайте EC2.
  • Если вы хотите изучать MySQL по мере роста - выбирайте EC2

Для любого конкретного случая использования лучшим вариантом, вероятно, будет тестирование каждого и посмотреть, как они складываются - производительность будет различаться для каждой настройки в конце концов.

Дальнейшее чтение:

Я не могу комментировать ответ @ cyberx86, поэтому я вынужден вмешаться с собственным ответом. Re: Производительность RDS DB выше производительности EC2 DB из коробки ...

Я постепенно сокращаю свои ресурсы AWS - меняю средние экземпляры на малые, когда это возможно, оптимизирую на уровне приложений и т. Д. В настоящее время я тестирую небольшой экземпляр MariaDB RDS по сравнению с небольшим экземпляром EC2 с MariaDB (возможно, экономия 8 долларов / мес). Я не пытался оптимизировать MariaDB на экземпляре EC2, кроме установки кодировки по умолчанию и сортировки, которые я хочу, и создания Aria в качестве типа таблицы по умолчанию.

Мой тестовый набор - это база данных, содержащая 150 таблиц, большинство из которых содержат менее 1000 строк, одна - примерно 500 КБ, а другая - 10 мил. Размер архива, заархивированного и сжатого sql с удалением, если существует / создает шаблон, составляет чуть менее 90 м. Установлен в БД, это 1,4 ГБ. Все операции ниже выполняются из дополнительного экземпляра EC2 в том же регионе (восток США) с использованием либо mysql или mysqldump по мере необходимости. Экземпляр RDS и вызывающий экземпляр EC2 - это us-east-1a, а экземпляр EC2 MariaDB - us-east-1c.

Export from RDS-small MariaDB to the archival format averaged 51s across 10 tests.
Export from EC2-small with MariaDB to the archival format averaged 40s across 10 tests.
Import to RDS-small MariaDB from the archival format averaged 8:17 across 10 tests.
Import to EC2-small with MariaDB from the archival format averaged 5:33 across 10 tests.

Это не научный тест, но я старался быть последовательным в своем исполнении. Такой результат оказался не таким, как я ожидал. Я предлагаю любому задать вопрос "EC2 с DB или RDS?" найти один или два эталона среди операций их приложения и протестировать ... потом, может быть, найду еще пару, чем я собираюсь заняться сегодня.