Назад в библиотеку

Оценка эффективности использования различных реляционных СУБД на сервере с высокой нагрузкой

Автор: Сербин О.Н.
Источник: Інформаційні управляючі системи та комп'ютерний моніторинг / Матерiали IV міжнародної науково-технiчної конференцiї. — Донецьк, ДонНТУ — 2013, с. 228-232.

Аннотация

Сербин О.Н. Оценка эффективности использования различных реляционных СУБД на сервере с высокой нагрузкой. Произведено тестирование популярных в наше время систем управления баз данных Oracle MySQL и её свободно распространяемых ответвлений – Percona Server и MariaDB на сервере, где пиковое число активных подключений составляет 5500. Произведено сравнение результатов тестирования для каждой из вышеперечисленных СУБД и приведены рекомендации по их использованию.

Постановка проблемы

Одна из основных проблем, с которой сталкиваются большинство крупных проектов – это организация эффективного аппаратного и программного обеспечения, которые смогут при различных нагрузках обеспечивать комфортную работу клиентов компании. И когда финансирование компании достаточно для приобретения современного мощного оборудования, очень остро стоит вопрос поиска оптимального программного обеспечения. Наиболее распространенной разновидностью ПО, которыми располагают крупные проекты, являются системы управления базами данных (СУБД). Поскольку количество хранимой информации может достигать десятков гигабайт, а количество запросов в секунду – несколько тысяч, то выбор СУБД может негативно повлиять на работу всего сервера.

Цель статьи

Провести тестирование серверной задержки при использовании различных СУБД и выполнить анализ результатов.


Система управления базами данных (СУБД) – это прикладная информационная система, опирающаяся на некоторую систему управления данными, обладающая различными возможностями (язык манипулирования данными, восстановление данных после сбоя, организация параллельной работы и т.д.).

Основные требования к СУБД, которые являются общими и обязательными для любого проекта:

Наиболее популярной реляционной СУБД является MySQL, разработкой и поддержкой которой занимается корпорация Oracle. Одними из важнейших её преимуществ являются поддержка большого количества типов таблиц (MyISAM, InnoDB, EXAMPLE), а также возможность установки на различные платформы (Windows, Linux, MacOS и т.д.).

Благодаря открытой архитектуре и GPL-лицензированию, сообществом разработчиков были созданы различные ответвления кода (форки), например Drizzle, OurDelta, Percona Server и MariaDB.

В данной работе были проведены исследования, в результате которых были сделаны выводы по эффективности использования некоторых из представленных видов MySQL. На игровом сервере, где количество подключений в пиковое время достигает 5500 подключений, поочередно были установлены MySQL 5.1, Percona Server with XtraDB 5.1 и MariaDB 5.3.12. В разное время суток при разном количестве активных подключений производился замер серверной задержки. Также следует отметить, что сервер автоматически перезагружается в 4 часа утра, поэтому первый замер выполнялся в 4:30, а каждый последующий – через каждый час. Замеры задержки состояли из 10 последовательных проверок, в результате которых выбирались минимальное, максимальное и среднее значения.

В первом этапе тестирования была установлена на сервер СУБД MySQL Community Server версии 5.1, которая на этом этапе была помечена разработчиками, как стабильная. Учитывая нововведение этой версии – возможность разбить одну большую таблицу на несколько частей (сегментирование), при определенных условиях это может дать серьезное увеличение производительности. Результаты тестирования, приведенные в таблице 1, позволяют сделать оценку в разное время суток при различной загрузке сервера (максимальной и минимальной).


Таблица 1 – Значение средних показателей серверной задержки в разное время суток при использовании СУБД MySQL Community Server 5.1


Время сутокЧисло подключений к серверу Значение серверной задержки, мс
МинимальноеМаксимальноеСреднее
4:30~180084279168
5:30~230097312176
...............
11:30~4120473765512
12:30~4650379786442
...............
16:305500397785512
17:3055003081132567
18:305500327963445
19:3055005141207669
...............
0:30~3710393492458
1:30~3600319624493

Анализируя полученные результаты, можно отметить, что максимальное значение серверной задержки достигает 1207 мс, которое вызывает значительный дискомфорт у пользователей. При этом также заметны значительные скачки задержки в различные промежутки времени (например, 84мс и 279мс в 4:30, либо 308мс и 1132мс в 17:30), что также может вызывать переменные зависания при работе с сервером. Средние значения серверной задержки колеблются от 168мс при минимальном числе подключений, до 669мс – при максимальном числе.

На втором этапе была выбрана следующая СУБД – Percona Server with XtraDB 5.1. Выбор этой СУБД был не случайным, так как разработчики охарактеризовали своё ПО, как более быстрое, легко контролируемое и настраиваемое. Также интерес произвела поддержка подсистемы XtraDB, которая позволяет отказаться от InnoDB, и отличается от нее более высокой производительностью. Разработчики утверждают, что механизм XtraDB выполняет в 2.7 раза больше транзакций, чем стандартный InnoDB. И так как обе подсистемы совместимы друг с другом, переход с одной на другую не составляет никакого труда, к чему изначально и вела задумка разработчиков подсистемы XtraDB. Результаты проведенного тестирования с использованием СУБД Percona Server приведены в таблице 2. Следует отметить, что среднесуточные показатели количества подключений значительно не отличаются от предыдущего теста.


Таблица 2 – Значение средних показателей серверной задержки в разное время суток при использовании СУБД Percona Server with XtraDB 5.1


Время сутокЧисло подключений к серверу Значение серверной задержки, мс
МинимальноеМаксимальноеСреднее
4:30~1680189231198
5:30~2360193256212
...............
11:30~4020327412378
12:30~4450367534435
...............
16:305500412558438
17:305500369478416
18:305500439598445
19:305500421764512
...............
0:30~3910321418367
1:30~3860309447398

Полученные результаты показали отсутствие резких скачков серверной задержки, какие были замечены в прошлом тесте. Максимальное зафиксированное значение задержки – 764мс, также значительно меньше, чем у MySQL 5.1 сервера. А вот минимальное значение составляет 189мс и является большим, по сравнению со значением, определенным в предыдущем тестировании. Средние значения серверной задержки колеблются от 198мс при минимальном числе подключений, до 512мс – при максимальном числе.

На последнем этапе была выбрана СУБД MariaDB версии 5.3.12. Эта альтернатива стандартной MySQL обладает массой преимуществ, например улучшенным оптимизатором запросов, поддержки XtraDB (о которой было сказано выше), а также поддержки Aria engine. Последняя является более безопасной альтернативой движку MyISAM. Особый интерес составил описанный разработчиками пул потоков, с помощью которого можно эффективно использовать СУБД в задачах с большим числом активных соединений без снижения производительности. Особую роль играет то, что исходный код данной СУБД является полностью открытым, что позволяет огромному количеству разработчиков со всего мира предлагать идеи по развитию данного проекта. Это отличает MariaDB от платных версий MySQL, разрабатываемых Oracle.

Результаты тестирования с использованием СУБД MariaDB приведены в таблице 3.


Таблица 3 – Значение средних показателей серверной задержки в разное время суток при использовании СУБД MariaDB 5.3.12


Время сутокЧисло подключений к серверу Значение серверной задержки, мс
МинимальноеМаксимальноеСреднее
4:30~1880123199148
5:30~2490212312283
...............
11:30~4580325523423
12:30~4750412598481
...............
16:305500473604519
17:305500432612498
18:305500483683546
19:305500421598541
...............
0:30~3710411497467
1:30~3260396473417

Оценивая показатели задержек, можно прийти к выводу, что значения при минимальном количестве подключений незначительно ниже, чем у Percona Server, но выше, чем у MySQL. Но при максимальном числе подключений показатели задержки выше, чем у Percona, как и средние показатели задержек на протяжении суток.

Выводы

Были успешно произведены тестирования трёх наиболее популярных в наше время СУБД, результаты которых показали достоинства и недостатки каждой из них. Результаты тестирования Oracle MySQL были не очень эффективными. Несмотря на минимальное значение серверной задержки, меньшее 100мс, другие показатели были не такими результативными. Максимальное значение серверной задержки превышало 1000 мс, что доставляет критический дискомфорт при работе пользователей с сервером. Резкие перепады задержек в одни и те же интервалы времени также характеризует данную СУБД с плохой стороны. Результаты тестирования Percona Server выявились более удачными, так как показали отсутствие резких скачков задержки и меньшее значение средних задержек на протяжении суток по сравнению с другими СУБД. Тестирование MariaDB показало более эффективную работу при малом числе подключений, но менее эффективную при максимальном количестве активных подключений, чем у Percona Server.

Список литературы

1. Кузнецов С.Д. Основы современных баз данных. 2—е изд., испр. —М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний, 2007. — 484 с.: ил. — (Серия «Основы информационных технологий»)
2. Ахаян Р., Горев А., Макашарипов С.: "Эффективная работа с СУБД" – СПб.: Питер Пресс, 1997.
3. Общие требования к СУБД/ Интернет-ресурс. – Режим доступа: www/ URL: http://infogoz.vimi.ru/otct/Infogoz/KN6/11.htm.
4. XtraDB/ Интернет-ресурс. – Режим доступа: www/ URL: http://ru.wikipedia.org/wiki/XtraDB.