Измерение скорости работы 1С – важная задача для поддержания производительности системы и выявления узких мест. В 1С есть несколько инструментов и методов, позволяющих оценить скорость работы различных операций и процедур.
I. Встроенные инструменты 1С:
- Технологический журнал (ТЖ):
- Описание: Самый мощный и гибкий инструмент для анализа производительности. ТЖ регистрирует информацию о различных событиях, происходящих в системе, включая время выполнения запросов, блокировки, вызовы процедур и функций, и т.д.
- Настройка:
- Включите ТЖ: В файле 1CV8.lgf (расположен в каталоге установки сервера 1С) необходимо настроить параметры записи технологического журнала. Минимально необходимые параметры:
§ <?xml version="1.0" encoding="UTF-8"?>
§ <config xmlns="http://v8.1c.ru/v8/tech-log">
§ <log location="C:\1CLogs" history="72" size="1024" /> <!-- Папка для логов, глубина хранения (часы), макс размер файла (МБ) -->
§ <event>
§ <eq property="name" value="CALL"/> <!-- Вызовы процедур и функций -->
§ <eq property="name" value="DBMSSQL"/> <!-- SQL запросы -->
§ <eq property="name" value="DBPROC"/> <!-- Хранимые процедуры SQL -->
§ <eq property="name" value="TLOCK"/> <!-- Блокировки -->
§ </event>
§ <property name="all"/> <!-- Записывать все свойства событий -->
§ </config>
- Перезапустите сервер 1С.
- Анализ:
- Для анализа ТЖ можно использовать:
- Встроенный анализатор ТЖ в 1С:Предприятие (начиная с платформы 8.3.18): “Администрирование” -> “Обслуживание” -> “Анализ технологического журнала”.
- Сторонние анализаторы ТЖ: Например, “LogExpert” (бесплатный), “SilverBullet” (платный).
- Основные события для анализа:
- CALL: Время выполнения вызовов процедур и функций.
- DBMSSQL: Время выполнения SQL-запросов к базе данных. Обращайте внимание на длительные запросы.
- DBPROC: Время выполнения хранимых процедур SQL.
- TLOCK: Информация о блокировках базы данных. Блокировки могут замедлять работу системы.
- Преимущества: Подробная информация о различных аспектах работы системы.
- Недостатки: Требует настройки и навыков анализа, большой объем логов.
- Замер производительности (встроенный в конфигурацию):
- Описание: В некоторые конфигурации 1С встроены инструменты для замера производительности. Например, в БСП (Библиотека стандартных подсистем) есть подсистема “Тестирование и исправление”.
- Использование: Найдите в своей конфигурации встроенные инструменты для замера производительности и следуйте инструкциям.
- Преимущества: Простой в использовании, не требует сложной настройки.
- Недостатки: Ограниченная функциональность, доступен не во всех конфигурациях.
- Замер времени выполнения кода (с помощью встроенных функций):
- Описание: Можно использовать встроенные функции 1С для замера времени выполнения отдельных участков кода.
- Пример:
o Начало = ТекущаяДата();
o // ... код, который нужно измерить ...
o Конец = ТекущаяДата();
o ВремяВыполнения = Конец - Начало;
o Сообщить("Время выполнения: " + ВремяВыполнения);
- Преимущества: Простой способ измерить время выполнения конкретного кода.
- Недостатки: Требует внесения изменений в код, не подходит для анализа общей производительности системы.
II. Сторонние инструменты:
- APM-системы (Application Performance Monitoring):
- Описание: Существуют сторонние APM-системы, предназначенные для мониторинга производительности приложений, в том числе 1С. Они предоставляют более продвинутые возможности анализа и визуализации данных, чем встроенные инструменты 1С.
- Примеры: SmartMonitor, AppDynamics, Dynatrace.
- Преимущества: Продвинутый анализ, визуализация данных, мониторинг в режиме реального времени.
- Недостатки: Платные, требуют установки и настройки.
- Инструменты профилирования SQL-запросов:
- Описание: Если вы подозреваете, что проблема в медленных SQL-запросах, можно использовать инструменты профилирования SQL-запросов для анализа времени выполнения запросов и выявления узких мест.
- Примеры: SQL Profiler (для MS SQL Server).
- Преимущества: Позволяют выявить и оптимизировать медленные SQL-запросы.
- Недостатки: Требуют знания SQL и навыков работы с инструментами профилирования.
III. Общие рекомендации по измерению производительности:
- Определите цель измерения: Что именно вы хотите измерить? Время выполнения конкретной операции, общую производительность системы, или выявить узкие места?
- Выберите подходящий инструмент: Выберите инструмент, который соответствует вашей цели измерения.
- Проводите измерения в одинаковых условиях: Чтобы получить достоверные результаты, проводите измерения в одинаковых условиях (например, в одно и то же время суток, с одинаковым количеством пользователей).
- Повторите измерения несколько раз: Чтобы убедиться, что результаты измерений не случайны, повторите их несколько раз и усредните полученные значения.
- Анализируйте результаты: Внимательно анализируйте результаты измерений, чтобы выявить причины низкой производительности.
- Вносите изменения постепенно: Не вносите сразу много изменений в конфигурацию или настройки системы. Вносите изменения постепенно и проверяйте, как они влияют на производительность.
Пример анализа с помощью технологического журнала:
- Проблема: Медленное проведение документа “Реализация товаров и услуг”.
- Действия:
- Включаем технологический журнал с событиями CALL и DBMSSQL.
- Проводим документ “Реализация товаров и услуг”.
- Открываем технологический журнал в анализаторе (например, встроенном в 1С).
- Фильтруем события по пользователю и времени проведения документа.
- Анализируем события CALL: Находим самые длительные вызовы процедур и функций.
- Анализируем события DBMSSQL: Находим самые длительные SQL-запросы.
- Вывод:
- Если много времени уходит на выполнение какой-то конкретной процедуры, то нужно оптимизировать эту процедуру (например, переписать алгоритм, добавить индексы).
- Если много времени уходит на выполнение SQL-запросов, то нужно оптимизировать запросы (например, добавить индексы, переписать запросы).
Ключевые факторы, влияющие на скорость работы 1С:
- Производительность сервера: Процессор, оперативная память, дисковая подсистема.
- Производительность базы данных: MS SQL Server, PostgreSQL. Настройки базы данных, оптимизация запросов.
- Производительность сети: Пропускная способность сети, задержки.
- Оптимизация кода 1С: Эффективность алгоритмов, использование индексов, оптимизация запросов.
- Конфигурация 1С: Объем данных, количество пользователей, сложность бизнес-процессов.
Правильный анализ производительности и своевременная оптимизация помогут вам обеспечить быструю и стабильную работу вашей системы 1С.