Перенос системы 1С:Предприятие на новую серверную архитектуру — это всегда ответственный шаг, который часто сопровождается неожиданными проблемами с производительностью. Классическая ситуация: вы разделяете роли, устанавливая сервер терминалов (RDP) на одну машину, а сервер приложений 1С и MS SQL Server — на другую. Несмотря на использование гигабитной сети, пользователи начинают жаловаться, что проведение документов и запись данных стали работать значительно медленнее, чем при локальной работе на самом сервере БД. Разберем детально, почему это происходит и как настроить систему для достижения максимальной скорости.
Проанализируем специфику работы «Толстого клиента», на котором построена конфигурация Управление торговлей 10.3. В отличие от современных веб-клиентов, старые конфигурации крайне чувствительны к latency (задержкам) сети. При выполнении одной операции проведения документа платформа 1С может совершать сотни и тысячи последовательных запросов к серверу. Даже если ваш ping показывает менее 1 мс, суммарная задержка накапливается в геометрической прогрессии.
Выясним причину: в локальном режиме (когда терминал и база на одном сервере) передача данных происходит через оперативную память практически мгновенно. При выносе терминала на другой хост каждый запрос должен пройти через сетевой стек Windows, сетевую карту, коммутатор и обратно. Чтобы минимизировать эти потери, выполним следующие шаги по оптимизации сетевых карт на обоих серверах:
Рассмотрим параметры операционной системы, которые часто мешают корректной работе высоконагруженных систем 1С. Функции разгрузки TCP (Offloading) призваны снять нагрузку с центрального процессора, переложив её на сетевую карту. Однако на практике это часто приводит к «зависаниям» пакетов 1С. Проанализируем состояние сетевого стека и выполним команды для отключения потенциально проблемных функций.
Запустим командную строку от имени администратора и выполним проверку текущих настроек командой netsh int tcp show global. Для ускорения работы 1С рекомендуется применить следующие настройки:
netsh int tcp set global chimney=disabled
netsh int tcp set global autotuninglevel=disabled
netsh int tcp set global rss=disabled
netsh int tcp set global netdma=disabled
Важно: После выполнения данных команд следует перезагрузить серверы и провести замер скорости проведения типового документа. Во многих случаях именно отключение chimney и autotuninglevel позволяет убрать микро-фризы при работе в толстом клиенте по сети.
Разберем ситуацию на «новом» сервере, где совместно работают Сервер приложений 1С и MS SQL Server. По умолчанию они должны обмениваться данными через протокол Shared Memory (общая память), который работает быстрее любого сетевого протокола. Однако, если в настройках SQL Server этот протокол отключен или стоит низкий приоритет, система может начать гонять трафик через «петлю» (loopback) по TCP/IP.
Проверим настройки в SQL Server Configuration Manager:
SQL Server Network Configuration -> Protocols for MSSQLSERVER.Shared Memory включен (Enabled).Client Protocols для SQL Native Client выставим Shared Memory самым первым в списке приоритетов.Это гарантирует, что внутри сервера БД и сервера 1С данные будут летать с максимально возможной скоростью, не нагружая сетевой интерфейс лишними запросами.
Проанализируем еще один неочевидный фактор тормозов в УТ 10.3 — работу с кэшем и временными файлами. При работе в терминальной сессии 1С активно пишет данные в папку профиля пользователя (%AppData%). Если вы перенесли терминальный сервер, но оставили какие-то общие файловые ресурсы (например, классификаторы, логи или внешние обработки) на старом сервере или в медленной сетевой папке, система будет ждать ответа от файловой системы.
Посмотрим на настройки журнала регистрации. Если Журнал регистрации (файлы .lgp или .lgf) вынесен на сетевой ресурс, проведение документов замедлится в несколько раз, так как каждая запись в журнал потребует подтверждения от удаленного диска. Убедимся, что:
TEMP) пользователей также расположены на быстрых локальных накопителях.1cv8.exe, rphost.exe и расширений файлов 1С (*.1CD, *.lgp, *.log).Выясним причину возможных задержек при установке соединения. В современных ОС Windows приоритет отдается протоколу IPv6. Часто 1С пытается сначала разрешить имя сервера через IPv6, ждет таймаута и только потом переходит на IPv4. Это может добавлять по 1-2 секунды к каждой операции открытия формы или подключения к базе.
Рекомендуем выполнить следующие действия:
hosts (C:\Windows\System32\drivers\etc\hosts) на терминальном сервере.Пример записи в файле hosts:
192.168.1.10 SRV-1C-SQL
Чтобы понять, принесли ли наши действия результат, недостаточно просто «пощелкать» в программе. Проанализируем ситуацию с помощью встроенного инструмента «Замер производительности» в конфигураторе 1С. Рассмотрим порядок действий:
Если мы видим, что основное время тратится на оператор Записать() или процедуры Движения.Записать(), значит проблема в связке «Сервер 1С — SQL». Если же долго выполняются процедуры открытия форм или расчетные алгоритмы на клиенте, стоит еще раз обратить внимание на сетевые задержки между терминалом и сервером приложений.
Подводя итог, можно сказать, что медленная работа по сети в 90% случаев лечится не покупкой нового «железа», а тонкой настройкой TCP-стека Windows, отключением энергосбережения сетевых карт и обеспечением работы Shared Memory на сервере БД. Совместное применение этих мер позволяет вернуть комфортную скорость работы пользователям УТ 10.3 даже при распределенной архитектуре серверов.