Экспертный кейс. Расследование деградации производительности системы. Проведение документа “Поступление товаров и услуг” (1С:ERP 2)

Инфраструктура исследуемой системы

Технологическая платформа 1С:Предприятие 8, версия 8.3.19.1417

Конфигурация: 1С:ERP Управление предприятием 2, версия 2.5.6.291

Операционная система: Windows Server 2019 Standard

СУБД: Microsoft SQL Server 2019

Проблема

В ходе проведения нагрузочного тестирования одним из наших клиентов была выявлена сильная деградация производительности системы в целом и, в частности, выполнения ключевой операции “Проведение документа поступление товаров и услуг” в течение выполнения теста.

Согласно данным подсистемы БСПОценка производительности”, время выполнения ключевой операции “Проведение документа поступление товаров и услуг” возрастало в процессе тестирования с 15-20 секунд в начале тестирования до 150-200 секунд в его финале.


Задача

Выявить и устранить причины замедления выполнения операции.


Решение

  1. Первым делом проверяем корректность записанных замеров и локализуем проблему: клиент или сервер? Для этого сравниваем выборочно длительности замеров подсистемы “Оценка производительности” с длительностью события CALL технологического журнала 1С на сервере. Данные совпадают, следовательно, клиентские замеры верны, проблему необходимо искать на сервере. 
  2. Далее анализируем данные счетчиков производительности. Определяем, справляется ли оборудование. По показателям видно – во время тестирования высокой нагрузки на сервере приложений 1C и СУБД не наблюдается.


% использования CPU в среднем менее 50%:


Объем свободной оперативной памяти более 200ГБ:


Высоких очередей на диски нет:

3. Анализ других счетчиков также не выявил каких-то явных проблем с оборудованием.3. Собираем полный технологический журнал с фильтром по первой строке проблемного контекста и анализируем несколько клиент-серверных вызовов с целью определить, на что тратится большая часть времени. Берем все события, которые зафиксированы в процессе клиент-серверного вызова,  и их длительность,  и группируем по типу события:

Время вызова

Сеанс

CALL

DBMSSQL

SCALL

TLOCK

13:07:30.364007

6210

70 125 988

3 792 993

531 081

6 236 358

13:07:37.551009

6208

76 220 002

4 306 155

511 998

10 000 353


Видим, что есть ожидания на управляемых блокировках (TLOCK) и запросы к базе данных (DBMSSQL), но их длительность в сумме составляют не более 15% от длительности клиент-серверного вызова. На что тратятся оставшиеся 85% времени, по-прежнему непонятно. 

 

4. Для того, чтобы понять, куда уходит оставшееся время, делаем анализ так называемых “дырок” в логах - длительных интервалов времени, в которых не регистрировались никакие события и как будто бы ничего не происходило.

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

Получаем несколько проблемных контекстов, первый: 

Эксперты 1. Код 1.PNG

Замечаем, что контекст у событий абсолютно одинаковый (выполнение пакетного запроса с формированием временных таблиц), а между событиями около 12 секунд.

Следующий контекст:

Эксперты 1. Код 2.PNG

Опять контекст одинаковый, опять пакетный запрос и работа с временными таблицами…

5. Похоже, что это может быть проблемой на уровне технологической платформы 1С. Возможно, об этом уже сообщалось вендору и сообществу? Ищем что-то похожее в сервисе публикации ошибок 1С https://bugboard.v8.1c.ru/, а также на партнерском форуме https://partners.v8.1c.ru/forum

6. В результате поисков  обнаруживаем похожую ошибку https://bugboard.v8.1c.ru/error/000109738 и обсуждение https://partners.v8.1c.ru/forum/topic/1981666. Так как ошибка исправлена в релизе платформы 1С версии 8.3.20.1549, обновляем тестовый стенд на последнюю актуальную версию платформы (на момент написания статьи – 8.3.20.1613). После чего заново проводим нагрузочное тестирование: деградации производительности больше не возникает.

 

Выводы и рекомендации

  • Сложно переоценить важность проведения тестирования – функционального, либо нагрузочного.

  • Перед установкой нового релиза прикладного решения и/или технологической платформы 1С рекомендуется всегда выполнять такого рода исследования.


Расследование проводил: Георгий Бяков
Эксперт по технологическим вопросам
ИТ-Экспертиза

Впервые опубликовано на портале Infostart: https://infostart.ru/1c/articles/1615418/



Репост

Свяжитесь с нами

119435 г. Москва, ул. Малая Пироговская, 16
Контакты
Нажимая на кнопку "Связаться с нами", вы даете согласие на обработку персональных данных. Подробнее об обработке данных читайте в Политике
Связаться с нами

Заполните форму ниже и наши специалисты свяжутся с вами в ближайшее время

Удобное время для звонка
  • 10:00 - 12:00
  • 12:00 - 14:00
  • 14:00 - 16:00
  • 16:00 - 18:00
  • 18:00 - 19:00
Время московское
Отвечаем с понедельника по пятницу
Нажимая на кнопку "Связаться с нами", вы даете согласие на обработку персональных данных. Подробнее об обработке данных читайте в Политике