Не секрет, что проблема с производительностью 1С – тема, не теряющая своей актуальности. Проблема может затронуть как небольшие компании, так и достаточно крупные. И здесь возникает вопрос у ИТ-службы, на которую спустили задачу “сделайте, чтобы не тормозило” – как диагностировать?
В этой статье расскажем о нашем подходе, как решаем такие задачи для клиентов и как решили этот подход автоматизировать, чтобы применить на своем хостинге EFSOL Облако.
Интеграция с нашей системой мониторинга 1С возможна как для внешней инфраструктуры, так и для инфраструктуры, размещенной в нашем облаке.
Расскажем подробнее об основном функционале.
Более ценная возможность – подключение персонализированных профилей мониторинга APDEX.
Уже сейчас можно создавать профили с определенным набором ключевых операций (их можно выбирать на этапе создания профиля). Благодаря такому профилю, можно не только посмотреть график с усредненными значениями APDEX по выбранному ранее списку ключевых операций, но и получить детализированный отчет.
Используя оценку APDEX, а также исторические данные, можно следить за здоровьем системы 1С по части производительности и держать руку на пульсе. В скором времени появится функционал оповещений по событиям, связанным с просадками оценки APDEX, что позволит реагировать на проблему с производительностью на стадии, когда она не стала совсем критической.
Ожидания на блокировках 1С:Предприятие являются только одной из возможных причин колебаний времени выполнения запросов. Функционал анализа ожиданий на блокировках при выборе базы 1С отображается в виде двух таблиц:
Для запуска проверки нужно только загрузить файл и немного подождать генерацию отчета.
В базовой версии отчет генерируется без истории, но в полной версии доступна история, сравнение с предыдущими проверками, а также редактирование правил определения проблем.
Введение
Для упрощения, проблемы с производительностью 1С делим на две группы, соответствующие причинам возникновения:- Проблемы с оборудованием, настройками ПО
- Проблемы с кодом 1С
Мониторинг 1С как сервис
В процессе получения опыта разбора проблем с 1С, стало понятно, что нужно не просто автоматизировать мониторинг производительности 1С – должно появиться комплексное решение, которое позволило бы отслеживать состояние системы 1С и реагировать на проблемы. Таким образом, пришли к тому, что мониторинг 1С – продукт, который представляет из себя личный кабинет клиента с функционалом анализа производительности 1С, содержащий также базовые инструкции, которые помогут проводить расследование. С точки зрения backend, обобщенно инфраструктура выглядит следующим образом:
Рисунок 1 – Обобщенная схема мониторинга 1С
Оценка APDEX
С использованием методики APDEX, можно объективно оценить производительность информационной системы 1С, если знать ключевые операции своей системы 1С, важные для конкретного бизнеса, а также корректно задать целевое время их выполнения. Оценка производительности 1С по APDEX включает в себя:- Получение списка ключевых операций.
- Сортировка по приоритету.
- Определение целевого времени для каждой ключевой операции.
- Сбор времени выполнения каждой ключевой операции.
- Расчет оценки APDEX и интерпретация.

Рисунок 2 – На графике отображается усредненное значение 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С.
Рисунок 5 – Анализ ошибок 1С
Мониторинг серверов и СУБД
- Мониторинг серверов настроен на сбор базовых метрик нагрузки на CPU, RAM, Disk.
- Мониторинг СУБД отслеживает настройки СУБД на соответствие рекомендациям фирмы 1С, статус выполнения регламентных заданий, статистику по фрагментации таблиц в разрезе БД, ожидания СУБД. Пока поддерживается только MS SQL.

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

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