К статье
Практический материал

Администрирование · 10 мин

Как оценить производительность 1С: метрики, инструменты и диагностика

Как оценить производительность 1С: ключевые метрики, инструменты замера, ЦУП и Гильдия, диагностика узких мест и типичные ошибки при нагрузочном тестировании.

Медленная работа 1С редко объясняется одной причиной: чаще всего это сочетание перегруженного сервера СУБД, неоптимальных запросов в конфигурации, блокировок и слабой сети у клиентов. Поэтому оценку производительности нельзя сводить к субъективному «тормозит / не тормозит» — нужны измеримые метрики, воспроизводимый сценарий замера и понимание, где именно теряется время.

Оценка производительности решает три практические задачи: зафиксировать текущее состояние как точку отсчёта, найти узкие места (код, запросы, оборудование, блокировки) и проверить, дала ли оптимизация реальный эффект. Без замеров «до и после» любые доработки превращаются в гадание, а споры с пользователями и подрядчиками — в обмен мнениями.

Материал ориентирован на администраторов и разработчиков 1С, работающих с клиент-серверными базами. Рассмотрены встроенные средства платформы, замер через эталонную обработку, сбор счётчиков на сервере и типовые ошибки, которые искажают результаты тестирования.

Какие метрики использовать для оценки

Главная метрика для пользователей — время выполнения прикладной операции: проведение документа, заполнение и формирование отчёта, открытие списка или формы, закрытие месяца. Замеряйте её в секундах на типовых объёмах данных и фиксируйте условия: размер базы, число одновременных пользователей, период выборки. Разовый замер малоинформативен — нужна серия из нескольких прогонов с усреднением.

Вторая группа метрик — ресурсная: загрузка CPU, оперативной памяти, дисковой подсистемы и сети на сервере 1С и сервере СУБД в момент выполнения операции. Если операция медленная, а ресурсы сервера почти не задействованы, проблема обычно в блокировках или в неэффективном коде. Если диск или CPU загружены под предел — узкое место в инфраструктуре или в тяжёлых запросах.

Третья группа — показатели конкурентной работы: количество и длительность взаимоблокировок, ожидания на блокировках, число одновременных сеансов. Эти метрики критичны для баз с десятками и сотнями пользователей, где деградация проявляется только под нагрузкой.

Быстрый замер эталонной обработкой

Для быстрой оценки общего состояния системы удобна обработка «Оценка производительности» из состава БСП (библиотеки стандартных подсистем) и аналогичные эталонные тесты. Она выполняет серию типовых операций — запись и проведение документов, выполнение запросов, работу с файлами — и выдаёт условный интегральный показатель, который можно сравнивать между серверами и конфигурациями.

Такой тест не показывает, где именно проблема, но отвечает на важные вопросы: одинаково ли работает система на разных серверах, ухудшилась ли производительность после обновления или миграции, есть ли смысл заниматься глубокой диагностикой. Запускайте замер в однопользовательском режиме на «холодной» и «прогретой» базе — разница между прогонами сама по себе информативна.

Порядок быстрой оценки
  1. 1
    Зафиксируйте конфигурацию: версии платформы и СУБД, параметры сервера, размер базы.
  2. 2
    Запустите эталонную обработку оценки производительности в монопольном режиме, выполните 3–5 прогонов и усредните результат.
  3. 3
    Повторите замер под типовой пользовательской нагрузкой и сравните с монопольным результатом.
  4. 4
    Сохраните результаты как базовую точку отсчёта для будущих сравнений.

Инструменты платформы: замер производительности и технологический журнал

Встроенный «Замер производительности» в конфигураторе показывает, сколько времени заняла каждая строка кода и каждый запрос при выполнении операции. Это первый инструмент, когда конкретная операция работает медленно: запускаете замер, выполняете операцию в клиенте, анализируете дерево вызовов и находите строки с максимальным вкладом во время.

Технологический журнал (ТЖ) — механизм регистрации событий на уровне платформы: запросы к СУБД, вызовы, блокировки, исключения. Настройте отбор событий через файл logcfg.xml, чтобы фиксировать, например, все запросы длительнее заданного порога и события блокировок. ТЖ незаменим для анализа проблем, которые нельзя воспроизвести на тестовой базе, — он показывает, что реально происходило на рабочем сервере.

xml
<config xmlns="http://v8.1c.ru/v8/tech-log"><log location="C:\1c_logs" history="24"><event><eq property="name" value="DBMSSQL"/></event><event><eq property="name" value="TLOCK"/></event><event><eq property="name" value="TDEADLOCK"/></event><property name="all"/></log></config>

Учтите: включение подробного ТЖ само по себе создаёт нагрузку на диск и может замедлить систему. Настраивайте фильтры по событиям и длительности, ограничивайте глубину хранения и отключайте журнал после сбора необходимых данных.

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

Большая часть времени выполнения тяжёлых операций 1С уходит на запросы к СУБД, поэтому сервер баз данных нужно наблюдать отдельно. Для MS SQL Server используйте динамические административные представления (sys.dm_exec_query_stats, sys.dm_os_wait_stats) и расширенные события; для PostgreSQL — pg_stat_statements и журнал медленных запросов. Ищите запросы с максимальным суммарным временем, полными сканированиями таблиц и частыми перекомпиляциями.

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

Операция медленная, CPU и диски свободныВероятны блокировки или неэффективный код

Проверить ТЖ на события TLOCK/TDEADLOCK и сделать замер производительности

Диск сервера СУБД загружен на 90–100%Узкое место — дисковая подсистема

Проверить очередь диска, размещение данных и журнала транзакций

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

Сравнить замер на сервере и на проблемном рабочем месте

Всё медленно только в часы пикНехватка ресурсов под конкурентной нагрузкой

Снять счётчики в пиковое время и оценить число сеансов

Нагрузочное тестирование и ЦУП

Для оценки поведения системы под нагрузкой используется Центр управления производительностью (ЦУП) — решение на базе платформы 1С, которое эмулирует работу множества пользователей по заранее записанным сценариям и собирает метрики, включая APDEX по ключевым операциям. ЦУП позволяет воспроизводимо ответить на вопрос: выдержит ли система рост числа пользователей или переход на новое оборудование.

Методика такова: выбирают 5–10 ключевых операций, для каждой задают целевое время, записывают сценарии и прогоняют их с нарастающим числом виртуальных пользователей. По результатам строят зависимость времени операций от нагрузки и находят точку деградации. Тестирование выполняйте на копии рабочей базы с реалистичным объёмом данных — результаты на пустой базе ничего не скажут о реальной системе.

Интерпретация результатов и типичные ошибки

Самая частая ошибка — выводы по одному замеру. Время операции зависит от состояния кэша СУБД, фоновых заданий, антивируса и активности других пользователей. Всегда делайте серию прогонов, отбрасывайте явные выбросы и сравнивайте медианные или средние значения при одинаковых условиях.

Вторая ошибка — оптимизация не того звена. Администраторы увеличивают память серверу, когда проблема в запросе без индекса, а разработчики переписывают код, когда узкое место — диск с журналом транзакций. Прежде чем что-то менять, локализуйте проблему замером: клиент, сервер 1С или СУБД. Третья ошибка — отсутствие базовой точки отсчёта: без зафиксированных показателей «до» невозможно доказать, что оптимизация сработала.

Типичные ошибки
01
Замер в один прогон и выводы по случайному значению вместо серии измерений.
02
Тестирование на пустой или урезанной базе — результаты не переносятся на рабочую систему.
03
Оптимизация без локализации проблемы: меняется оборудование вместо запроса и наоборот.
04
Игнорирование фоновых заданий и регламентных операций СУБД во время замера.
05
Отсутствие зафиксированной базовой точки — невозможно оценить эффект изменений.

Признак качественно выполненной оценки: у вас есть таблица с временем ключевых операций в заданных условиях, графики загрузки ресурсов в момент замеров, список самых тяжёлых запросов и событий блокировок, а также понятная гипотеза об узком месте, которую можно проверить одним целевым изменением.

Итог

Что важно запомнить

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

Частые вопросы

Какое время проведения документа считать нормальным?

Универсальной нормы нет: она зависит от конфигурации, объёма документа и числа пользователей. Практический подход — зафиксировать текущее время как базовую точку и считать проблемой рост в полтора-два раза при неизменных условиях, а также жалобы пользователей, подтверждённые замерами.

Можно ли оценить производительность файловой базы?

Да, но инструментарий ограничен: доступны замер производительности в конфигураторе и эталонные обработки. Счётчики СУБД неприменимы, поэтому основное внимание уделяйте сети (для базы на сетевом ресурсе), диску и антивирусу на компьютере, где размещён файл базы.

Чем замер производительности отличается от технологического журнала?

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

Обязательно ли использовать ЦУП для оценки?

Нет. Для небольших систем достаточно замера производительности, ТЖ и счётчиков сервера. ЦУП оправдан, когда нужно прогнозировать поведение под нагрузкой: десятки и сотни одновременных пользователей, проверка перед увеличением штата или миграцией на новое оборудование.

Почему после обновления конфигурации система стала медленнее?

Типовые причины: изменённые запросы и планы их выполнения, новые фоновые задания, отложенные обработчики обновления, которые ещё не завершились, и сброшенная статистика СУБД. Сравните замеры ключевых операций до и после обновления и проверьте, завершились ли отложенные обработчики.

Как понять, что проблема в блокировках, а не в железе?

Характерный признак: операции медленные, но CPU, память и диски серверов недогружены, а деградация усиливается с ростом числа пользователей. Подтверждение ищите в технологическом журнале по событиям TLOCK и TDEADLOCK и в данных СУБД об ожиданиях на блокировках.