Ситуация, когда информационная база 1С внезапно перестает отвечать, а консоль администрирования 1CV8 Servers зависает при попытке просмотра сеансов, является критической для любого бизнеса. Особенно часто это проявляется после перехода на клиент-серверный вариант работы (MS SQL Server), когда настройки системы остаются «по умолчанию». Проанализируем причины возникновения «мертвых» зависаний и разберем по шагам, как стабилизировать работу системы 1С:Предприятие 8.3.
Одной из главных причин зависания системы «наглухо» является нехватка оперативной памяти и последующий уход сервера в жесткий свопинг (активное использование файла подкачки на жестком диске). Рассмотрим ситуацию на примере: если на сервере установлено 16 ГБ ОЗУ, а под нужды MS SQL Server выделено 10 ГБ, то для операционной системы, процессов rphost сервера 1С и терминальных сессий пользователей остается всего 6 ГБ.
В моменты пиковой нагрузки процессы 1С начинают потреблять больше памяти, ОС вытесняет данные из физической памяти в файл подкачки. Поскольку скорость работы диска в разы ниже скорости ОЗУ, система перестает отвечать на запросы. Проанализируем необходимые действия:
rmngr и рабочих процессов rphost.Стандартные настройки кластера 1С не всегда подходят для высоконагруженных систем или серверов с ограниченными ресурсами. Выясним, какие параметры в консоли администрирования 1С (msc-оснастка) напрямую влияют на стабильность:
Количество информационных баз на процесс. По умолчанию один процесс rphost может обслуживать все базы кластера. Если в одной базе происходит критическая ошибка или утечка памяти, падает весь процесс, увлекая за собой остальных пользователей. Установим значение этого параметра равным 1. Это обеспечит изоляцию баз друг от друга на уровне процессов ОС.
Количество соединений на один рабочий процесс. Если это значение слишком мало, система будет постоянно создавать и уничтожать процессы, что создает лишнюю нагрузку. Рекомендуется установить значение не менее 128 соединений на процесс. Это позволит сбалансировать нагрузку и избежать «затыков» при подключении новых пользователей.
Интервалы перезапуска. Рассмотрим параметры «Допустимый объем памяти» и «Интервал превышения допустимого объема памяти». Если сервер 1С работает на версии 8.3.10.2772, которая склонна к утечкам памяти в процессах rphost, важно настроить автоматический перезапуск рабочих процессов при достижении определенного порога потребления памяти, чтобы не допустить коллапса всей системы.
Для корректной работы 1С с базами данных MS SQL крайне важно настроить параметр параллелизма запросов. По умолчанию SQL Server пытается распараллелить тяжелый запрос на все доступные ядра процессора. В 1С это часто приводит к взаимным блокировкам и зависаниям интерфейса у всех пользователей сразу.
Проанализируем ситуацию: один «тяжелый» отчет может занять все ресурсы CPU, и сервер перестанет отвечать на мелкие запросы других пользователей. Чтобы этого избежать, установим параметр Max Degree of Parallelism (MAXDOP) в значение 1.
Для этого выполним следующий скрипт в SQL Server Management Studio:
EXEC sys.sp_configure N'show advanced options', N'1';
RECONFIGURE;
EXEC sys.sp_configure N'max degree of parallelism', N'1';
RECONFIGURE;
Иногда причина зависания кроется не в памяти, а в сетевом взаимодействии. Проверим версию MS SQL Native Client. Использование устаревших или несовместимых версий клиента на стороне сервера 1С может вызывать разрывы соединений, которые выглядят как зависание программы.
Также разберем влияние сетевых оптимизаций Windows. Функции разгрузки сетевого стека (Offload) могут некорректно работать на виртуальных машинах или с определенными драйверами сетевых карт, вызывая «замирание» пакетов. Рекомендуется отключить их через командную строку:
netsh int tcp set global chimney=disabled
netsh int tcp set global rss=disabled
netsh int tcp set global netdma=disabled
Дополнительно стоит обратить внимание на протокол IPv6. В некоторых конфигурациях 1С пытается приоритетно использовать IPv6 для связи с SQL, что приводит к задержкам. Попробуем либо полностью отключить IPv6 в свойствах сетевого адаптера, либо принудительно использовать протокол TCP/IP вместо Shared Memory в строке подключения к базе данных.
Зачастую администраторы забывают о базовых настройках операционной системы. Посмотрим на схему электропитания сервера. Если установлен режим «Сбалансированный», процессор может динамически снижать частоту. При резком поступлении запроса от 1С системе требуется время на «пробуждение» ядер, что вызывает микрозадержки. В высоконагруженных системах 1С эти задержки накапливаются и превращаются в полноценные фризы. Установите режим «Высокая производительность» (High Performance).
Не забудем и про антивирусное ПО. Обязательно исключим из проверки следующие объекты:
.mdf, .ldf).C:\Program Files\1cv8\srvinfo).Temp), где 1С создает множество промежуточных файлов.Соблюдение этих рекомендаций в комплексе — ограничение памяти SQL, изоляция рабочих процессов 1С и настройка параллелизма — позволит избавиться от «глухих» зависаний и обеспечит стабильную работу 1С:Управление торговлей.