Что будет, если завершить процесс rmngr.exe при работающих пользователях, и как решить проблему переполнения диска?

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

В процессе администрирования серверов «1С:Предприятие» нередко возникают аварийные ситуации, когда системный диск переполняется, а свободное место стремительно тает. Нередко источником проблемы становится папка 1Cv8Log в каталоге srvinfo, содержащая файлы журнала регистрации. Попытка экстренно остановить процесс rmngr.exe через диспетчер задач может повлечь за собой серьезные сбои в работе пользователей. Разберем детально, за что отвечает данный процесс, к чему приведет его завершение и как правильно освободить дисковое пространство без риска нарушения целостности данных.

Что произойдет при принудительном завершении процесса rmngr.exe

Процесс rmngr.exe представляет собой менеджер кластера серверов 1С. Он координирует взаимодействие между клиентскими приложениями и рабочими процессами (rphost), управляет блокировками данных, сеансами, фоновыми заданиями и транзакциями. Завершение этого процесса на работающем сервере влечет за собой следующие последствия:

  1. Мгновенный разрыв соединений. Все подключенные пользователи получат ошибку потери связи с сервером. Несохраненные данные в формах документов и справочников будут утеряны.
  2. Откат незавершенных транзакций. Любые операции записи или проведения документов, выполнявшиеся в момент убийства процесса, будут аварийно прерваны и откатаны на уровне СУБД.
  3. Аварийная остановка регламентных процедур. Фоновые задания, обмен данными, расчет себестоимости или закрытие месяца прервутся с ошибкой, что может потребовать их повторного ручного запуска.
  4. Автоматический перезапуск менеджера кластера. Главный агент кластера (ragent.exe) обнаружит падение дочернего процесса и запустит новый экземпляр rmngr.exe. Однако пользователям все равно придется заново проходить авторизацию и открывать свои рабочие места.

Таким образом, аварийно завершать процесс rmngr.exe при наличии работающих пользователей крайне не рекомендуется, за исключением случаев полного зависания кластера во внерабочее время.

Почему каталог 1Cv8Log продолжает расти при отключенном журнале

Если в настройках базы отключена запись событий в журнал регистрации, но папка с GUID базы вида 53b34bd3-8e41-430f-8ddb-1dccc2f59b11\1Cv8Log продолжает увеличиваться, проанализируем следующие причины:

  1. Несоответствие идентификатора базы данных. В каталоге srvinfo каждой информационной базе соответствует уникальный идентификатор GUID. Соответствие имен баз их идентификаторам хранится в конфигурационном файле 1CV8Reg.lst. Нередко отключение логирования производится в тестовой копии, тогда как рост файлов продолжается в рабочей базе.
  2. Особенности формата базы данных журнала (SQLite). Начиная с платформы 8.3.5, журнал регистрации по умолчанию ведется в формате файла базы данных SQLite (1Cv8.lgd). При удалении записей или программном отключении журналирования физический размер файла на диске не уменьшается автоматически. Свободные страницы помечаются как доступные для повторной записи, но операционная система видит прежний объем. Кроме того, во время активных транзакций могут временно расти файлы журнала упреждающей записи с расширениями -wal и -shm.
  3. Сброс буфера событий из оперативной памяти. Накопленные рабочими процессами события перед фактическим отключением журналирования не исчезают, а постепенно сбрасываются на жесткий диск из буфера обмена.

Способы экстренного освобождения места на диске

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

Использование символических ссылок (Junction) без остановки служб надолго

Это самый быстрый способ переместить «тяжелую» папку логов на другой диск, где есть свободное пространство, не меняя глобальные настройки кластера. Разберем по шагам:

  1. Предупредим пользователей и кратковременно остановим службу Агент сервера 1С:Предприятия в оснастке services.msc.
  2. Найдем проблемный каталог, например: C:\Program Files\1cv8\srvinfo\reg_1541\53b34bd3-8e41-430f-8ddb-1dccc2f59b11\1Cv8Log
  3. Переместим всю папку 1Cv8Log на другой диск (например, в каталог D:\1C_Logs\53b34bd3-8e41-430f-8ddb-1dccc2f59b11\1Cv8Log).
  4. Запустим командную строку от имени администратора и создадим символическую ссылку уровня каталога с помощью команды mklink:

mklink /j "C:\Program Files\1cv8\srvinfo\reg_1541\53b34bd3-8e41-430f-8ddb-1dccc2f59b11\1Cv8Log" "D:\1C_Logs\53b34bd3-8e41-430f-8ddb-1dccc2f59b11\1Cv8Log"

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

Штатное сокращение журнала регистрации

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


// Определим границу хранения: удаляем события старше 30 дней
ДатаОчистки = НачалоДня(ТекущаяДатаСеанса() - 30 * 86400);

// Инициализируем фильтр для очистки
ПараметрыОтбора = Новый Структура;

// Выполняем удаление старых записей
СократитьЖурналРегистрации(ДатаОчистки, ПараметрыОтбора);

Важно: При использовании формата SQLite (файл 1Cv8.lgd) после выполнения метода СократитьЖурналРегистрации() место на диске освободится только внутри структуры самого файла. Чтобы сжать файл физически, необходимо во внерабочее время выполнить команду вакуумирования базы SQLite (с помощью внешней утилиты sqlite3 командой VACUUM;) либо перевести журнал в классический текстовый формат, где удаление старых файлов .lgp сразу высвобождает дисковое пространство.

Перенос всего каталога данных кластера (srvinfo)

Если диск переполняется регулярно, наиболее правильным решением будет перенос всего каталога srvinfo на отдельный производительный накопитель. Разберем порядок действий:

  1. Остановим службу Агент сервера 1С:Предприятия.
  2. Скопируем все содержимое текущего каталога srvinfo на новый диск, например в D:\1C_Server_Data\srvinfo.
  3. Откроем редактор реестра regedit и перейдем в ветку службы: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent...
  4. Найдем параметр ImagePath и скорректируем значение ключа -d, указав новый путь к каталогу: -d "D:\1C_Server_Data\srvinfo".
  5. Запустим службу сервера 1С и убедимся в корректном старте процессов ragent.exe, rmngr.exe и rphost.exe.
← На главную