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

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

В работе высоконагруженных систем на базе 1С:Предприятие 8.3 часто возникает специфическая проблема: при отличных показателях производительности оборудования (низкая очередь диска, свободная оперативная память, малая загрузка ЦП) пользователи жалуются на периодические «фризы» интерфейса. Особенно неприятно, когда замеры Apdex показывают нормальное время выполнения операций, а реальное ожидание составляет 5–10 секунд. Разберем детально, как диагностировать и устранить эти задержки, опираясь на технические особенности платформы и системного окружения.

Анализ и выбор версии платформы 1С

Первым делом проанализируем используемую версию платформы. Опыт эксплуатации показывает, что ветка 8.3.13 (например, 8.3.13.1644) характеризуется нестабильной работой интерфейсных механизмов и серверных процессов. Выясним причину: в этой версии часто наблюдались проблемы с очисткой серверного кэша и корректностью работы Shared Memory.

Рассмотрим рекомендации по переходу на более стабильные релизы:

Настройка электропитания сервера

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

Установим режим «Высокая производительность» (High Performance). Это необходимо сделать не только в настройках Windows, но и в параметрах BIOS/UEFI сервера (Power Regulator — Static High Performance). Это исключит задержки на переключение состояний процессора.

Оптимизация MS SQL Server для 1С

Если 1С работает связке с MS SQL Server 2012 или новее, критически важно проверить параметры параллелизма. Разберем по шагам настройку MAXDOP:

  1. Откроем свойства экземпляра SQL Server.
  2. Перейдем в раздел «Advanced».
  3. Установим параметр Max Degree of Parallelism в значение 1. Это заставит SQL выполнять каждый запрос в рамках одного потока, исключая ожидания CXPACKET (ожидание синхронизации потоков), которые часто являются причиной «замирания» базы на простых операциях.
  4. Параметр Cost Threshold for Parallelism (если MAXDOP не 1) рекомендуется поднять до 50.

Также проверим состояние базы TempDB. Для сервера с 6 физическими ядрами (как в нашем примере) создадим 6 файлов данных TempDB одинакового размера. Это минимизирует конкуренцию за системные страницы при записи временных таблиц 1С.

Проблема проброса принтеров в RDP

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

Для диагностики попробуем временно отключить проброс принтеров в настройках RDP-подключения. Если фризы исчезли — необходимо установить на сервере «локальный» виртуальный принтер (например, Microsoft XPS) и сделать его принтером по умолчанию для всех пользователей.

Обслуживание полнотекстового поиска и индексов

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

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

Настройка сети и протокола IPv6

Иногда задержки в 3–10 секунд вызваны таймаутами при разрешении имен. Windows Server 2008 R2 и выше приоритезирует протокол IPv6. Если в сети он настроен некорректно, система сначала пытается достучаться до сервера 1С или SQL по IPv6, ждет ответа, и только после таймаута переключается на IPv4.

Рекомендуется принудительно отключить IPv6 в свойствах сетевого адаптера или через реестр. Также в строке подключения к базе данных вместо имени сервера лучше использовать его IP-адрес, чтобы исключить влияние DNS-запросов на скорость авторизации и открытия форм.

Работа с журналом регистрации и антивирусом

Проверим размер и формат журнала регистрации. Если используется старый формат .lgp, и файл разросся до нескольких гигабайт, любая запись в него (например, при открытии формы) будет вызывать тормоза. Рассмотрим возможность сокращения журнала или его конвертации в новый формат (SQLite).

Обязательно добавим в исключения антивируса на сервере следующие объекты:

Диагностика через трассировку SQL

В ситуации, когда запись трассировки SQL «кладет» сервер, мы имеем явный признак проблем с дисковой подсистемой при работе с мелкими пакетами данных. Несмотря на низкую среднюю очередь, пиковые задержки записи (Disk Write Latency) могут быть огромными. Посмотрим на параметры Average Disk sec/Write в системном мониторе — если значения превышают 0.020 (20 мс), дисковый контроллер или сами диски не справляются с нагрузкой, что и приводит к подвисаниям 1С при выполнении фоновых транзакций.

← На главную