Многие небольшие компании используют файловый вариант работы с базами данных 1С:Предприятие, подключая пользователей через общую сетевую папку (протокол SMB). Рано или поздно системные администраторы сталкиваются с неприятным симптомом: пользователи в сети внезапно вылетают из программы, а на главном компьютере («сервере») в диспетчере задач зависает процесс 1cv8.exe. Этот процесс невозможно завершить даже с правами администратора (система выдает ошибку «Отказано в доступе»), и единственным решением становится полная перезагрузка компьютера-хоста.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем внутренние механизмы операционной системы Windows и сети, а также рассмотрим комплекс мер для эффективной борьбы с зависаниями и аварийными завершениями работы 1С.
Проанализируем ситуацию, когда процесс 1cv8.exe невозможно закрыть стандартными средствами операционной системы. Почему это происходит? В Windows процесс не может быть завершен, если один из его потоков завис внутри системного вызова в режиме ядра (драйвера устройства или сетевого редиректора). Это состояние называется uninterruptible sleep (непрерываемый сон).
Когда база данных 1С запущена в файловом режиме через сетевую папку, клиентское приложение на удаленном компьютере постоянно осуществляет чтение и запись в один общий монолитный файл 1Cv8.1CD. Общение происходит через драйвер сетевой файловой системы Windows (системные компоненты mrxsmb.sys и rdbss.sys). Если в локальной сети происходит даже кратковременный микросбой, задержка пакета или потеря связи, сетевой редиректор отправляет запрос на блокировку файла и бесконечно ожидает ответа от удаленной системы. Пока этот запрос активен на уровне ядра ОС, процесс 1С блокируется намертво. Операционная система не может принудительно завершить его, чтобы не нарушить целостность файловой подсистемы ядра.
Разберем по шагам, как современные протоколы сетевого доступа Windows (SMBv2 и SMBv3) влияют на работу файловой базы. По умолчанию в Windows включены так называемые оппортунистические блокировки (Oplocks) и агрессивное кэширование метаданных. Этот механизм призван ускорить копирование обычных файлов по сети, однако для баз данных он крайне опасен.
Когда один из пользователей выполняет транзакцию в 1С, сетевой клиент пытается закэшировать часть файла базы данных локально. При микроразрыве связи механизм Oplocks удерживает кэш файла 1Cv8.1CD на клиентской машине, в то время как на компьютере-хосте файл остается заблокированным «призрачной» сессией. В результате все остальные пользователи мгновенно теряют доступ к базе и аварийно завершают работу, а на главном компьютере зависает дескриптор файла.
Чтобы минимизировать негативное влияние кэширования SMB, мы рекомендуем отключить кэширование сетевых папок на уровне реестра всех клиентских компьютеров. Для этого выполним следующие действия:
regedit.exe).HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkstation\Parameters0:
DirectoryCacheLifetimeFileInfoCacheLifetimeFileNotFoundCacheLifetimeЭти параметры заставят сетевой редиректор Windows всегда напрямую обращаться к хосту за актуальным состоянием файлов базы данных 1С, исключая долгое удержание зависших дескрипторов.
Рассмотрим еще одну частую причину внезапных сетевых сбоев — встроенную службу «Автономные файлы» в Windows. Если эта функция включена для сетевой папки с базой данных 1С, операционная система в фоновом режиме пытается синхронизировать тяжелый файл базы данных на локальный диск клиента.
В момент проведения фоновой синхронизации служба полностью блокирует доступ к файлу 1Cv8.1CD для записи. Другие пользователи, пытающиеся в этот момент провести документ или открыть отчет, получают критический сбой сетевого доступа и вылетают. Мы настоятельно рекомендуем полностью отключить службу «Автономные файлы» на всех компьютерах сети через Панель управления Windows (раздел «Центр синхронизации» — «Управление автономными файлами»).
Выясним, почему вылеты пользователей часто происходят «без видимых причин» во время простоя или в начале рабочего дня. На современных компьютерах в настройках сетевых адаптеров по умолчанию включены функции энергосбережения.
Если пользователь отлучился от рабочего места на 10–15 минут, операционная система может перевести сетевой адаптер в режим пониженного энергопотребления или временно приостановить его работу. Этого кратковременного отключения сетевого моста достаточно, чтобы сессия SMB рухнула. При возвращении пользователя программа пытается обратиться к открытому файлу базы данных, получает сетевую ошибку и завершается аварийно, оставляя заблокированный процесс на хосте.
Для решения этой проблемы настроим сетевые карты на компьютерах пользователей и на главном ПК:
Разрешить отключение этого устройства для экономии энергии.Disabled (Выключено) параметры:
Green Ethernet (Зеленый Ethernet)Energy Efficient Ethernet (Энергоэффективный Ethernet)Power Saving Mode (Режим энергосбережения)При многопользовательской работе в файловой 1С непрерывно создаются, перезаписываются и удаляются служебные файлы блокировок с расширением *.1CL, временные файлы *.tmp, а также файлы журнала регистрации (1Cv8.lgd или 1Cv8.lgf). Если антивирусное программное обеспечение на хосте или клиенте решит проверить один из этих файлов в момент активной транзакции, доступ к файлу заблокируется на долю секунды.
Для платформы 1С:Предприятие монопольный захват служебного файла сторонним процессом приводит к критической ошибке СУБД. Поэтому обязательно добавим в список исключений антивируса на всех ПК:
1cv8.exe и 1cv8c.exe.%TEMP%).Рассмотрим самый надежный, проверенный практикой и при этом абсолютно бесплатный способ организации совместной работы в файловой 1С без приобретения дорогостоящей серверной лицензии. Речь идет о публикации базы данных на веб-сервере (например, бесплатном Apache 2.4 или встроенном в Windows IIS).
При использовании веб-сервера архитектура взаимодействия кардинально меняется:
1Cv8.1CD обращается только один локальный процесс — служба веб-сервера. Соответственно, сетевые блокировки файлов (SMB) исключаются как класс.Перевод файловой базы на веб-сервер решает проблему сетевой нестабильности раз и навсегда, обеспечивая высокий уровень безопасности данных и комфортную работу пользователей.