Почему 1С съедает все место на диске C ночью и как это исправить

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

Ситуация, когда сервер 1С за ночь поглощает десятки гигабайт дискового пространства (вплоть до 70 ГБ и выше), является критической для стабильной работы системы. Особенно часто это проявляется в конфигурации 1С:Документооборот. Переполнение диска C: приводит к остановке служб, невозможности входа пользователей и потенциальному повреждению баз данных. В этой статье мы подробно разберем, какие именно механизмы вызывают такой аномальный рост «кеша» и как настроить систему, чтобы исключить подобные инциденты.

Выясняем причину: где именно растут файлы?

Прежде чем приступать к лечению, нам необходимо точно диагностировать «очаг возгорания». Проанализируем содержимое системного диска в момент пиковой нагрузки. Как правило, место исчезает в одной из трех локаций:

  1. Временные папки пользователя: C:\Users\Имя_Пользователя_1С\AppData\Local\Temp.
  2. Системная папка временных файлов: C:\Windows\Temp.
  3. Каталог данных сервера 1С: папка srvinfo (обычно в C:\Program Files\1cv8\srvinfo), а именно вложенные папки вида reg_XXXX\snacc или reg_XXXX\vrs-cache.

Рассмотрим подробнее каждый из механизмов, запускающих этот процесс.

Причина №1. Полнотекстовый поиск (ППС)

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

Проанализируем ситуацию: если в течение дня в базу вносится много изменений, система накапливает «порции» индекса. Ночью запускается процесс слияния (merging), который может временно требовать объема диска, в несколько раз превышающего размер самого индекса. Если процесс прерывается из-за нехватки места, временные файлы могут не удалиться, и на следующую ночь ситуация повторится.

Что мы можем сделать:

Причина №2. Специфика «1С:Документооборота» — Дескрипторы доступа

Конфигурация 1С:Документооборот (ДО) имеет уникальный и крайне ресурсоемкий механизм расчета прав — дескрипторы доступа. Если в системе меняется организационная структура или правила доступа, запускается фоновое обновление прав.

Разберем, почему это занимает 70 ГБ. При расчете прав система строит огромные временные таблицы. Сервер 1С, чтобы не переполнять оперативную память, выгружает эти таблицы на диск в папку snacc (Session Data Cache). Если у вас миллионы связей между документами и пользователями, размер этих временных файлов может быть колоссальным.

Как лечить:

Причина №3. Обработка файлов и распознавание (OCR)

В «Документообороте» часто включено автоматическое распознавание изображений (OCR). Ночью система может начать обрабатывать пачку тяжелых PDF-сканов. Библиотеки распознавания часто создают несжатые временные копии каждой страницы в системной папке TEMP.

Проанализируем ситуацию: если пользователь загрузил многостраничный PDF размером 500 МБ, при распознавании он может развернуться в 5-10 ГБ временных данных в растровом формате. Несколько таких параллельных процессов легко забивают диск C:.

Причина №4. Рост TempDB в MS SQL Server

Не всегда виноват именно кеш 1С. Посмотрим на базу данных tempdb системного SQL-сервера. Тяжелые ночные запросы (например, формирование глобальных отчетов или удаление помеченных объектов) заставляют SQL Server активно использовать tempdb. Если он настроен на автоматическое расширение и расположен на диске C:, это приведет к его переполнению.

Решение: Обязательно перенесите файлы tempdb на отдельный быстрый диск (например, D: или E:).

Радикальное решение: Перенос временных файлов сервера 1С

Если мы не можем быстро оптимизировать код базы, нам нужно обезопасить системный диск C:. Мы можем заставить службу 1С использовать другой диск для всех своих временных нужд.

Разберем по шагам, как это сделать через параметры запуска службы:

  1. Откройте редактор реестра regedit.
  2. Перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3... (название зависит от вашей версии).
  3. Найдите параметр ImagePath.
  4. Добавьте в конец строки запуска параметр -d "D:\1C_Data", где D:\1C_Data — путь к новой папке на другом диске.

Пример модифицированной строки запуска:


"C:\Program Files\1cv8\8.3.XX.XXXX\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "D:\1C_Data"

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

Дополнительные рекомендации

Проанализируем еще несколько факторов, которые могут влиять на дисковое пространство:

Таким образом, мы выяснили, что основными виновниками являются snacc-файлы (результат работы с правами в ДО) и временные таблицы SQL. Перенос рабочих каталогов 1С и SQL на отдельный диск — это «золотой стандарт» администрирования, который позволит вашему серверу не падать даже при аномальных нагрузках.

← На главную