Статьи

Сравнительный анализ Aurora против MySQL: действительно ли новая база данных Amazon в 5 раз быстрее?

Amazon Aurora: новое поколение сервисов баз данных, прошедших тестирование

В этом посте мы подробнее рассмотрим Amazon Aurora, чтобы увидеть, как он работает с MySQL, и обещает ли это повышение производительности в 5 раз. В последнее время Aurora стала общедоступной базой данных, совместимой с MySQL. В настоящее время доступно в трех регионах AWS (Вирджиния, Орегон и Ирландия) в дополнение к RDS, службе реляционных баз данных Amazon.

mysql.vs_.aurora

По сути, Aurora — это следующий этап эволюции сервисов Amazon. Если сейчас мы привыкли использовать EC2 для наших серверов, а RDS был представлен для оптимизированных экземпляров базы данных, Aurora — это следующий шаг в этом предложении. Полностью совместим с любой операцией, которую вы выполняете через MySQL, поэтому никаких изменений кода не требуется.

Чтобы увидеть предыдущий тест скорости, который мы провели, и выяснить, как каждая из областей сравнивается друг с другом, вы можете прочитать этот блог прямо здесь .

Почему Amazon создает новую базу данных, совместимую с MySQL?

В отличие от размещения базы данных на RDS, где у нас есть дополнительные преимущества в производительности по сравнению с EC2, функции мониторинга и быстрой установки, у Aurora даже есть некоторые новые хитрости. Похоже, что новая база данных потребовалась, чтобы упростить Amazon дальнейшую оптимизацию производительности и добавить такие функции, как резервное копирование и автоматическое масштабирование хранилища базы данных — что недоступно в базовых экземплярах MySQL. В этом смысле нам обещают, что Aurora будет действовать как MySQL, если он будет оптимизирован для работы на AWS с первого дня.

Побочный эффект этого делает Аврору доступной только на AWS. Так, например, вы не сможете использовать локальную версию для тестирования, и вам придется полностью полагаться на экземпляры AWS. С другой стороны, для перехода на Aurora из существующего экземпляра базы данных достаточно нескольких щелчков мыши.

Результаты тестов

Чтобы лучше понять, как Aurora соответствует производительности MySQL, мы установили простой тест, охватывающий сценарий с интенсивной записью с использованием sysbench . Для этого мы использовали аналогичную конфигурацию из предыдущей оценки производительности Aurora, проведенной Amazon. В этой версии бенчмарка мы запустили 4 разных экземпляра: последний MySQL 5.6 для EC2 и RDS, Aurora для RDS и версия-кандидат в готовящемся выпуске MySQL 5.7 для EC2. Точная настройка, которую мы использовали, и необработанные результаты доступны в следующем разделе этого поста. Давайте прыгнем прямо и посмотрим на выводы:

Операций в секунду

Сравнение операций в секунду для MySQL и Aurora на EC2 и RDS

Сравнение операций в секунду для MySQL и Aurora на EC2 и RDS

  1. MySQL 5.6 был на 8% лучше, чем Aurora — Aurora показала лучшие результаты в этом тесте, хотя далеко от обещания 5x, которое мы привыкли слышать от Amazon. Возможно, самые большие различия проявляются в разных установках с большими размерами БД, но это просто показывает нам важность опробования в вашем конкретном случае использования.
  2. RDS обеспечивает повышение производительности до 60% по сравнению с EC2 . Более существенное различие наблюдается при сравнении производительности баз данных в EC2 и RDS. Использование RDS обеспечило значительное улучшение по сравнению с развертыванием той же базы данных в EC2.
  3. MySQL 5.7 RC обеспечил несколько лучшие результаты, чем MySQL 5.6 — следующая версия MySQL показывает некоторый прогресс, даже несмотря на то, что тест производительности RC содержал значительное количество игнорируемых ошибок (полные результаты доступны по ссылке ниже).
  4. Принимая во внимание время отклика 95-го процентиля, различия становятся еще больше — Aurora была на 20% лучше, чем MySQL 5.6 на RDS, а MySQL 5.7 была на 20% лучше, чем MySQL 5.6 на EC2. RDS работает примерно в 3 раза лучше, чем EC2.

Время отклика

Сравнение времени отклика 95-й процентили для MySQL и Aurora на EC2 и RDS

Сравнение времени отклика 95-й процентили для MySQL и Aurora на EC2 и RDS

Основы

Тестирование включало настройку 5 экземпляров r3.large на AWS: компьютер EC2, который будет запускать тест, и компьютеры с самими базами данных. MySQL 5.6 на EC2, MySQL 5.7 RC на EC2, MySQL 5.6 на RDS и Aurora, которая доступна только на RDS. Затем мы создали тестовую базу данных с 250 таблицами и размером 25 000 таблиц на каждой из протестированных машин:

1
./sysbench test=tests/db/oltp.lua –mysql-host= –mysql-port=3306 –mysql-user= –mysqlpassword= –mysql-db= –mysql-table-engine=innodb — oltp-table-size=25000 –oltp-tables-count=250 –db-driver=mysql prepare

После этого мы выполнили вариант описанного здесь тестового теста Amazon с высокой интенсивностью записи (300 секунд вместо 600 и 125 потоков вместо 1000):

1
./sysbench test=tests/db/oltp.lua –mysql-host= –oltp-tables-count=250 –mysql-user= –mysqlpassword= –mysql-port=3306 –db-driver=mysql –oltp-tablesize=25000 –mysql-db= –max-requests=0 –max-time=300 — oltp_simple_ranges=0 –oltp-distinct-ranges=0 –oltp-sum-ranges=0 –oltporder-ranges=0 –oltp-point-selects=0 –num-threads=125 –randtype=uniform run

Таким образом, у теста было 5 минут, чтобы бросить все, что у него есть, на каждый экземпляр базы данных и доложить о результатах. Необработанный вывод sysbench доступен прямо здесь:

Последние мысли

Что касается управляемых услуг, Аврора, безусловно, шаг в правильном направлении. Принятие размещенных решений для баз данных на следующий уровень. Но это подходящий момент для миграции с вашей базой данных в RDS с Aurora? Мы считаем, что RDS доказал, что это правильный путь в отношении размещенного MySQL, и сейчас самое время поэкспериментировать с Aurora, если вы включили его в конкретные случаи для тестирования в производстве. Как и в случае с любой новой технологией, которая настолько близка к данным, которые лежат в основе вашего бизнеса, вам нужно действовать с осторожностью. С учетом вышесказанного, основной проблемой, которую мы не рассмотрели, является ценообразование, и именно здесь Aurora дает наибольшие обещания по сравнению с традиционными полномасштабными коммерческими базами данных.