Почему самопроизвольно увеличивается файл в папке 1cv8/srvinfo/Reg_1541 и как это остановить?

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

Многие системные администраторы и разработчики 1С сталкиваются с ситуацией, когда свободное место на диске сервера начинает стремительно исчезать. Виновником оказывается папка srvinfo/Reg_1541, в которой файлы с непонятными именами (GUID) разрастаются до десятков и сотен гигабайт. Особенно часто эта проблема проявляется после обновления конфигураций (например, Розница 2.3 или УНФ) на платформе 8.3.

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

Разберем структуру папки srvinfo и идентифицируем проблему

Для начала проанализируем, что именно хранится в директории C:/Program Files/1cv8/srvinfo/Reg_1541. Эта папка является "сердцем" кластера 1С. В ней находятся рабочие файлы информационных баз, сеансовые данные и индексы. Файлы и подпапки с длинными именами вида c5823d65-be9c-448b-a974-0891df205bb4 соответствуют внутренним идентификаторам (GUID) информационных баз.

Если на сервере опубликовано несколько баз, нам нужно понять, какая из них "съедает" диск. Для этого выполним следующие шаги:

  1. Перейдем в корень папки Reg_1541.
  2. Найдем текстовый файл 1cv8.lst.
  3. Откроем его любым текстовым редактором.
  4. В этом файле найдем соответствие между именами баз (как они видны в консоли администрирования) и их ID (GUID).

Теперь, когда мы знаем, к какой базе относится раздувшийся файл, мы можем перейти к анализу причин.

Выясним основную причину: механизм полнотекстового поиска (ППД)

Как показывает практика и обсуждения экспертов, в 99% случаев виновником является полнотекстовый поиск (ППД). Платформа 1С использует его для быстрого поиска данных по всем справочникам и документам. Однако в последних версиях платформы (особенно в ветках 8.3.22, 8.3.23 и ранних 8.3.24) этот механизм работает нестабильно.

Рассмотрим подробнее файл tablechanges.dat. Он предназначен для регистрации изменений в данных, которые должны быть проиндексированы. Из-за багов платформы (например, баг №10263300) система перестает очищать этот файл. Даже если данные уже проиндексированы, файл продолжает расти при каждой записи в базу данных. В некоторых случаях система может создавать огромные временные файлы индексов, которые не удаляются автоматически.

Способ 1. Очистка и перезапуск индекса ППД

Если мы столкнулись с резким ростом файлов, первым делом попробуем стандартную процедуру обслуживания индекса. Это можно сделать непосредственно в пользовательском режиме 1С (если база запускается) или через консоль.

Разберем последовательность действий:

  1. Зайдем в информационную базу под правами администратора.
  2. Перейдем в раздел Администрирование — Поддержка и обслуживание — Управление полнотекстовым поиском.
  3. Нажмем кнопку Очистить индекс. Это удалит физические файлы индекса из папки на диске.
  4. После очистки нажмем Обновить индекс.

Важное замечание: Иногда процедуру очистки приходится выполнять несколько раз, так как с первого раза блокировки файлов могут помешать полному удалению.

Способ 2. Радикальное решение — отключение ППД

Если полнотекстовый поиск не является критически важным для пользователей (а в "Рознице" его часто используют редко), лучше всего полностью отключить этот функционал. Это гарантированно остановит рост файлов.

Проанализируем шаги по отключению:

  1. В том же меню Управление полнотекстовым поиском снимем галочку Полнотекстовый поиск разрешен.
  2. Остановим службу 1C:Enterprise 8.3 Server Agent.
  3. Физически удалим содержимое папки index внутри каталога с GUID нашей базы.
  4. Запустим службу сервера.

Также важно зайти в консоль администрирования кластера и убедиться, что регламентные задания, связанные с полнотекстовым поиском (ОбновлениеИндексаППД и СлияниеИндексаППД), выключены.

Способ 3. Обновление платформы (рекомендуется)

Разработчики 1С признали наличие ошибки "бесконечного роста" файла tablechanges.dat. Начиная с версии платформы 8.3.24.1808 и в актуальных сборках 8.3.25, этот баг был исправлен. Если ваша версия платформы ниже, настоятельно рекомендуем запланировать обновление.

После обновления на исправленную версию платформы, система начнет корректно выполнять слияние фрагментов индекса и вовремя освобождать дисковое пространство. Рассмотрим, на какие версии стоит ориентироваться:

Дополнительные факторы: антивирусы и бинарные данные

Выясним, что еще может провоцировать аномальное поведение сервера. Часто процесс rphost.exe не может корректно завершить запись в файлы индекса из-за внешних блокировок.

Антивирусное ПО: Обязательно добавим папку srvinfo в список исключений антивируса. Если антивирус решит проверить файл индекса в момент его слияния (merge), 1С может "потерять" дескриптор файла и начать писать данные в новый файл, не удалив старый. Это приводит к лавинообразному заполнению диска.

Бинарные данные: В конфигурации "Розница 2.3" после обновления могут запуститься процессы обработки картинок или сканов документов. Если эти данные хранятся прямо в базе данных, ППД пытается извлечь из них текст. При наличии поврежденных файлов индексатор может уйти в бесконечный цикл, создавая гигантские временные объекты в srvinfo.

Работа с сеансовыми данными (snccntx)

Иногда раздуваются не индексы, а файлы в папке snccntx. Это сеансовые данные. Рассмотрим пример программной очистки или ограничения, если мы подозреваем утечку памяти в сеансах:

Системным администраторам рекомендуется настроить лимиты для процессов rphost в консоли администрирования кластера:

  1. Откроем свойства кластера.
  2. Установим Допустимый объем памяти (например, 80% от общего объема RAM).
  3. Установим Интервал превышения допустимого объема памяти (например, 300 секунд).

Это позволит серверу автоматически перезапускать "прожорливые" процессы, что косвенно поможет очистить временные файлы сеансовых данных.

Резюме и план действий

Подведем итог. Чтобы победить "раздувание" файлов в Reg_1541, выполним следующие действия:

  1. Идентифицируем базу через файл 1cv8.lst.
  2. Очистим индекс ППД через интерфейс 1С.
  3. Если поиск не нужен — отключим ППД навсегда.
  4. Если поиск нужен — обновим платформу до версии не ниже 8.3.24.1808.
  5. Добавим исключения в антивирус для всех рабочих каталогов 1С.

Соблюдение этих правил позволит поддерживать стабильную работу сервера и избежать внезапных остановок из-за нехватки места на диске.

← На главную