Как устранить резкое падение производительности 1С:УПП на совмещенном сервере MS SQL?

Системный администратор 1С v8.3 (Обычные формы) IT и автоматизация бизнеса
← На главную

Размещение сервера 1С:Предприятия, СУБД MS SQL Server и терминального сервера на одной физической машине часто приводит к резкой деградации производительности. Ситуация усугубляется при использовании тяжелых типовых конфигураций, таких как УПП 1.3, особенно после попыток внедрения ограничений на уровне записей (RLS) или применения динамических обновлений. Разберем по шагам комплекс мер для локализации узких мест и восстановления нормальной работы системы.

1. Диагностика узких мест и сбор метрик производительности

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

  1. Монитор производительности операционной системы: настроим сбор счетчиков производительности для процессора (процент загрузки), дисковой подсистемы (длина очереди диска, время отклика), оперативной памяти (доступный объем, количество операций подкачки в секунду) и сети.
  2. Профайлер MS SQL Server: выполним трассировку длительных запросов, чтобы выявить блокировки, тяжелые сканирования таблиц и неоптимальные планы выполнения.
  3. Замер производительности в Конфигураторе: проверим длительность выполнения типовых процедур при старте системы и проведении документов.

2. Настройка параметров MS SQL Server для совмещенной архитектуры

Когда на одном сервере работают СУБД, кластер 1С и сеансы пользователей, СУБД по умолчанию может забрать все доступные ресурсы, вызвав жесткую нехватку памяти для процессов rphost и терминальных сессий. Настроим параметры экземпляра MS SQL Server:

  1. Ограничение оперативной памяти (Max Server Memory): зафиксируем верхний предел памяти для SQL Server (например, не более 50% от общего объема ОЗУ сервера), чтобы гарантировать запас ресурсов под приложения и ОС.
  2. Ограничение параллелизма (MAXDOP): установим параметр Max Degree of Parallelism в значение 1. Для работы с базами 1С это исключает взаимные блокировки потоков при выполнении сложных запросов.
  3. Конфигурация TempDB: разделим базу TempDB на несколько файлов данных одинакового размера (по количеству физических ядер процессора) и установим фиксированный шаг автоувеличения в мегабайтах.
  4. Параметры базы данных: убедимся, что параметры Auto Close и Auto Shrink отключены (False), а также активирована быстрая инициализация файлов данных (Instant File Initialization).
  5. Регламентные процедуры: настроим регулярное обслуживание базы данных — реиндексацию, дефрагментацию индексов и обновление статистик.

3. Устранение последствий динамических обновлений и очистка кэша

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

SELECT * FROM _config WHERE filename LIKE '%dyn%';

Если запрос возвращает строки, это свидетельствует о наличии динамических версий. Для полного восстановления структуры метаданных и очистки кэша выполним следующие действия:

  1. Остановим службу Агент сервера 1С:Предприятия.
  2. Очистим кэш сервера 1С: каталог служебных данных кластера (файлы кэша конфигураций).
  3. Очистим локальный кэш на рабочих местах пользователей.
  4. Выполним выгрузку конфигурации в файл .cf и выполним полную загрузку конфигурации через меню Конфигурация — Загрузить конфигурацию из файла.
  5. В качестве альтернативы выполним цикл выгрузки информационной базы в файл .dt и загрузки в чистую базу MS SQL.
  6. Выполним процедуру Тестирование и исправление информационной базы (ТиИ) со всеми установленными флагами проверки логической и ссылочной целостности.

4. Особенности отключения RLS в конфигурации УПП

Механизм ограничений прав на уровне записей (RLS) в УПП использует специальные служебные регистры сведений для хранения прав доступа. Простое отключение прав в ролях или общих настройках может не остановить обращения типового кода к переполненным или некорректно заполненным регистрам прав. Рассмотрим порядок полного отключения:

  1. Отключим использование RLS в настройках программы.
  2. Очистим записи специализированных регистров сведений, отвечающих за хранение прав доступа пользователей к объектам и группам.
  3. Пересчитаем итоги по регистрам накопления и бухгалтерии.

5. Оптимизация операционной системы и кластера серверов 1С

Для стабилизации совмещенной инфраструктуры применим дополнительные системные настройки:

  1. Схема электропитания: в операционной системе Windows Server установим план «Высокая производительность» (High Performance), а в BIOS отключим энергосберегающие режимы процессора (C-States, Cool'n'Quiet).
  2. Исключения антивируса: добавим в список исключений каталоги кластера 1С (каталог srvinfo), файлы баз данных .mdf и .ldf, временные папки пользователей и процессы rphost.exe, rmngr.exe, ragent.exe, sqlservr.exe.
  3. Подключение через Shared Memory: убедимся, что сервер 1С подключается к локальному MS SQL Server по протоколу общей памяти (Shared Memory), что исключает сетевые задержки при передаче данных внутри одного хоста.
  4. Автоматический перезапуск рабочих процессов: в свойствах кластера серверов 1С настроим интервал перезапуска рабочих процессов rphost или зададим ограничение по допустимому объему памяти для предотвращения утечек при выполнении объемных отчетов.
← На главную