
Привет, Хабр! На связи Денис Рачковский из «Первого Бита» и Михаил Семёнов, владелец продукта Platform V Pangolin из СберТеха. Недавно в «Первом Бите» завершилась миграция с MSSQL на новую СУБД Platform V Pangolin. За три месяца мы протестировали новое решение, перевезли на новую СУБД 7000 рабочих мест и действующие инсталляции 1С. В этой статье расскажем, как происходило тестирование, почему «Первый Бит» выбрал Platform V Pangolin и что в итоге получилось.
Задача: переехать на новую СУБД самим
Внутренняя инфраструктура в «Первом Бите» работала на MSSQL. В начале марта 2022 года Microsoft заявила, что сворачивает бизнес в России и прекращает поддержку своих программных решений.
Использовать неподдерживаемую СУБД сложно и рискованно — нужно было искать решение, которое позволило бы заменить Microsoft без деградации производительности, безопасности и отказоустойчивости. Нужно было не только мигрировать самим, но и подготовить специалистов, способных перевести на новую СУБД около 250 тыс клиентов «Первого Бита». Не самая простая задача. Например, важно было продумать:
Как перевезти собственную инфраструктуру на новую базу данных и обеспечить совместимость с продуктами 1С.
Как решить вопрос с администрированием. Обычно для миграции приходится зарываться в код и переписывать множество функций — это требует времени и ресурсов. Поэтому искали простую в администрировании СУБД.
Что делать с безопасностью. СУБД должна была обеспечивать защиту чувствительных и защищённых данных.
Про выбор СУБД
Практически сразу исключили open source. PostgreSQL, например, соответствовал требованиям компании по производительности, но не подходил по критериям безопасности. С установкой и интеграцией тоже возникли бы вопросы, так как переписать, переделать интеграционные процессы и собрать с нуля новую структуру данных без специалистов по PostgreSQL невозможно. Да и стоимость лицензии сыграла не последнюю роль: цену enterprise-версии сегодня едва ли можно назвать демократичной.
В итоге выбор пал на Platform V Pangolin — реляционную СУБД уровня enterprise, разрабатываемую в СберТехе. Вот какие аргументы убедили «Первый Бит» использовать именно это решение:
Соответствие стандартам безопасности: в Platform V Pangolin добавлено гибкое управление парольными политиками, защита от привилегированных пользователей и т. д. — то, что гарантирует высокую защищённость данных.
Относительно удобный интерфейс администратора: переводить системы и управлять СУБД можно, даже не обладая глубокими знаниями в базах данных.
Интеграция с 70+ сервисами Platform V: интеграционной платформой Platform V Synapse, облачным сервисом для разработки backend- и frontend-приложений Platform V DataSpace и другими. Это значит, что дополнительную функциональность можно писать на микросервисах платформы, интегрируя с базовой функциональностью 1С. Клиенты таким образом получают комбо: отказоустойчивую масштабируемую платформу, которая интегрирована с 1С, и возможность реализовать собственную функциональность.
Установка и тестирование
Тестирование проводилось на сервере HP ProLiant BL460c gen8 (Intel Xeon CPU E5-2690 v2, 3 ГГц, 384 Гб RAM). На сервер установили гипервизор VMWare ESXi версия 6.7.0, и далее всё собрано на виртуальных машинах.
Стенд Platform V Pangolin:
сервер СУБД: Alt Linux 9.9, 4 ядра, ОЗУ 16 Гб, SSD на 200Гб;
сервер 1С: Windows Server 2019 Standart, 4 ядра, ОЗУ 16 Гб, SSD на 200Гб.
Стенд MSSQL:
сервер СУБД: Windows Server 2019 Standart, SQL server 2016 Standart,
сервер 1С: тот же.
Для тестов выбрана конфигурация 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.111.16) на платформе 1С:Предприятие 8.3 (8.3.20.1674). Нормативно-справочная информация для тестов была подготовлена заранее. База на серверы загружена из одного DT-файла. Для последующих установок для других баз просто копировали виртуальную машину с СУБД.
Как проводилось тестирование
С помощью инструмента тестирования прикладных решений Vanessa Automation в режиме тонкого клиента подготовили автоматические сценарии. Проверялись следующие операции:
Создание, заполнение и проведение основных документов: поступление (акты, накладные, УПД), реализация (акты, накладные, УПД), поступление на расчётный счёт, списание с расчётного счёта, поступление и выдача наличных, передвижения по спискам выбранных документов.
Формирование ОСВ по счетам, формирование общей ОСВ.
Закрытие месяца.
Операции делили на документы по приходу и по расходу, чтобы в момент тестирования не возникало недостатков на счетах. Цикл включал 60 повторений оборота документов в каждом месяце, с января 2022 года по июнь 2022 года. Обработка происходила в 10 потоков.
После отработки цикла документов запускалось последовательное закрытие месяцев с января по июнь.
Среднее значение по операциям документа вычислялось по всем повторениям, среднее значение по операции закрытия месяца — среднее по месяцам.
Что показали тесты: Platform V Pangolin vs PostgreSQL
Поскольку механизм запросов изначально был заточен под MSSQL, нам важно было проверить разницу в производительности систем под нагрузкой. А для большей объективности решили добавить в тесты ещё и «ванильный» PostgreSQL.
План был такой:
Последовательно запускаем СУБД в стандартной сборке.
Оцениваем разницу в производительности.
Меняем и докручиваем настройки базовых сборок. Снова оцениваем разницу в производительности.
Продолжаем тестировать настройки и собираем кластерные сборки Platform V Pangolin и PostgreSQL.
Повторяем пункты 2 и 3 до получения показателей, аналогичных «боевым».
На первых этапах, до экспериментов с настройками Platform V Pangolin, сводные тесты показали следующие результаты:
Сценарий | Количество транзакций в секунду | |||
|---|---|---|---|---|
PostgreSQL | Platform V Pangolin | PostgreSQL сluster | Platform V Pangolin сluster | |
Приходные документы | 30 | 21 | 41 | 20 |
Расходные документы | 32 | 29 | 46 | 26 |
Денежные документы | 7 | 4 | 12 | 4 |
Формирование отчётов | 5 | 3 | 3 | 3 |
Закрытие периода | 52 | 44 | 192 | 116 |
Итог (с учётом количества повторений) | 4752 | 3684 | 7272 | 3876 |
Итог, % | 137,5 % | 106,6 % | 210,4 % | 112,2 % |
Вот какие настройки при этом использовались.
MSSQL
Настройки по умолчанию, без включения мгновенной инициализации файлов базы данных или какие-либо изменений в tempdb.
Platform V Pangolin
row_security = off— отключили политику защиты строк;pg_stat_tmp = '\ramdrive'— перенесли каталог хранения временных данных статистики pg_stat_tmp в память (ОЗУ).
С учётом имеющейся памяти (16 Гб) выставили параметры:
temp_buffers = 256MB;shared_buffers = 6GB;effective_cache_size = 10GB;work_mem = 128MB— в зависимости от размеров БД и памяти можно пробовать изменять значение в большую и меньшую сторону;maintenance_work_mem = 1GB.
Порядок ведения транзакций:
full_pages_writes = off— отключение этого параметра ускоряет обычные операции, но может привести к неисправимому повреждению или незаметной порче данных после сбоя системы;synchronous_commit = off— cоздаёт риск потери последних нескольких транзакций, но гарантирует целостность базы данных.
Рекомендация для SSD диска:
effective_io_concurrency = 200;random_page_cost = 1.2.
Рекомендации 1С:
bgwriter_delay = 20ms;bgwriter_lru_multiplier = 4.0;bgwriter_lru_maxpages = 400.
Вакуум таблиц:
autovacuum = on;autovacuum_naptime = 20s;autovacuum_max_workers = 4— зависит от количества ядер.
С четырьмя ядрами настроили количество служебных процессов:
max_worker_processes = 4;max_parallel_workers_per_gather = 2;max_parallel_workers = 4;max_parallel_maintenance_workers = 2.
Прочие опции:
max_files_per_process = 8000;geqo = on #генетический оптимизатор запросов;geqo_threshold = 12;standard_conforming_strings = off;escape_string_warning = off;max_locks_per_transaction = 192.
В результате уже на первых этапах тестирования Platform V Pangolin продемонстрировал производительность на уровне действующих показателей. Для миграции промышленного контура этого было достаточно, поэтому, не останавливая тестирование и поиск оптимальных настроек, команда начала миграцию в продуктив.
Эксплуатация в продуктиве
Для миграции подготовили однонодный сервер Platform V Pangolin и перенесли на него рабочую базу 03.11. Сейчас на СУБД работает система «Зарплата и управление персоналом КОРП», редакция 3.1 (3.1.18.616) на платформе 1С:Предприятие 8.3 (8.3.17.1989):
количество активных пользователей — 150;
количество пользователей всего равно количеству сотрудников — 7000+;
количество документов ежемесячно — более 10 000.
На текущий момент деградации производительности и проблем с функциональностью системы не выявлено. Пользователи фактически не заметили изменений.
Итоги
Миграция — дело не быстрое, поэтому пока что можно подвести только промежуточные итоги. Они такие: СУБД была запущена менее чем за три месяца без остановки основных процессов и эффективно обслуживает более 7000 мест. «Первый Бит» продолжает тестирование с новыми настройками и постепенно приближается к целевому результату производительности.
Были сложности, неизбежные для переезда больших высоконагруженных решений, но, с точки зрения клиента, их вполне компенсируют другие преимущества: стабильная круглосуточная техподдержка, производительность СУБД и стоимость лицензии.
В ближайшее время планируем рассказать о тестировании совместимости продуктов Platform V Synapse и 1С, которое проводит «Первый Бит». Интеграционная платформа Platform V Synapse должна помочь клиентам «Первого Бита» управлять взаимодействиями между различными экземплярами 1С и внешними системами, обеспечивая высокий уровень надёжности и простоту создания интеграционных взаимодействий.
