Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Оптимизируем производительность блока Казначейство

Lamoda Tech
December 27, 2024

Оптимизируем производительность блока Казначейство

Алексей Литонов, старший 1С-разработчик

В первый платежный день после запуска мы столкнулись с интересными проблемами в производительности. В выступлении поделимся этими кейсами и решениями, например, в блоке по обмену с банком и в длительных операциях.

Lamoda Tech

December 27, 2024
Tweet

More Decks by Lamoda Tech

Other Decks in Programming

Transcript

  1. О чем доклад? Производительность блока «Казначейство» Производительность блока «Длительные операции»

    Подключение 1С: Монитор 1 2 О проблемах производительности в 1С:УХ при внедрении и способах их решения 3
  2. О чем доклад? Производительность блока «Казначейство» Производительность блока «Длительные операции»

    Подключение 1С: Монитор 1 2 О проблемах производительности в 1С:УХ при внедрении и способах их решения 3 Я бы сам хотел посмотреть такой доклад перед запуском
  3. • Снижение доли трудоемких, рутинных операций сотрудников за счет автоматизации

    • Замещение импортного программного обеспечения • Завершение процесса миграции на новую платформу ERP • Обеспечение базы для внедрения МСФО, бюджетирования (контроля) и непрямых закупок. Немного контекста Наши фокусы
  4. Производительность блока «Казначейство» Первый платежный день: Система не может за

    адекватное время прочитать и обработать весь объем данных. Выписки читаются около часа, грузятся по 6-8 часов. В Axapta они же грузились 1-2 часа.
  5. Производительность блока “Казначейство” Первый платежный день: Система не может за

    адекватное время прочитать и обработать весь объем данных. Выписки читаются около часа, грузятся по 6-8 часов. В Axapta они же грузились 1-2 часа. Проблема 1: Чтение файла банковской выписки Проблема 2: Загрузка данных в систему Обработка “Обмен с банком”
  6. Проблема 1: Чтение файла банковской выписки Проблема 2: Загрузка данных

    в систему Производительность блока “Казначейство” Обработка “Обмен с банком” Первый платежный день: Система не может за адекватное время прочитать и обработать весь объем данных. Выписки читаются около часа, грузятся по 6-8 часов. В Axapta они же грузились 1-2 часа. Решение: Переработали функционал под себя ;)
  7. При чтении файла, по каждой секции документа система: • получала

    значение необходимой для процесса константы • выполняла запрос получения учредителей по организации Что, в общем, занимало > 50% времени. Чтение файла банковской выписки Кейс 1
  8. При чтении файла, по каждой секции документа система: • получала

    значение необходимой для процесса константы • выполняла запрос получения учредителей по организации Что, в общем, занимало > 50% времени. Чтение файла банковской выписки Кейс 1 Решение: использование модулей с повторным использованием возвращаемых значений
  9. Обработка загруженных данных выписки • Основная проблема: много документов обрабатываются

    в один поток • Проблема №2: ожидания на блокировках при записи в Регистры Накопления • Проблема №3, но неочевидная: Длительные операции Проблемы Кейс 2
  10. Обработка загруженных данных выписки • Основная проблема: много документов обрабатываются

    в один поток • Проблема №2: ожидания на блокировках при записи в Регистры Накопления • Проблема №3, но неочевидная: Длительные операции Проблемы Решения Выносим выполнение создания документов в Длительные операции (БСП) Кейс 2
  11. Обработка загруженных данных выписки • Основная проблема: много документов обрабатываются

    в один поток • Проблема №2: ожидания на блокировках при записи в Регистры Накопления • Проблема №3, но неочевидная: Длительные операции Проблемы Решения Выносим выполнение создания документов в Длительные операции (БСП) Включаем разделение итогов Кейс 2
  12. Обработка загруженных данных выписки • Основная проблема: много документов обрабатываются

    в один поток • Проблема №2: ожидания на блокировках при записи в Регистры Накопления • Проблема №3, но неочевидная: Длительные операции Проблемы Решения Выносим выполнение создания документов в Длительные операции (БСП) Включаем разделение итогов Тратим 3 дня на анализ проблемы … Кейс 2
  13. • Ставим в константе “Количество потоков длительных операций” нужное нам

    количество потоков • Запускаем создание документов через ДлительныеОперации.ВыполнитьФункциюВНесколькоПотоков() На тестовом контуре — все отлично, на проде все тоже, но до определенного момента… Производительность блока «Длительные операции»
  14. Производительность блока «Длительные операции» Если все потоки заняты созданием документов

    по банковской выписке, и запускается типовая операция с многопоточностью то в системе резко растет число процессов фоновых заданий, появляются дубли документов, а CPU на СУБД покидает чат. Проблема Редактирование реквизитов Групповая пометка удаления Кейс 3
  15. Производительность блока «Длительные операции» Если все потоки заняты созданием документов

    по банковской выписке, и запускается типовая операция с многопоточностью то в системе резко растет число процессов фоновых заданий, появляются дубли документов, а CPU на СУБД покидает чат. Проблема Редактирование реквизитов Групповая пометка удаления Решение Решаем переводить все на подсистему «Менеджер потоков» Кейс 3
  16. 3 поток 2 поток 1 поток • Система распределяет по

    потокам данные, которые надо обработать • Контроль потоков менеджером • Количество потоков и количество элементов порции контролируется при старте менеджера Подсистема «Менеджер потоков» Кейс 3 Док9 Док7 Док6 Док4 Док2 Док5 Док3 Док8 Док1
  17. Последняя проблема: оптимизация отображения списка документов к отправке в банк.

    Для подготовки списка из 9000 строк системе требовалось почти 8 минут. Обмен с банком. Список документов к отправке Проблема Кейс 4
  18. Последняя проблема: оптимизация отображения списка документов к отправке в банк.

    Для подготовки списка из 9000 строк системе требовалось почти 8 минут. Обмен с банком. Список документов к отправке Проблема Кейс 4 Проверка корректности заполнения расчетных счетов
  19. Обмен с банком. Список документов к отправке Кейс 4 Проверка

    корректности заполнения расчетных счетов
  20. Последняя проблема: оптимизация отображения списка документов к отправке в банк.

    Для подготовки списка из 9000 строк системе требовалось почти 8 минут. Обмен с банком. Список документов к отправке Проблема Кейс 4 Проверка корректности заполнения расчетных счетов. Добавили свертку, индексы, получили обработку за 25 секунд. Решение
  21. Нужно видеть метрики и анализировать их в реальном времени Провели

    анализ существующих решений Выбрали 1С: Монитор За день подключили и настроили алертинг в корпоративный мессенджер Пачка Мониторинг производительности 1 2 3 4
  22. Если стандартные решения не удовлетворяют требованиям, не бойтесь вносить изменения,

    но делайте это осознанно Проведение нагрузочных тестов до запуска проекта 1 2 4 Рекомендации по производительности
  23. Внедрение системы мониторинга с возможностью настройки алертов — критически важный

    шаг. Это позволяет не только оперативно реагировать, но и предотвращать появление проблем Если стандартные решения не удовлетворяют требованиям, не бойтесь вносить изменения, но делайте это осознанно Проведение нагрузочных тестов до запуска проекта 1 2 3 Рекомендации по производительности
  24. Внедрение системы мониторинга с возможностью настройки алертов — критически важный

    шаг. Это позволяет не только оперативно реагировать, но и предотвращать появление проблем Если стандартные решения не удовлетворяют требованиям, не бойтесь вносить изменения, но делайте это осознанно Проведение нагрузочных тестов до запуска проекта 1 2 3 Рекомендации по производительности