Каждый системный администратор и специалист 1С рано или поздно сталкивается с проблемой, когда некогда быстро летавшая база 1С начинает медленно «разворачиваться». Особенно остро эта проблема проявляется в файловом варианте работы на терминальном сервере, когда пользователи жалуются на долгое ожидание (от 15 до 40 секунд) до появления окна выбора пользователя или запуска самого интерфейса «Предприятия».
В этой статье мы подробно разберем, почему файловая 1С (на примере конфигурации «1С:Бухгалтерия предприятия 3.0») может долго запускаться, и рассмотрим пошаговые методы оптимизации сервера и самой платформы, которые помогут вернуть былую скорость работы без покупки нового оборудования.
По умолчанию в операционных системах Windows Server установлена «Сбалансированная» схема электропитания. Это приводит к тому, что процессор сервера постоянно снижает свою тактовую частоту в моменты простоя и «паркует» неиспользуемые ядра. Для файловой 1С это критично: запуск платформы требует резкого, кратковременного всплеска вычислительной мощности (так называемый single-thread burst). Из-за микрозадержек при переходе процессора из энергосберегающего состояния в режим максимальной производительности время запуска платформы увеличивается в несколько раз.
Давайте переключим схему питания сервера в режим максимальной производительности:
powercfg /setactive SCHEME_MIN
Этот простой шаг позволяет поднять частоту процессора до номинальной (и выше, в режиме Turbo Boost) на постоянной основе, что моментально ускоряет компиляцию модулей 1С при старте.
При запуске платформа 1С по умолчанию пытается определить тип доступной лицензии. Если на сервере используются программные лицензии (пин-коды), но в настройках запуска базы не отключен поиск аппаратных ключей, платформа тратит от 3 до 7 секунд на сканирование USB-портов и широковещательные запросы в локальную сеть в поисках менеджера лицензий HASP.
Чтобы исключить эти задержки, выполним следующие действия:
/UseHasp- (минус на конце отключает поиск USB-ключа).После этого платформа будет сразу обращаться к файлам программных лицензий (файлы с расширением *.lic), что сэкономит ценные секунды при каждом запуске.
В операционных системах Windows Server по умолчанию активна служба динамического распределения ресурсов — Dynamic Fair Share Scheduling (DFSS). Она призвана обеспечивать равное распределение процессорного времени, дискового ввода-вывода (I/O) и сетевой активности между всеми активными RDP-сессиями.
Когда один из пользователей запускает тяжелую файловую базу 1С, процесс 1cv8.exe начинает активно читать гигабайтный файл базы данных 1cv8.1CD и кэшировать данные. Служба DFSS расценивает это как попытку монополизации дисковой системы и искусственно занижает приоритет дисковых операций для данной сессии. В итоге запуск базы превращается в мучение.
Для оптимизации работы файловых баз 1С в терминальном окружении эту службу рекомендуется отключить через системный реестр:
regedit от имени администратора.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk.EnableFairShare и изменим его значение на 0.HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Cpu (при ее наличии) или HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System.EnableCpuQuota в значение 0.Часто на серверах «из коробки» работает встроенный антивирус Windows Defender. Поскольку файловая база данных 1С представляет собой один огромный файл 1cv8.1CD, любое обращение к нему со стороны пользователей вызывает у антивируса желание проверить этот файл на наличие угроз. При работе 10 пользователей файл постоянно перечитывается, из-за чего дисковая подсистема встает в очередь (Disk Queue Length возрастает до критических значений).
Нам необходимо добавить в исключения антивируса все рабочие каталоги и процессы 1С. Перейдем в настройки Защитника Windows и добавим в список исключений:
.1cd, .1cl, .cdn, .log, .pf.D:\1C_Bases\).C:\Program Files\1cv8\ и C:\Program Files (x86)\1cv8\.%localappdata%\1C\ и %appdata%\1C\.1cv8.exe, 1cv8c.exe, 1cv8s.exe.При аварийных завершениях работы 1С (например, при отключении сессий пользователей по таймауту или сбоях конфигурации) платформа генерирует файлы дампов ошибок с расширением *.mdmp. При каждом новом старте стартер 1С (процесс 1cv8s.exe) пытается просканировать системные папки дампов на предмет неотправленных отчетов об ошибках.
Если в этих папках накопились тысячи мелких файлов, запуск «зависает» еще до появления окна авторизации. Проверим и вручную очистим следующие папки на сервере:
C:\Program Files\1cv8\common\dumps\C:\Users\<Имя_Пользователя>\AppData\Local\1C\1Cv8\dumps\Для автоматизации этого процесса можно настроить простой bat-скрипт в планировщике задач Windows, который будет периодически очищать данные каталоги.
Особенность файлового режима работы 1С заключается в том, что все фоновые и регламентные задания выполняются непосредственно в сеансе первого подключившегося пользователя. Когда первый бухгалтер заходит в базу утром, на его компьютер (или в его RDP-сессию) обрушивается шквал задач: обновление индекса полнотекстового поиска, загрузка курсов валют, проверка контрагентов, извлечение текстов и классификаторов.
Давайте проанализируем список регламентных заданий и отключим все ненужные:
Особенно сильно дисковую подсистему нагружает «Полнотекстовый поиск». Если пользователи не пользуются глобальным поиском по всей базе, эту функцию можно полностью отключить в настройках (раздел Администрирование — Общая настройка — Полнотекстовый поиск).
Современная «1С:Бухгалтерия 3.0» тесно интегрирована с государственными сервисами, ЭДО и системами маркировки. Для обеспечения безопасности платформа при старте инициализирует криптографические модули (например, КриптоПро CSP) и пытается проверить списки отзывов сертификатов (CRL) через интернет.
Если сервер терминалов находится за закрытым файрволом или доступ в интернет ограничен, запросы проверки зависают по таймауту (до 15 секунд на каждый запрос). Чтобы решить эту проблему, выполним тонкую настройку криптопровайдера на сервере, отключив обязательную онлайн-проверку отзывов сертификатов в свойствах обозревателя Windows (вкладка Дополнительно, раздел Безопасность — снять галочки с пунктов, связанных с проверкой отзывов сертификатов серверов и издателей).
Если после выполнения всех вышеперечисленных шагов база 1С по-прежнему запускается медленнее, чем хотелось бы, нам необходимо точно локализовать проблему. Для этого воспользуемся профессиональным инструментом — бесплатной утилитой Process Monitor (ProcMon) от Microsoft Sysinternals.
Разберем по шагам, как выявить виновника зависания:
ProcMon.exe от имени администратора на терминальном сервере.Ctrl + L для открытия окна фильтров.Process Name is 1cv8.exe (а также для процесса 1cv8s.exe) и нажмем Add, затем Apply.Внимательно проанализировав строки с наибольшим значением Duration, мы сможем увидеть, на чем именно спотыкается платформа. Это могут быть задержки чтения конфигурационных файлов из сетевой папки, долгие попытки обращения к заблокированным веткам реестра или ожидание ответов от недоступных IP-адресов.
Регулярное проведение этих профилактических мер позволит поддерживать высокую производительность файловых баз 1С даже на морально устаревшем серверном оборудовании, обеспечивая комфортную работу пользователей без зависаний интерфейса.