В распределенной инфраструктуре часто используется архитектура, где клиенты подключаются к терминальным серверам (RDP), а базы 1С развернуты на выделенном сервере приложений и СУБД. Распространенной проблемой является ситуация, когда на одном из терминальных серверов у всех пользователей одновременно намертво зависают сеансы клиентских приложений 1С, обращающиеся к удаленному кластеру. При этом локальные базы на том же терминале, сам сервер СУБД и соседние терминальные серверы продолжают работать стабильно.
Разберем детально причины такого поведения, методику поиска источника сбоя и системные настройки, позволяющие устранить зависания.
Платформа 1С:Предприятие активно передает между клиентом и кластером большие объемы сериализованных данных. Стандартная проверка утилитой ping с размером пакета по умолчанию (32 байта) может показывать идеальный отклик, в то время как пакеты реального размера будут теряться или фрагментироваться на уровне сетевых коммутаторов и виртуальных адаптеров.
Проанализируем сетевой канал с помощью отправки пакетов максимального размера. Для этого на проблемном терминальном сервере выполним команду в командной строке:
ping <Имя_Сервера_1С> -t -l 65000 -4
Для непрерывного мониторинга и фиксации момента аварии запишем результаты проверки в текстовый файл с помощью перенаправления вывода:
ping <Имя_Сервера_1С> -t -l 65000 -4 > C:\Temp\ping_log.txt
Если в момент зависания сеансов в логе появляются таймауты (Превышен интервал ожидания для запроса), это свидетельствует о проблемах в канале, сбросе сетевого интерфейса или перегрузке промежуточного коммутатора. Даже кратковременный разрыв соединения на уровне TCP приводит к тому, что соединение со стороны СУБД или кластера 1С сбрасывается, а клиентские сеансы на терминальном сервере остаются в состоянии бесконечного ожидания ответа.
Повреждение кэшированных метаданных и конфигурационных файлов способно приводить к десинхронизации клиентских вызовов и блокировкам рабочих процессов. Регулярная очистка кэша позволяет исключить накапливающиеся ошибки.
1cv8c.exe и 1cv8.exe на терминальном сервере.%LocalAppData%\1C\1cv8
%AppData%\1C\1cv8%Temp% (включая каталоги вида v8_*).Современные физические и виртуальные сетевые карты используют технологии разгрузки сетевого стека, такие как Large Send Offload (LSO), TCP Chimney Offload и Receive Side Scaling (RSS). В условиях интенсивной многопользовательской нагрузки на терминальном сервере эти функции могут вызывать сбои драйвера и «залипание» TCP-сокетов.
Выполним настройку сетевой карты на терминальном сервере и сервере 1С:
Disabled.Если между серверами настроен межсетевой экран с контролем состояния сессий (Stateful Firewall), он может принудительно разрывать неактивные TCP-соединения по собственному таймауту. В результате 1С-клиент считает соединение открытым, а брандмауэр уже уничтожил запись о сессии.
Скорректируем поведение механизма проверки активности соединений (Keep-Alive) в системном реестре Windows:
HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\ParametersDWORD (32-bit) с именем KeepAliveTime и зададим значение 300000 (в десятичной системе, что соответствует 5 минутам вместо стандартных 2 часов).KeepAliveInterval типа DWORD (32-bit) со значением 1000 (интервал повтора в 1 секунду).На высоконагруженном терминальном сервере с десятками пользователей активные процессы 1С открывают множество одновременных TCP-соединений к кластеру серверов. При нехватке временных портов (Ephemeral Ports) создание новых соединений и подтверждение пакетов блокируются для всех пользователей.
Проверим текущее состояние портов командой:
netsh int ipv4 show dynamicport tcp
При необходимости расширим диапазон портов следующей командой:
netsh int ipv4 set dynamicport tcp start=10000 num=55000
Антивирусные комплексы и EDR-системы могут кратковременно блокировать сетевые потоки 1С и дескрипторы временных файлов в профилях пользователей при высокой дисковой активности.
C:\Program Files\1cv8\* и C:\Program Files (x86)\1cv8\*.1540-1541, 1560-1591).AppData\Local\Temp\v8_*.Если сетевая инфраструктура между серверами подвержена нестабильности, эффективным архитектурным решением является публикация информационных баз на веб-сервере (IIS или Apache). Перевод тонких клиентов на протокол HTTP/HTTPS существенно повышает устойчивость к кратковременным микроразрывам сети, снижает чувствительность к фрагментации пакетов и полностью решает проблему исчерпания прямых TCP-сессий между терминалом и кластером 1С.