Почему тормозит файловая база 1С при сетевом доступе через Windows XP и как организовать работу пользователей?

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

Организация совместной работы с файловой базой 1С:Предприятие 8.3 силами подручных средств — частая задача в небольших компаниях с ограниченным бюджетом. Нередко возникает идея выделить отдельный старый системный блок с установленной операционной системой Windows XP в качестве файлового хранилища (файлопомойки) и предоставить общий сетевой доступ к каталогу базы данных (файл 1Cv8.1CD).

Однако при подключении уже двух пользователей даже на относительно небольших базах (1–1.5 ГБ) система начинает демонстрировать резкое падение производительности, зависания при проведении документов и задержки интерфейса. Разберем детально, почему это происходит, с какими архитектурными ограничениями сталкивается платформа 1С и как правильно решить данную проблему.

Технические причины падения производительности Windows XP в роли файлового сервера 1С

Проанализируем физику процессов, происходящих при совместной работе пользователей с файловой базой 1С по сети:

  1. Сброс оппортунистических блокировок (OpLocks) в протоколе SMB 1.0. В Windows XP используется устаревший сетевой протокол SMB 1.0. Когда к файлу базы 1Cv8.1CD подключен только один клиент, операционная система задействует механизм OpLocks, позволяя клиентскому компьютеру кэшировать данные и структуры в локальной оперативной памяти. Как только второй пользователь открывает базу, сервер немедленно отзывает (сбрасывает) блокировки OpLocks. Начиная с этого момента, любое чтение, запись и сверка блокировок выполняются строго по сети в реальном времени. Это вызывает лавинообразный рост сетевых задержек (latency) даже при слабой загрузке канала.
  2. Блокировки страниц данных на уровне файловой системы. В файловом режиме платформа 1С выполняет всю логику СУБД на стороне клиентских рабочих станций. Клиенты непрерывно отправляют сотни и тысячи запросов на блокировку диапазонов байтов (byte-range locking) внутри одного файла 1Cv8.1CD. Сетевой стек клиентской Windows XP не оптимизирован под обработку такого интенсивного параллельного потока файловых локов, в результате чего сеансы пользователей подолгу простаивают в ожидании освобождения страниц.
  3. Ограничения буферов рабочего стола и сетевого пула Windows XP. По умолчанию Windows XP сконфигурирована для работы одного пользователя в качестве настольной рабочей станции. Пул дескрипторов ввода-вывода и системный буфер для сетевых операций имеют минимальный размер, что приводит к быстрому исчерпанию ресурсов драйвера LanmanServer.

Ограничения публикации баз на Обычных формах через веб-сервер

Одним из стандартных способов ухода от сетевых файловых блокировок является публикация базы на веб-сервере (Apache или IIS). Однако этот метод подходит исключительно для конфигураций на базе Управляемых форм. Если в организации используется конфигурация на Обычных формах (например, «Бухгалтерия государственного учреждения» редакции 1.0), веб-клиент и тонкий клиент не смогут отобразить интерфейс: при подключении через браузер после успешной авторизации пользователь увидит абсолютно пустой рабочий стол.

Для конфигураций на обычных формах веб-сервер в файловом варианте не применим без глобальной переработки всех форм в управляемый режим или перехода на современную редакцию конфигурации (например, БГУ 2.0).

Способы оптимизации работы текущей файловой схемы

Если замена операционной системы или покупка специализированных лицензий в текущий момент невозможна, рассмотрим шаги по выжиманию максимальной производительности из связки Windows XP и Windows 7:

  1. Тонкая настройка службы сервера в реестре Windows XP. Переведем драйвер LanmanServer в режим выделенного сервера файлов. Для этого в системном реестре по пути HKLM\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters зададим параметры:

    Установим значение Size (тип DWORD) равным 3 (максимальная производительность файлового сервера).

    Увеличим параметры MaxMpxCt и MaxWorkItems для расширения лимита параллельных мультиплексированных сетевых запросов.

  2. Настройка исключений антивирусного ПО. Сканирование файлов 1С на лету во время сетевых блокировок критически снижает скорость. Добавим в исключения сигнатурного и поведенческого мониторинга на всех машинах:

    Расширения файлов 1С: *.1CD, *.1CL, *.cgr, *.pfl, *.tlg.

    Каталог сетевой папки с базой данных и локальные папки временных файлов (%TEMP%, %APPDATA%\1C\1Cv8).

  3. Оптимизация параметров сетевых адаптеров. В диспетчере устройств в свойствах сетевых карт отключим энергосберегающие режимы (Green Ethernet, Energy Efficient Ethernet). На машине с Windows XP отключим разгрузку контрольных сумм и больших пакетов (Large Send Offload / LSO, TCP Checksum Offload), так как ошибки старых драйверов на мелких пакетах блокировок вызывают постоянные микрозадержки.

Альтернативные и правильные архитектурные решения

Разберем варианты модернизации инфраструктуры, которые гарантируют стабильную и безопасную работу с базой данных:

  1. Перенос базы данных на ПК с Windows 7 (локальное размещение для одного из пользователей). Вместо использования третьей слабой машины под Windows XP перенесем базу данных на рабочий компьютер одного из пользователей под управлением Windows 7. В этом случае основной пользователь работает с базой локально без каких-либо сетевых накладных расходов SMB, а второй пользователь подключается по локальной сети с гигабитным соединением. Это сразу вдвое снижает нагрузку на сетевую подсистему и исключает взаимное ожидание по протоколу SMB 1.0.
  2. Использование терминального сервера на базе Linux (RDP). Поскольку использование патчей многопользовательского терминала на клиентских версиях Windows является прямым нарушением лицензионного соглашения, легальной и бесплатной альтернативой выступает установка дистрибутива Linux (например, Ubuntu Server с окружением xfce и пакетом xrdp). Пользователи подключаются к серверу через стандартный удаленный рабочий стол Windows (RDP), а платформа 1С работает с базой данных локально на сервере на максимальной скорости дисковой подсистемы.
  3. Переход на клиент-серверный вариант (СУБД PostgreSQL). Для полного устранения проблем с разрушением файловых баз при сбоях питания или обрывах сети рекомендуется использовать связку 1С:Предприятие с бесплатной СУБД PostgreSQL. В клиент-серверном режиме все блокировки и обработку данных выполняет СУБД, а по сети передаются только готовые выборки, что исключает сетевые тормоза файловой системы.

Важное предостережение: работа с файловой базой по сети без терминального доступа несет высокий риск повреждения структуры базы (ошибка Файл базы данных поврежден или обнуление размера до 4 КБ) при внезапном отключении электропитания или сетевых сбоях на клиентских машинах. Обязательно настройте регулярное ежедневное резервное копирование каталога базы данных.

← На главную