При работе с платформой 1С:Предприятие 8.3 пользователи и системные администраторы часто сталкиваются с проблемами производительности, связанными с журналом регистрации, который по умолчанию может храниться в формате SQLite (файл .lgd). Этот файл может значительно разрастаться, вызывая замедление работы системы и блокировки со стороны различных процессов, таких как rmngr.exe. В данной статье мы подробно рассмотрим, как выполнить сокращение (vacuum) такого файла, а также предложим более эффективные подходы к управлению журналом регистрации для повышения общей производительности системы.
Для успешного выполнения операций с файлом журнала регистрации, таких как его сокращение, крайне важно убедиться, что он не используется никакими активными процессами. Часто возникает вопрос о том, какие службы 1С:Предприятия необходимо остановить. Разберем эту ситуацию подробнее.
Агент сервера 1С:Предприятие 8.3 (обычно 32-битная версия)Агент сервера 1С:Предприятие 8.3 (x86-64) (64-битная версия). Для управления этими компонентами удобно использовать Панель Управления Сервисами и Компонентами (ПУСК).Эти службы представляют собой различные версии агента сервера 1С (32-битную и 64-битную соответственно). Хотя они могут работать на одной 64-битной операционной системе, обслуживая разные версии платформы 1С или информационные базы, они не являются полностью независимыми в контексте доступа к файлам сервера. Для обеспечения монопольного доступа к файлам сервера 1С (включая файл .lgd) перед выполнением любых операций по обслуживанию мы настоятельно рекомендуем остановить обе службы.
rmngr.exe: Вы также можете заметить, что файл .lgd оказывается занятым не службами Агента, а процессом rmngr.exe (менеджером кластера серверов 1С:Предприятия). Этот процесс активно работает с журналом регистрации, особенно в высоконагруженных системах. Интенсивное чтение журнала регистраций со стороны rmngr.exe часто приводит к блокировкам файла .lgd, росту нагрузки на процессор и общим замедлениям. Таким образом, помимо останова служб Агента, необходимо также убедиться, что процесс rmngr.exe не удерживает файл. После останова служб Агента, rmngr.exe также должен завершить свою работу.Важно: Перед выполнением любых операций, связанных с остановкой служб или удалением файлов, всегда создавайте резервные копии информационной базы и связанных с ней файлов.
vacuum) в SQLiteЕсли вы все же решили использовать формат SQLite для журнала регистрации и хотите сократить его размер, вы можете выполнить операцию vacuum. Эта операция перестраивает базу данных, очищая неиспользуемое пространство и уменьшая размер файла. Разберем шаги по выполнению этой операции.
.lgd необходимо остановить обе службы Агент сервера 1С:Предприятие 8.3 и Агент сервера 1С:Предприятие 8.3 (x86-64). Убедитесь, что после этого процесс rmngr.exe также завершил свою работу.sqlite3.exe: Для выполнения операции vacuum вам понадобится консольная утилита sqlite3.exe. Ее можно скачать с официального сайта SQLite или найти в составе некоторых программных продуктов, использующих SQLite.vacuum: Откройте командную строку с правами администратора и перейдите в каталог, где находится утилита sqlite3.exe. Затем выполните следующую команду, указав полный путь к вашему файлу 1Cv8.lgd:
sqlite3.exe C:\<путь_к_файлу>\1Cv8.lgd vacuum
Замените C:\<путь_к_файлу>\1Cv8.lgd на фактический путь к вашему файлу журнала регистрации. Процесс vacuum может занять некоторое время в зависимости от размера файла .lgd.
vacuum).vacuum вы можете запустить ранее остановленные службы 1С:Предприятия.Несмотря на возможность ручного сокращения файла .lgd, фирма "1С" и опыт многих пользователей показывают, что формат SQLite для журнала регистрации в высоконагруженных системах является менее производительным по сравнению с традиционным файловым форматом. В контексте 1С "православный" способ хранения журнала регистрации обычно подразумевает переход на файловый формат (файлы .lgf и .lgp) или использование внешней СУБД (например, PostgreSQL или MS SQL Server) для его хранения. Рассмотрим подробнее переход на файловый формат, который является наиболее частой рекомендацией.
.lgf и .lgp)Данный подход позволяет значительно повысить производительность работы с журналом регистрации и избежать проблем с блокировками и замедлениями. Разберем по шагам, как это сделать:
Агент сервера 1С:Предприятие 8.3 и Агент сервера 1С:Предприятие 8.3 (x86-64).1Cv8Log, расположенная внутри каталога конкретной информационной базы..lgd: Внутри папки 1Cv8Log найдите все файлы с расширением .lgd. Рекомендуется не удалять их сразу, а переместить в другое место (например, в подпапку "Backup") для резервной копии, на случай, если информация из старого журнала потребуется. Если же информация из старого журнала не нужна, вы можете их просто удалить.1Cv8.lgf: В той же папке 1Cv8Log создайте пустой файл с именем 1Cv8.lgf. Для этого можно создать любой текстовый файл, а затем переименовать его, убедившись, что расширение .txt не осталось (т.е. файл должен называться ровно 1Cv8.lgf). Наличие этого пустого файла указывает платформе 1С, что следует использовать старый файловый формат.1Cv8.lgf и начнет создавать журнал регистрации в файловом формате (.lgf и .lgp).Дополнительные возможности файлового формата: Старый файловый формат также позволяет настроить разделение журнала регистрации по периодам (например, по дням или неделям), что упрощает управление его объемом и поиск нужных событий, таких как выгрузка журнала регистрации в Excel с группировкой.
Если информация из журнала регистрации для конкретной базы вообще не нужна, вы можете полностью отключить регистрацию всех событий. Это значительно уменьшит нагрузку на систему, так как 1С перестанет записывать события.
.lgd, .lgf и .lgp из папки 1Cv8Log.Многие пользователи и даже разработчики 1С задаются вопросом, почему такая быстрая встраиваемая СУБД, как SQLite, демонстрирует низкую производительность в качестве журнала регистрации 1С. Рассмотрим основные причины:
.lgd. Это приводит к так называемым "зависаниям" и замедлению работы пользователей, ожидающих освобождения ресурса.rmngr.exe: Процесс rmngr.exe (менеджер кластера серверов 1С) постоянно и интенсивно читает журнал регистрации, что в условиях SQLite приводит к высокой нагрузке на процессор и усугубляет проблему блокировок..lgf/.lgp) является более производительным для высоконагруженных систем по сравнению с SQLite (.lgd). Именно поэтому по умолчанию в более свежих версиях платформы используется последовательный файловый формат.Поэтому переход на файловый формат или внешнюю СУБД для журнала регистрации является не просто "православным способом", но и рекомендованной практикой для обеспечения стабильной и высокопроизводительной работы серверной части 1С:Предприятия. Аналогичные подходы применяются и для других типов логов, например, перенос логов технологического журнала в ClickHouse.