Область применения бесплатных решений СУБД
С выходом новой редакции MS SQL Server 2012, анонсом MS SQL Server 2014 CTP2 и внедрением новой политики лицензирования «на ядра» у многих ИТ-администраторов возник вопрос: «А есть ли альтернатива?». Многие видят ее в переходе на облачные решения или SaaS, когда вопрос о лицензировании ложится на компанию, предоставляющую эти услуги.
Другие пытаются оптимизировать затраты путем нахождения «лазеек» в методике лицензирования Microsoft. Но мы попробуем пойти альтернативным путем. Учитывая, что большинство компаний используют MS SQL Server только для 1С, мы можем протестировать альтернативные СУБД, которые поддерживает 1С. Сегодня мы протестируем несколько бесплатных СУБД, таких как PostgreSQL и IBM DB2 (тут и далее под IMB DB2 мы будем подразумевать бесплатный выпуск IBM DB2 Express-C).
Весь класс бесплатных СУБД хорошо зарекомендовал себя в повседневных задачах. На территории бывших республик СССР они не так распространены в среде Windows и чаще всего являются уделом либо специальных продуктов, либо используются в бесплатных операционных системах. Одним из ярких примеров является связка postfix + PostgreSQL в мире почтовых серверов.
Сравнение характеристик СУБД и их поддержка в 1С
Обе системы официально поддерживаются компанией 1С. Выпускаются релизы и наборы патчей для совместимой работы с 1С. На официальном сайте пользователей системы 1С:Предприятие 8 мы можем найти последние дистрибутивы данных продуктов с уже интегрированными патчами от 1С. В наличии есть версии как под Windows/ Linux, так и под различную архитектуру х86/х64, что не может не радовать. Сделаем краткий обзор данных СУБД. Обратимся к таблице 1:
Таблица 1 – Сравнение характеристик СУБД
PostgreSQL | IBM DB2 | MS SQL2008R2 Standard | |
---|---|---|---|
Кроссплатформенность (Windows/Linux) | +/- | +/+ | +/- |
Ограничение на использование RAM, GB | не ограничено | 8 | 64 |
Ограничение на использование CPU, кол-во ядер (процессоров) | не ограничено | 8 (2) | не ограничено (4) |
Ограничение на размер БД, PB | не ограничено | не ограничено | 524 |
Наличие поддержки отказоустойчивых кластеров | + | + | + |
В данный момент на сайте доступны следующие стабильные релизы:
- IBM DB2 v9.7 FP6 от 05.10.2012 г.
- PostgreSQL 9.1.2-1.1C от 10.02.2012 г.
Также доступны для тестирования новые конфигурации PostgreSQL 9.1.9-1.1C
и 9.2.4-1.1C от 01.10.2013 г.
Практическое тестирование с использованием нового теста Гилева и «боевой» конфигурации. Сравнение платной СУБД MS SQL и бесплатных
Для тестирования возьмем виртуальный сервер для 1С такой конфигурации 1 CPU Intel Xeon E5620 2.4 GHz, c 4 GB RAM, OS Windows 2008R2 Standard, используя виртуализацию на базе технологии Hyper-V. Для тестирования будут использованы версии СУБД под данную ОС и х64-разрядности (использование ОС Windows обосновано, сравнение будет с СУБД MS SQL 2008R2 Standard, используя одни и те же драйвера для всего оборудования). Тестирование будем проводить новым тестом от господина Гилева для оценки возможностей клиент-серверного варианта 1С:Предприятие 8.2. Данный тест подбирает оптимальный размер буфера для работы (размер строки) и показывает, сколько потоков может «вытянуть» система. Все результаты занесем в таблицу 2.
Таблица 2 – Результаты сравнительных тестов СУБД
Размер строки, КБ | Макс. скорость 1 поток, КБ/с | Пороговая скорость, КБ/с | Количество потоков, максимальное | Максимальная скорость, КБ/с | |
PostrgreSQL | 656 | 21 974 | 5 494 | 14 | 83 094 |
IBM DB2 | 128 | 1 445 | 361 | 10 | 4 439 |
MS SQL2008R2 Standard | 464 | 13 714 | 3 429 | 9 | 38 512 |
Рассмотрим графики, полученные в самих тестах.
Графики, полученные при использовании СУБД – PostgreSQL:
Рисунок 1 – График 1, PostgreSQL
Рисунок 2 – График 2, PostgreSQL
Рисунок 3 – График 3, PostgreSQL
Анализируя данные графики, можно сделать вывод, что система сможет выдержать от 10 до 14 высоконагруженных задач при размере буфера в 656 Кб.
Графики, полученные при использовании СУБД – IBM DB2:
Рисунок 4 – График 1, IBM DB2
Рисунок 5 – График 2, IBM DB2
Рисунок 6 – График 3, IBM DB2
Анализируя данные графики, можно сделать вывод, что система сможет выдержать от 8 до 10 высоконагруженных задач при размере буфера в 128 Кб. Но при этом возможны проблемы с откликом приложения из-за низкой скорости работы СУБД с дисками.
Графики, полученные при использовании СУБД – MS SQL2008R2 Standard:
Рисунок 7 – График 1, MS SQL2008R2 Standard
Рисунок 8 – График 2, MS SQL2008R2 Standard
Рисунок 9 – График 3, MS SQL2008R2 Standard
Анализируя данные графики, можно сделать вывод, что система сможет выдержать 8-9 высоконагруженных задач при размере буфера в 464 Кб. При этом скорость работы системы будет хорошая.
На данных СУБД были протестированы и «боевые» базы, но в однопользовательском режиме. В ходе теста были использованы выгрузки объемами 1-1.5 Гб конфигурации УТ 11.1. В ходе испытаний не были замечены какие-либо ошибки. Время отклика приложений было на хорошем уровне. Были выполнены замеры производительности на тяжелых участках этой конфигурации, таких как вызов пункта «Список партнеров» и «Написать письмо».
Рисунок 10 – Время выполнения обработки «Список партнеров»
На данной диаграмме меньшее значение является лучшим. В среднем PostgreSQL немного проигрывает MS SQL, а IBM DB2 – и вообще позади. Аналогичная ситуация и со вторым тестом. PostgreSQL и MS SQL идут практически равными, а IBM DB2 – позади.
Рисунок 11 – Время выполнения обработки «Написать письмо»
Выводы о целесообразности внедрения 1С на бесплатных СУБД. Плюсы и минусы бесплатной СУБД
Теперь проанализируем полученные результаты. Согласно результатам, полученным с использованием теста Гилева, все системы показали себя практически на одном уровне. Единственными минусом данного теста является отсутствие возможности пользователю выбрать размер буфера (строки) для тестирования.
Обратимся к результатам работы с «боевой» базой. Тут ситуация более выразительна. Даже при тестировании нагрузки одним пользователем, IBM DB2 показывает отставание на 0,1-0,15 секунд на «тяжелом» запросе, поэтому вопрос об использовании данной СУБД в рабочей среде снимается. Разница между PostgreSQL и MS SQL Server практически не видна. Но это при тестировании нагрузки одним пользователем, соответственно, при увеличении количества пользователей данный разрыв будет увеличиваться в пользу MS SQL Server. Это также подтверждается практикой внедрений клиент-серверных решений на базе PostgreSQL с последующей оптимизацией плана запросов, а также использования прямых запросов в СУБД.
Для полноты анализа ситуации с бесплатными СУБД добавим несколько слов о них.
К плюсам данных СУБД можно отнести:
- неограниченность в возможности потребления ресурсов;
- поддержка со стороны 1С (официальная), а так же в виде наличия комплектов для патчей своих решений;
- кроссплатформенность;
- возможность реализации отказоустойчивых кластеров.
К минусам данных СУБД можно отнести:
- отсутствие технической поддержки и большого опыта работы в связке с 1С;
- алгоритмы резервного копирования, обслуживания и резервирования выполнены в виде отдельных модулей (наследие от Linux систем), что не привычно для Windows пользователя.
Альтернативным вариантом размещения 1С может стать облачный сервер. В состав этого продукта входят лицензии на MSSQL, так что за адекватные деньги удается достичь оптимальной производительности 1С.