Как обнаружить и устранить узкие места в производительности 1С:ERP

Системный администратор 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием
← На главную

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

Первичная диагностика: инструменты и тесты

Прежде чем приступать к глубоким настройкам, необходимо объективно оценить текущее состояние системы. Рассмотрим основные инструменты для этого:

  1. Тест Гилева: Это стандарт де-факто для быстрой оценки производительности связки процессора и памяти. Он позволяет получить оценку в «попугаях» и сравнить её с эталонными значениями для аналогичного железа. Если тест показывает низкий результат (менее 20–25 единиц), проблема, скорее всего, кроется в настройках BIOS или операционной системы.
  2. Центр управления производительностью (ЦУП): Входит в состав Корпоративного инструментального пакета (КИП). Позволяет в реальном времени мониторить нагрузку на сервер приложений и SQL Server, выявлять блокировки и анализировать время выполнения запросов.
  3. Замер производительности в Конфигураторе: Рассмотрим ситуацию на уровне кода. Запустив замер во время выполнения долгой операции (например, формирования ОСВ), мы можем точно увидеть, какая именно процедура или функция занимает основное время — работа на сервере, передача данных на клиент или исполнение запроса.
  4. Системный монитор (PerfMon): Проанализируем загрузку процессора, дисковой подсистемы и памяти на уровне ОС Windows. Обращаем внимание на длину очереди к диску и процент использования ресурсов каждым процессом rphost.

Оптимизация серверного оборудования и ОС

Часто мощное железо работает не в полную силу из-за программных ограничений. Проверим ключевые моменты:

План электропитания: Это критически важный параметр. По умолчанию в Windows Server часто установлен «Сбалансированный» режим. Выясним причину тормозов: в этом режиме процессор динамически меняет частоту, что в 1С приводит к микрозадержкам. Необходимо установить режим «Высокая производительность» (High Performance). Дополнительно в BIOS сервера следует отключить функции энергосбережения, такие как C-States и Intel SpeedStep.

Антивирусное ПО: 1С активно создает множество временных файлов. Если антивирус проверяет каждый такой файл в реальном времени, производительность падает в 2–3 раза. Разберем, что нужно сделать: полностью исключить из проверки каталоги с базами данных, папку временных файлов службы 1С (AppData\Local\Temp) и каталоги исполняемых файлов 1С и SQL.

Виртуализация: Если 1С развернута в виртуальной среде, проанализируем её влияние. Практика показывает, что отказ от гипервизора и переход на «железный» сервер может ускорить выполнение ключевых операций в 2 раза за счет исключения накладных расходов на виртуализацию дисков и памяти.

Настройка SQL Server для работы с ERP

Если ЦУП показывает, что SQL Server «курит бамбук», а отчеты все равно тормозят, проблема может быть в неоптимальных настройках взаимодействия. Рассмотрим основные параметры:

Анализ процессов rphost и памяти

Выясним причину раздувания процессов rphost. В ERP один процесс может потреблять десятки гигабайт памяти. Рассмотрим тактику управления процессами:

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

  1. Количество сеансов на один процесс: Ограничим его (например, до 20–30). Это заставит систему плодить больше процессов rphost, но каждый из них будет меньше весить, что снизит вероятность проблем из-за фрагментации памяти.
  2. Выключенный режим отладки: Проверим, не запущен ли сервер 1С с ключом -debug на продуктивной базе. Это может существенно замедлять работу.

Архитектурные особенности ERP

Проанализируем внутренние механизмы системы, которые могут создавать задержки даже на пустой базе:

RLS (Ограничение доступа на уровне записей): Это одна из самых частых причин медленной работы. Если у пользователя включен RLS, платформа модифицирует каждый SQL-запрос, добавляя в него сложные условия проверки прав. Для диагностики попробуем выполнить ту же операцию (например, открыть справочник) под пользователем с полными правами. Если скорость выросла — проблема в неоптимальных настройках профилей доступа или самих правилах RLS.

Фоновые задания: ERP содержит сотни регламентных заданий. На этапе внедрения или первичной настройки стоит временно отключить ненужные (например, полнотекстовый поиск, обновление агрегатов, расчеты итогов), чтобы они не конкурировали за ресурсы с интерактивными пользователями.

Работа с Технологическим журналом (ТЖ)

Если стандартные средства не помогли, перейдем к «тяжелой артиллерии». Настроим сбор ТЖ для анализа длительных вызовов. Пример конфигурационного файла logcfg.xml для поиска событий длительностью более 5 секунд:


<config xmlns="http://v8.1c.ru/7.4/config/logcfg">
  <log location="C:\Logs\1C_Performance" history="24">
    <event>
      <eq property="Name" value="CALL"/>
      <gt property="Duration" value="5000000"/>
    </event>
    <event>
      <eq property="Name" value="SDBL"/>
      <gt property="Duration" value="5000000"/>
    </event>
    <property name="All"/>
  </log>
</config>

Анализируя события CALL, мы поймем, на каком серверном методе зависает система. События SDBL покажут избыточные запросы к базе данных, которые генерирует платформа. Часто именно здесь удается обнаружить, что система выполняет тысячи мелких запросов в цикле вместо одного пакетного, что и создает «тормоза» на пустом месте.

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

Поиск узких мест — это итерационный процесс. Начнем с теста Гилева и проверки плана электропитания. Если железо работает быстро, переходим к настройкам SQL Server и анализу RLS в конфигурации. В большинстве случаев проблема кроется не в нехватке ресурсов, а в неоптимальном их распределении или программных ограничениях операционной среды.

← На главную