Почему файловая 1С:Предприятие 8.3 крайне медленно работает в RDP и как это исправить?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

Рано или поздно многие системные администраторы и специалисты 1С сталкиваются с парадоксальной ситуацией: файловая база данных «1С:Бухгалтерия предприятия 3.0» (или «Управление торговлей 11»), размещенная на современном производительном сервере с быстрыми SSD-накопителями, достаточным объемом оперативной памяти и мощным процессором, начинает работать крайне медленно. Самое примечательное, что тормоза наблюдаются даже тогда, когда в системе работает всего один пользователь. При этом другие ресурсоемкие приложения на сервере буквально «летают».

В этой статье мы подробно проанализируем причины этой проблемы, разберем физику процессов, происходящих внутри операционной системы Windows Server и платформы 1С:Предприятие, и пошагово реализуем комплекс мер по оптимизации, которые помогут вернуть вашей системе былую отзывчивость.

Шаг 1. Диагностика системных ресурсов и первоочередные меры

Прежде чем приступать к глубоким настройкам операционной системы, давайте проведем экспресс-диагностику самой базы данных и сервера. Нам необходимо исключить базовые ошибки логической целостности и убедиться, что проблема не вызвана повреждением таблиц БД.

Выполним следующие действия:

  1. Запустим утилиту тестирования и исправления базы данных (ТиИ). Для этого откроем базу в режиме Конфигуратора, перейдем в меню Администрирование — Тестирование и исправление. Рекомендуется выбрать пункты проверки логической и ссылочной целостности, а также реиндексацию таблиц.
  2. Выполним пересчет итогов. Зачастую зависания при формировании отчетов или проведении документов связаны с тем, что система тратит колоссальное время на расчет остатков «на лету» из-за сбитых таблиц итогов. В том же окне ТиИ выберем пункт Реструктуризация таблиц информационной базы и Пересчет итогов.
  3. Изучим поведение системы через встроенный инструментарий Windows. Откроем Диспетчер задач на сервере, перейдем на вкладку Быстродействие и запустим Монитор ресурсов. Нам нужно проанализировать показатели утилизации процессора, дисковой активности (обратите внимание на длину очереди к диску, где лежит база) и сетевых задержек в момент совершения медленных операций в 1С.

Шаг 2. Публикация файловой базы на веб-сервере (Apache или IIS)

Как показывает практика и опыт участников обсуждения, классический запуск файловой 1С в терминальной сессии (RDP) через тонкий или толстый клиент создает колоссальную нагрузку на дисковую подсистему и оперативную память сервера. Дело в том, что при стандартном запуске каждый пользовательский процесс 1cv8.exe или 1cv8c.exe монопольно открывает файл базы данных 1cv8.1CD и активно обменивается с ним блокировками через создание временных файлов 1cv8.1CL.

Мы можем кардинально решить эту проблему, переведя пользователей на работу через локальный веб-сервер (например, Apache). В этом случае схема взаимодействия меняется:

Рассмотрим по шагам процесс публикации базы на веб-сервере Apache:

  1. Скачаем и установим актуальную версию веб-сервера Apache для Windows (рекомендуется версия 2.4 x64).
  2. Запустим 1С:Предприятие в режиме Конфигуратора от имени Администратора (это критически важно для корректной записи конфигурационных файлов веб-сервера).
  3. Перейдем в меню Администрирование — Публикация на веб-сервере....
  4. В открывшемся окне укажем имя публикации (например, Accounting), выберем тип веб-сервера (Apache 2.4) и укажем каталог на диске, куда будут записаны файлы публикации.
  5. Убедимся, что установлена галочка Публиковать Web-сервисы и Публиковать HTTP-сервисы, после чего нажмем кнопку Опубликовать. При необходимости 1С предложит перезапустить службу веб-сервера — соглашаемся.
  6. На компьютерах пользователей (или в их RDP-сессиях) изменим параметры запуска информационной базы: вместо типа расположения «На данном компьютере или на компьютере в локальной сети» выберем «На веб-сервере» и укажем URL-адрес вида http://имя_сервера/Accounting.

Шаг 3. Отключение механизма балансировки ресурсов Windows (Fair Share)

Малоизвестная, но крайне коварная причина медленной работы 1С в терминальном режиме кроется в самой операционной системе Windows Server (начиная с версии 2008 R2 и выше). По умолчанию в системе включена функция Dynamic Fair Share Scheduling (DFSS).

Этот механизм призван динамически и равномерно распределять ресурсы процессора и дискового ввода-вывода между всеми активными RDP-сессиями. Как только один из пользователей запускает тяжелый отчет или проведение документов в 1С, служба Fair Share расценивает этот процесс как попытку монополизировать ресурсы сервера и принудительно «зажимает» производительность этой сессии, вызывая жуткие зависания интерфейса у этого пользователя.

Давайте отключим этот механизм через реестр Windows. Для этого создадим и применим следующий REG-файл:


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Quota System]
"EnableCpuQuota"=dword:00000000

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TSFairShare\Disk]
"EnableFairShare"=dword:00000000

После внесения изменений в реестр необходимо обязательно выполнить перезагрузку сервера, чтобы изменения вступили в силу. Это позволит операционной системе отдавать максимум ресурсов процессора и диска тому процессу 1С, который в них нуждается в данный момент.

Шаг 4. Устранение ограничений разрядности платформы

Обратим внимание на важную деталь, упомянутую в исходном обсуждении: серверная операционная система имеет разрядность x64, в то время как клиентское приложение 1С установлено в 32-битной версии (x86).

Любой 32-битный процесс в среде Windows (даже при наличии 16 ГБ или 128 ГБ физической оперативной памяти на сервере) имеет жесткое архитектурное ограничение на объем используемого адресного пространства — не более 2 ГБ (в редких конфигурациях — до 3 ГБ). Современная конфигурация «1С:Бухгалтерия 3.0» на управляемых формах с интерфейсом «Такси» чрезвычайно требовательна к оперативной памяти.

При активной работе пользователя 32-битный процесс 1cv8c.exe быстро упирается в этот лимит. В результате система начинает непрерывно сбрасывать неактивные данные из ОЗУ в файл подкачки на диске (свопинг), что сводит на нет скорость работы даже на SSD и вызывает микрофризы интерфейса. Решением является принудительный переход на 64-битный клиент 1С, который не имеет подобных ограничений и может использовать всю доступную оперативную память сервера для кэширования данных.

Шаг 5. Настройка электропитания и BIOS сервера

Файловая СУБД 1С работает преимущественно в однопоточном режиме. Это означает, что скорость выполнения большинства операций зависит не от общего количества ядер вашего процессора, а от тактовой частоты одного конкретного ядра, на котором выполняется текущая задача.

По умолчанию в Windows Server включена «Сбалансированная» схема электропитания, которая динамически снижает частоту процессора для экономии энергии. Когда пользователь нажимает кнопку в 1С, процессору требуется время (миллисекунды), чтобы поднять частоту до номинальной. В условиях постоянных коротких запросов к базе это приводит к сильным задержкам.

Для исправления ситуации выполним следующие настройки:

  1. В операционной системе перейдем в Панель управления — Электропитание и принудительно переключим схему на Высокая производительность (High Performance).
  2. При перезагрузке сервера зайдем в настройки BIOS/UEFI. Нам необходимо отключить технологии энергосбережения процессора, такие как C-States, P-States, Intel SpeedStep или AMD Cool'n'Quiet. Это заставит ядра процессора постоянно работать на своей максимальной штатной частоте (например, 3,2 ГГц), обеспечивая мгновенный отклик 1С на действия пользователя.

Шаг 6. Оптимизация регламентных заданий и полнотекстового поиска

В файловом режиме работы все фоновые и регламентные задания выполняются непосредственно в сеансах активных пользователей. По умолчанию в конфигурации БП 3.0 включено огромное количество фоновых процессов, которые запускаются автоматически и перегружают систему. Особое внимание следует уделить Полнотекстовому поиску (ППС), который непрерывно сканирует базу для индексации, создавая огромную нагрузку на диск.

Давайте отключим неиспользуемые функции непосредственно в режиме «1С:Предприятие»:

  1. Зайдем в базу под учетной записью с правами Администратора.
  2. Перейдем в раздел Администрирование — Общие настройки, развернем группу Полнотекстовый поиск данных и снимем флажок Разрешить полнотекстовый поиск. Это мгновенно снизит интенсивность записи на диск.
  3. Перейдем в раздел Администрирование — Обслуживание — Регламентные операции — Регламентные и фоновые задания. Нам нужно проанализировать список и отключить те задания, которые не требуются для оперативной работы (например, «Извлечение текста», «Сбор и отправка статистики», «Обновление классификаторов», «Загрузка курсов валют», если они не нужны каждый час).

Шаг 7. Очистка кэша 1С

При работе в терминальном режиме у каждого пользователя RDP в его профиле со временем накапливается огромный объем временных файлов и кэша метаданных 1С. Повреждение или чрезмерное разрастание этого кэша — частая причина индивидуальных зависаний интерфейса.

Рекомендуется регулярно очищать временные папки пользователей. Кэш 1С располагается по следующим путям в профиле каждого терминального пользователя:

Для профилактики вы можете настроить периодическое удаление подкаталогов с буквенно-цифровыми именами из этих папок при входе пользователя в систему или использовать параметр запуска базы /ClearCache в дополнительных параметрах запуска в окне выбора информационных баз 1С.

← На главную