Каждый системный администратор, обслуживающий терминальные серверы с файловыми базами 1С, рано или поздно сталкивается с проблемой «бутылочного горлышка» дисковой подсистемы. Типичный сценарий: утром приходят сотрудники, одновременно запускают «1С:Бухгалтерию», сервер начинает немилосердно зависать, а у пользователей на экранах появляется неприятное сообщение: «Ошибка блокировки участка файла», указывающее на временные файлы в каталоге RuntimeCacheStorage.
В этой статье мы подробно проанализируем причины возникновения этой ошибки, разберем физику процесса блокировки файлов на уровне операционной системы Windows Server и рассмотрим пошаговый комплекс мер — от простых настроек ОС до изменения архитектуры доступа к базе данных.
---
Для начала давайте разберемся, что представляет собой файл RuntimeCacheStorage. Это локальный кэш метаданных конфигурации, который платформа 1С создает для каждого отдельного пользователя в его персональном профиле по пути %LocalAppData%\1C\1Cv8\...\Config\.
Когда пользователь запускает клиентское приложение, платформа считывает конфигурацию из базы данных и компилирует кэш на диске C: сервера. В этот момент операционная система выполняет системный вызов LockFile() или LockFileEx(), чтобы заблокировать определенный участок кэш-файла для предотвращения его изменения другими процессами этого же пользователя.
В условиях утреннего «холодного» старта (когда кэша еще нет в оперативной памяти сервера) происходят следующие процессы:
E: или D:) и одновременно писать гигабайты мелких файлов кэша в профили пользователей на системном диске C:.ERROR_LOCK_VIOLATION или 0x00000021).1cv8.exe активными. Утром эти фоновые процессы продолжают удерживать монопольные блокировки на файлы в каталоге RuntimeCacheStorage, физически блокируя доступ для новых сессий.---
Прежде чем приступать к изменениям в системе, нам необходимо локализовать проблему. Давайте проведем диагностику дисковой подсистемы сервера в момент массового входа пользователей:
Если в момент запуска 1С длина очереди диска превышает значение 2.0, а время отклика (Response Time) уходит за пределы 50–100 мс, это явный признак того, что дисковая подсистема работает на пределе своих возможностей. В пиковые утренние часы очередь диска на медленных массивах HDD может подниматься до 5–10, что гарантированно приводит к таймаутам и ошибкам блокировки RuntimeCacheStorage.
---
Очень частая и грубая ошибка администрирования — позволить операционной системе автоматически распределять файл подкачки (pagefile.sys) по всем доступным дискам, включая медленный RAID-массив с базами данных 1С.
Когда Windows начинает испытывать нехватку физической оперативной памяти (или превентивно сбрасывает неактивные страницы), она задействует файл подкачки на RAID-массиве. Это создает чудовищную дополнительную нагрузку случайной записи на диски, где и так тяжело крутится файловая база данных. Рассмотрим, как правильно настроить файл подкачки:
Win + Break или введите в поиске sysdm.cpl).E: или D:), выберите вариант «Без файла подкачки» и нажмите кнопку «Задать».C: укажите размер файла подкачки вручную (выберите «Указать размер»). Задайте фиксированный размер (например, равный объему физической оперативной памяти или в 1.5 раза больше, если памяти критически мало), чтобы избежать дефрагментации файла подкачки при динамическом расширении. Нажмите «Задать» и перезагрузите сервер.---
Чтобы исключить возникновение «зависших» процессов 1cv8.exe, которые блокируют файлы кэша в профилях пользователей, настроим принудительное завершение неактивных и отключенных терминальных сессий через Редактор локальной групповой политики (GPO):
Win + R, введите gpedit.msc и нажмите Enter.---
Даже если на сервере не установлен сторонний антивирус, встроенные службы операционной системы могут мешать нормальной работе 1С, накладывая дополнительные микроблокировки на файлы конфигурации в моменты пиковой нагрузки.
Разберем, как отключить индексирование для критически важных каталогов:
C:\Users\) и каталог, в котором располагаются файловые базы 1С. Служба индексирования Windows Search постоянно сканирует измененные файлы кэша, что вызывает конфликты совместного доступа к RuntimeCacheStorage.Если на сервере установлен антивирус (например, Антивирус Касперского, Dr.Web или Защитник Windows), в список его исключений (исключения сканирования в реальном времени) необходимо обязательно добавить:
1cv8.exe, 1cv8c.exe.C:\Users\*\AppData\Local\1C\ и C:\Users\*\AppData\Roaming\1C\.*.1CD).---
Очистка кэша вручную помогает временно решить проблему, но автоматизация этого процесса сбережет нервы системного администратора. Мы можем написать простой скрипт, который будет удалять проблемные файлы кэша конфигурации при каждом входе пользователя в терминальную сессию, предотвращая появление ошибок блокировки.
Создадим BAT-файл (например, clean_cache.bat) следующего содержания:
@echo off
rem Завершаем зависшие процессы 1С текущего пользователя
taskkill /f /im 1cv8.exe /im 1cv8c.exe >nul 2>&1
rem Очищаем только временный кэш конфигурации (Config и ConfigM), сохраняя пользовательские настройки окон
for /d %%i in ("%LocalAppData%\1C\1Cv8\*") do (
if exist "%%i\Config" rmdir /s /q "%%i\Config"
if exist "%%i\ConfigM" rmdir /s /q "%%i\ConfigM"
)
Затем этот скрипт можно прописать в планировщике задач Windows с триггером «При входе в систему» (At log on) для группы «Пользователи», либо подключить его через групповые политики в качестве сценария входа (Logon Script).
---
Если на сервере работают более 3–5 пользователей, классический терминальный режим работы с файловой базой начинает неминуемо деградировать по производительности. Давайте рассмотрим альтернативный, чрезвычайно эффективный архитектурный подход — публикацию базы данных на веб-сервере.
Вместо того чтобы запускать тяжелого толстого или тонкого клиента 1С внутри RDP-сессии (где вся нагрузка по отрисовке интерфейса ложится на серверный процессор и диск C:), мы можем сделать следующее:
Почему это решает проблему блокировок?
RuntimeCacheStorage генерируются локально на компьютерах пользователей, а не на сервере. Нагрузка на системный диск C: сервера падает практически до нуля!---
Регулярные аварийные завершения работы пользователей и сбои блокировок при работе в файловом режиме могут нарушить внутреннюю логическую структуру самого файла базы данных 1Cv8.1CD. Перед проведением модернизации железа обязательно выполните профилактические работы:
C:\Program Files\1cv8\8.3.XX.XXXX\bin\). Укажите путь к файлу базы данных, установите флаг «Исправлять обнаруженные ошибки» и запустите проверку. Перед этим обязательно сделайте резервную копию файла базы!---
Если программные методы оптимизации применили, но дисковая очередь в пиковые моменты все равно остается высокой, чудес ждать не стоит — физические ограничения дисков HDD 7200 RPM преодолеть невозможно. Накопители класса WD Red или аналогичные SATA-диски имеют ограничение скорости произвольного доступа на уровне примерно 75–100 IOPS (операций ввода-вывода в секунду).
Рассмотрим оптимальную конфигурацию дисковой подсистемы для терминального сервера на 5–10 пользователей:
C:. Скорость произвольного чтения/записи у простейших SSD составляет десятки тысяч IOPS, что мгновенно убирает любые задержки при запуске приложений.Соблюдение этого комплекса мер гарантирует стабильную, быструю и безошибочную работу пользователей в файловом режиме «1С:Предприятие» без раздражающих ошибок совместного доступа к файлам.