Проблема стремительного роста папки srvinfo знакома многим администраторам серверов «1С:Предприятие 8.3». Ситуация, когда каталог начинает поглощать по 0.5–1 Гб в сутки, может быстро привести к дефициту свободного места на диске и замедлению работы всей системы. В данной статье мы детально разберем, какие именно данные занимают место в srvinfo, почему стандартное сокращение журнала не всегда помогает и как эффективно очистить это пространство.
Прежде чем приступать к очистке, нам необходимо выяснить, какая именно информационная база (ИБ) генерирует такой объем данных. Структура srvinfo такова, что внутри папки reg_XXXX (где XXXX — порт кластера, например 1541) находятся подпапки с именами в формате GUID. Каждая такая папка соответствует определенной базе 1С.
Для идентификации базы проанализируем ситуацию по шагам:
ibases.v8i (он находится в профиле пользователя или в папке с настройками списка баз) и найдем там строку ID=название_вашей_папки. Рядом будет указано понятное имя базы.Начиная с версии 8.3, 1С по умолчанию использует новый формат журнала регистрации — единый файл 1Cv8.lgd, который по сути является базой данных SQLite. Особенность этой СУБД в том, что при удалении записей (сокращении журнала) физический размер файла на диске не уменьшается автоматически. Свободное место просто помечается как доступное для новых записей внутри файла.
Рассмотрим способы борьбы с разрастанием 1Cv8.lgd:
Метод «Vacuum» (сжатие файла базы данных)
Для того чтобы вернуть операционной системе пустое место внутри файла .lgd, необходимо выполнить команду VACUUM. Проанализируем, как это сделать:
rphost.
sqlite3.exe "C:\Path\To\Your\srvinfo\reg_1541\GUID\1Cv8.lgd" "VACUUM;"
После завершения операции размер файла должен существенно уменьшиться, если ранее в Конфигураторе производилось удаление старых записей.
Переход на старый формат журнала
Если новый формат вызывает постоянные трудности, можно вернуться к старому формату (набор файлов .elf). Разберем преимущества: старый формат разбивает журнал на части (по дням или месяцам), что позволяет просто удалять или архивировать старые файлы физически. Для перехода в конфигураторе выберем: Администрирование — Настройка журнала регистрации — Формат журнала.
Второй по частоте причиной роста srvinfo является индекс полнотекстового поиска. Он хранится в подпапке index внутри папки с GUID базы. В крупных базах размер индекса может достигать сотен гигабайт.
Выясним, как оптимизировать этот объем:
index проблемной базы и удалим ее содержимое. После запуска сервера и включения ПП индекс пересоберется заново, занимая минимально необходимый объем.Посмотрим на другие «скрытые» папки, которые могут накапливать мусор:
srvinfo или в папках баз создаются дампы памяти. Каждый такой файл может весить 1–2 Гб. Проанализируем наличие папки dumps и очистим её.Проанализируем ситуацию, когда место съедается крайне быстро (гигабайты в час). Это верный признак включенного Технологического журнала (ТЖ). Проверим наличие файла конфигурации логов:
bin\conf (в каталоге установки 1С).logcfg.xml.location). Если папка логов находится внутри srvinfo, это и есть причина роста. Рекомендуется либо выключить ТЖ, либо настроить автоматическое удаление файлов логов старше 1-2 дней.Если объем данных (особенно Журнала регистрации) объективно необходим для работы и его нельзя уменьшить, рассмотрим вариант переноса srvinfo на другой, более емкий диск (например, с SSD на HDD большой емкости). Рассмотрим, как изменить путь к данным сервера:
-d "C:\Program Files\1cv8\srvinfo".-d "D:\1C_Data\srvinfo".Важно: Перенос srvinfo на медленный HDD может снизить скорость формирования отчетов по журналу регистрации и замедлить полнотекстовый поиск, но на общую скорость проведения документов в базе это влияет незначительно.
Для предотвращения повторения проблемы мы рекомендуем:
.lgd, настроить скрипт на языке 1С или Python, который будет останавливать сервер раз в неделю/месяц и выполнять VACUUM.Пример кода для программного сокращения журнала (для запуска во внешнем скрипте):
КонецПериода = ТекущаяДата() - (60 * 60 * 24 * 30); // Удаляем записи старше 30 дней
УдалитьЗаписиЖурналаРегистрации(КонецПериода);
Следуя этим инструкциям, вы сможете держать объем серверных данных под контролем и обеспечить стабильную работу системы.