Чем быстрее, тем лучше: как «Первый Бит» за 3 месяца мигрировал на СУБД Platform V Pangolin

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

Привет, Хабр! На связи Денис Рачковский из «Первого Бита» и Михаил Семёнов, владелец продукта 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.

План был такой: 

  1. Последовательно запускаем СУБД в стандартной сборке. 

  2. Оцениваем разницу в производительности. 

  3. Меняем и докручиваем настройки базовых сборок. Снова оцениваем разницу в производительности.

  4. Продолжаем тестировать настройки и собираем кластерные сборки Platform V Pangolin и PostgreSQL.

  5. Повторяем пункты 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С и внешними системами, обеспечивая высокий уровень надёжности и простоту создания интеграционных взаимодействий.

Источник: https://habr.com/ru/companies/sberbank/articles/739900/


Интересные статьи

Интересные статьи

Большие данные — вещь относительная. Посмотрите на любого блогера: он генерирует кучу данных, в его телефоне десятки, а то и сотни гигабайтов изображений и видео. Если он не может обработать их с помо...
Нам давно хотелось рассказать сообществу о том, как мы разрабатываем фичи в KMM-проектах. В статье описан полный путь интеграции gRPC в мультиплатформенный проект, пройденный нашей командой. Он включа...
Добрый день, друзья! В данной статье хотелось бы поделиться различными приемами работы с Microsoft Power Platform и рассказать, как с помощью базовых возможностей Power Apps, Power Automate и других с...
Всем доброго времени суток. Начнем. Во время своего обучения этой технологии я столкнулся с проблемой, что на весь интернет есть только один нормальный источник инф...
Примечание от переводчиков: при словах «мобильные приложения Netflix» вспоминаются их основные приложения для просмотра видеоконтента, но компания ведёт и «киностудийную» разработку — для...