Многие системные администраторы и разработчики при переходе на платформу 1С версии 8.3.23 и выше сталкиваются с неприятным феноменом: первый запуск информационной базы после периода простоя занимает несколько минут. При этом сама работа в базе остается комфортной, а повторные входы выполняются мгновенно. Мы детально разберем причины этой проблемы, проанализируем технологические журналы и предложим комплексное решение для оптимизации работы сервера.
Проанализируем поведение серверной части 1С. Начиная с версии 8.3.23, в платформе изменились алгоритмы управления памятью рабочих процессов rphost. Когда в информационной базе нет активных сеансов, сервер приложений через определенное время (обычно около 20 минут) полностью выгружает конфигурацию из оперативной памяти для экономии ресурсов.
В результате первый пользователь, пытающийся войти в базу, инициирует процесс полной загрузки метаданных из SQL-таблиц в память сервера. Для тяжелых конфигураций, таких как Бухгалтерия предприятия 3.0 или Зарплата и управление персоналом 3.1, этот процесс требует колоссального количества операций чтения и декомпиляции кода. Рассмотрим, как это можно исправить:
При изучении технологического журнала (ТЖ) часто обнаруживаются записи вида Ping direction statistics, где время отклика достигает 10-15 секунд. Выясним причину: современные ОС Windows и платформа 1С по умолчанию пытаются взаимодействовать через протокол IPv6. Если он настроен некорректно или имеет приоритет над IPv4, платформа ожидает таймаута соединения, прежде чем переключиться на стандартный IPv4.
Для устранения этой задержки выполним следующие действия:
Установим приоритет IPv4 над IPv6 через командную строку (от имени администратора):
netsh interface ipv6 set prefixpolicy ::ffff:0:0/96 46 4
netsh interface ipv6 set prefixpolicy ::1/128 50 0
Также рекомендуется в файле hosts на сервере и клиентах явно прописать соответствие IP-адреса и имени сервера 1С, чтобы исключить долгие DNS-запросы.
Часто долгий старт связан с тем, что SQL-сервер не успевает быстро отдать необходимые данные для инициализации сеанса. Рассмотрим настройки, которые существенно влияют на «прогрев» базы:
1. Настройка параллелизма: Для баз 1С рекомендуется ограничивать использование ядер процессора для одного запроса. В свойствах сервера SQL (раздел Advanced) установим:
Max Degree of Parallelism (MAXDOP) = 1 (для систем с малым количеством ядер) или 2-4 (для высоконагруженных систем).Cost Threshold for Parallelism = 50.2. Флаги трассировки: Применим флаги, которые рекомендует фирма 1С для оптимизации блокировок и работы с временными таблицами. Добавим их в параметры запуска SQL Server:
-T1211 -T1224 -T2371 -T4199
3. Параметры базы данных: Убедимся, что параметры Auto-Close и Auto-Shrink установлены в OFF. Если включен Auto-Close, SQL-сервер закрывает базу при выходе последнего пользователя, и первый запуск будет включать время на монтирование файлов mdf/ldf.
Если в вашей системе используются (или когда-либо использовались) аппаратные USB-ключи HASP, платформа при старте может тратить до 30-60 секунд на опрос сети в поисках ключа. Даже если вы перешли на программные лицензии, этот механизм может продолжать работать.
Разберем, как жестко задать адрес сервера лицензий и отключить широковещательные запросы. Отредактируем файл nethasp.ini (обычно находится в C:\Program Files\1cv8\conf):
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled
[NH_TCPIP]
NH_SERVER_ADDR = 127.0.0.1 ; Укажите IP вашего сервера лицензий
NH_USE_BROADCAST = Disabled
NH_TCPIP_METHOD = TCP
Если вышеперечисленные методы не помогли, нам необходимо увидеть, на чем именно «висит» процесс. Создадим файл logcfg.xml в папке conf версии платформы со следующим содержанием для отслеживания длительных операций:
<config xmlns="http://v8.1c.ru/7.4/config/log">
<log location="C:\LOGS\1C" history="2">
<event>
<eq property="Name" value="CONN"/>
</event>
<event>
<eq property="Name" value="EXCP"/>
</event>
<property name="All"/>
</log>
</config>
После запуска базы проанализируем полученные логи. Ищите события с длительностью (второе число в строке) более 10 000 000 (10 секунд). Особое внимание обратите на ошибки liccspr (связанные с лицензированием) и сетевые таймауты CONN.
Подводя итог, можно сказать, что «медленный первый запуск» — это комплексная проблема. Для её решения мы рекомендуем:
Auto-Close и настроить MAXDOP.Соблюдение этих правил позволит сократить время ожидания окна логина с нескольких минут до нескольких секунд, обеспечивая комфортную работу пользователей в любое время суток.