+7 495 230 03 03 8 800 222 50 03

Производительность 1С — автоматизируем анализ проблем

Дата публикации: 25 октября 2024
Производительность 1С — автоматизируем анализ проблем
Не секрет, что проблема с производительностью 1С – тема, не теряющая своей актуальности. Проблема может затронуть как небольшие компании, так и достаточно крупные. И здесь возникает вопрос у ИТ-службы, на которую спустили задачу “сделайте, чтобы не тормозило” – как диагностировать? В этой статье расскажем о нашем подходе, как решаем такие задачи для клиентов и как решили этот подход автоматизировать, чтобы применить на своем хостинге EFSOL Облако.

Введение

Для упрощения, проблемы с производительностью 1С делим на две группы, соответствующие причинам возникновения:
  • Проблемы с оборудованием, настройками ПО
  • Проблемы с кодом 1С
Раньше использовали ручные проверки, чтобы диагностировать причины возникновения проблем с производительностью 1С, а также мониторинг Zabbix, в котором настроили шаблоны для отслеживания состояния виртуальных машин, сервисов 1С и СУБД. Стало понятно, что нужно держать руку на пульсе здоровья 1С постоянно, чтобы отследить момент деградации системы по части производительности и принять меры еще до того момента, как пользователи начнут жаловаться. Для этого старых методов уже недостаточно, особенно потому, что нам требуется не только проводить периодически аудиты внешних систем 1С, но и более глубоко мониторить свой хостинг с большим количеством виртуальных машин с 1С:Предприятие на борту.

Мониторинг 1С как сервис

В процессе получения опыта разбора проблем с 1С, стало понятно, что нужно не просто автоматизировать мониторинг производительности 1С – должно появиться комплексное решение, которое позволило бы отслеживать состояние системы 1С и реагировать на проблемы. Таким образом, пришли к тому, что мониторинг 1С – продукт, который представляет из себя личный кабинет клиента с функционалом анализа производительности 1С, содержащий также базовые инструкции, которые помогут проводить расследование. С точки зрения backend, обобщенно инфраструктура выглядит следующим образом:
Описание скрина

Рисунок 1 – Обобщенная схема мониторинга 1С

Интеграция с нашей системой мониторинга 1С возможна как для внешней инфраструктуры, так и для инфраструктуры, размещенной в нашем облаке. Расскажем подробнее об основном функционале.

Оценка APDEX

С использованием методики APDEX, можно объективно оценить производительность информационной системы 1С, если знать ключевые операции своей системы 1С, важные для конкретного бизнеса, а также корректно задать целевое время их выполнения. Оценка производительности 1С по APDEX включает в себя:
  1. Получение списка ключевых операций.
  2. Сортировка по приоритету.
  3. Определение целевого времени для каждой ключевой операции.
  4. Сбор времени выполнения каждой ключевой операции.
  5. Расчет оценки APDEX и интерпретация.
По умолчанию, ориентируемся на то, что в личном кабинете подключается базовый сбор значений APDEX, который представляет собой предустановленный стандартный перечень ключевых операций для конкретной конфигурации 1С. Этот базовый вариант, возможно, не очень ценный для подробного мониторинга, но позволяет увидеть большие просадки производительности системы 1С.
Описание скрина

Рисунок 2 – На графике отображается усредненное значение APDEX по ключевым операциям

Более ценная возможность – подключение персонализированных профилей мониторинга APDEX. Уже сейчас можно создавать профили с определенным набором ключевых операций (их можно выбирать на этапе создания профиля). Благодаря такому профилю, можно не только посмотреть график с усредненными значениями APDEX по выбранному ранее списку ключевых операций, но и получить детализированный отчет. Используя оценку APDEX, а также исторические данные, можно следить за здоровьем системы 1С по части производительности и держать руку на пульсе. В скором времени появится функционал оповещений по событиям, связанным с просадками оценки APDEX, что позволит реагировать на проблему с производительностью на стадии, когда она не стала совсем критической.

Анализ технологического журнала 1С

Если вы откроете “сырой” файл технологического журнала 1С (ТЖ) – там будет не очень удобная для анализа информация. Да, есть варианты разбора файла скриптами, перенос в excel, но все это не представляет наглядной картины и в определенной степени неудобно и трудозатратно. Поэтому в сервисе мониторинга 1С этот процесс автоматизирован и сделан наглядным для разбора проблем с производительностью 1С. Выделяем три сегмента или три блока для анализа ТЖ – анализ долгих запросов, анализ блокировок и анализ ошибок 1С.

Анализ долгих и частых запросов

В функционале анализа технологического журнала 1С можно проанализировать вывод самых частых и долгих запросов с сортировкой по контексту стека вызовов. По умолчанию, есть возможности:
  • Выбор периода вывода данных.
  • Отображение сводки с группировкой запросов с наибольшей длительностью.
  • Отображение визуализации времени выполнения запросов.
  • Показ детальных записей технологического журнала с сортировкой.
В технологический журнал попадают события с отбором:
  • Событие DBMSSQL (или другие в зависимости от используемой СУБД), SDBL.
  • Длительность события больше 1 сек (1 000 000 микросекунд).
Данные сортируются по полю “Среднее время выполнения” по убыванию, на первых позициях находятся наиболее длительные события. В блоке содержатся колонки:
  • Строка вызова – значение поля Context из записи технологического журнала.
  • Суммарное время выполнения – длительность события, значение поля из записи технологического журнала.
  • Количество – количество повторений события за указанный период.
  • Среднее время выполнения – расчетное значение. Рассчитывается по формуле: Суммарное время выполнения / Количество.
Важным является блок “Детальные записи технологического журнала”, который отображает записи технологического журнала за указанный период в хронологическом порядке. В блоке содержатся колонки:
  • Timestamp – дата и время возникновения события.
  • Имя события – имя события.
  • Контекст – контекст события.
  • Имя сервера 1С – наименование сервера 1С, на котором были собраны логи технологического журнала.
  • Текст запроса – текст запроса на стороне СУБД.
  • Исх. запись тех. журнала – “сырая”, необработанная запись технологического журнала (необходима в том случае, если при анализе требуется получить больше данных).
Описание скрина

Рисунок 3 – Дашборд анализа долгих и частых запросов 1С

Анализ ожиданий на блокировках 1С

Блокировка в 1С:Предприятие представляет собой механизм ограничения доступа к данным или объектам, чтобы предотвратить одновременное изменение этих данных несколькими пользователями. Блокировка используется для обеспечения целостности данных и предотвращения конфликтов, когда несколько пользователей пытаются редактировать одни и те же данные одновременно. С помощью нашего инструмента, можно проанализировать ожидания на блокировках конкретной базы 1С:
Описание скрина

Рисунок 4 – Анализ ожиданий на блокировках 1С

Ожидания на блокировках 1С:Предприятие являются только одной из возможных причин колебаний времени выполнения запросов. Функционал анализа ожиданий на блокировках при выборе базы 1С отображается в виде двух таблиц:
  1. Таблица виновников (слева). В этой таблице отображаются виновники, которые группируются по контексту. Контекст может быть развернут для детализации, которая содержит время возникновения, пользователя (виновника), количество жертв, общее время блокировки, контекст виновника.
  2. Таблица жертв (справа). Заполняется при выборе Виновника в левом секторе. Эта таблица содержит всех жертв выбранного виновника из левой таблицы со следующими данными: дата блокировки, время ожидания, объект метаданных, заблокированный пользователь (жертва), контекст жертвы.

Анализ ошибок 1С

Ошибки 1С собираются и сортируются по категориям (например, ошибка соединения, ошибка доступа, ошибка запроса и т.д.). Можно посмотреть сколько ошибок в заданном временном интервале находится в каждой категории и увидеть их конкретный перечень. Каждую ошибку можно детализировано рассмотреть и получить данные: время возникновения, принадлежность к серверу, пострадавший пользователь, контекст, текст ошибки, исходная запись ТЖ. В совокупности с другим функционалом, эта часть сервиса позволит более досконально изучить конкретную проблему с производительностью 1С.
Описание скрина

Рисунок 5 – Анализ ошибок 1С

Мониторинг серверов и СУБД

  • Мониторинг серверов настроен на сбор базовых метрик нагрузки на CPU, RAM, Disk.
  • Мониторинг СУБД отслеживает настройки СУБД на соответствие рекомендациям фирмы 1С, статус выполнения регламентных заданий, статистику по фрагментации таблиц в разрезе БД, ожидания СУБД. Пока поддерживается только MS SQL.
Описание скрина

Рисунок 6 – Автопроверка параметров СУБД соответствия эталону

Контроль качества кода 1С как фактора влияния на производительность

Не секрет, что на качество кода 1С влияет качество разработки, а именно полнота и достаточность проводимого тестирования, чтобы не выпустить ошибку в продакшн, которая может привести к замедлению системы, отдельных запросов или к другим проблемам. Один из инструментов поддержания качества кода – статический анализ. Статический анализ помогает разработчикам обнаружить ошибки и потенциальные проблемы в коде на ранних этапах разработки, еще до его компиляции или выполнения. Это позволяет сэкономить время и усилия, которые могли бы быть затрачены на поиск и исправление ошибок в более поздние стадии разработки или даже после выпуска продукта. Лучшая практика – запускать статический анализ кода 1С автоматически после каждой новой итерации, когда разработчик написал новый код и хочет его проверить. В рамках сервиса доступен инструмент, который автоматически выполнит статический анализ вашего кода 1С в форматах .cf / .cfe / .epf и предоставит отчет.
Описание скрина

Рисунок 7 – Схема автоматического статического анализа кода 1С

Для запуска проверки нужно только загрузить файл и немного подождать генерацию отчета. В базовой версии отчет генерируется без истории, но в полной версии доступна история, сравнение с предыдущими проверками, а также редактирование правил определения проблем.
Описание скрина

Рисунок 8 – Стартовая страница отчета статического анализа

Что в итоге?

В результате, получился сервис, который автоматически отслеживает состояние системы 1С и дает информацию о проблемах с производительностью, достаточную для диагностики проблем, включая как инфраструктурные данные, так и анализ настроек ПО и анализ кода 1С. Каждый аспект мониторинга дорабатывается, обрастая новым автоматизированным функционалом, чтобы минимизировать человеческий фактор. Важным является и снижение порога входа для использования сервиса клиентами, поэтому к инструментам добавляется справка. Из ближайших планов – применение ИИ, пока как бота-помощника, который подскажет как решить или разобрать ту или иную проблему.
Лого ES мини

EFSOL

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.