Начиная с версий платформы 1С:Предприятие 8.3.5, журнал регистрации по умолчанию создается в новом формате на базе компактной СУБД SQLite (файл с расширением .lgd). При активной работе пользователей и частом выполнении фоновых заданий интенсивность записи в журнал регистрации может достигать значительных величин (от нескольких единиц до десятков мегабайт в секунду), создавая постоянную конкурентную нагрузку на дисковую подсистему, где расположены базы данных или системные каталоги.
В платформе 1С отсутствуют штатные ключи запуска службы или настройки конфигурационных файлов, позволяющие указать произвольный путь исключительно для каталога журнала регистрации (1Cv8Log) отдельно от реестра кластера. Разберем проверенные способы решения этой задачи на уровне операционной системы и кластера серверов 1С.
Прежде чем приступать к переносу файлов, выясним, почему журнал регистрации генерирует непрерывный поток операций ввода-вывода (I/O):
1Cv8.lgd-wal и 1Cv8.lgd-shm. При фиксации транзакций и записи каждого события происходят системные вызовы принудительного сброса буферов на диск (fsync / FlushFileBuffers), что создает высокую нагрузку даже при небольшом объеме сохраняемого текста.Наиболее точечный вариант, позволяющий изолировать исключительно журнал регистрации без перемещения остальных данных кластера, — использование соединений каталогов (Junction Points) файловой системы NTFS с помощью утилиты mklink.
Разберем процесс по шагам:
1C:Enterprise 8.3 Server Agent) через консоль services.msc или командную строку:
net stop "1C:Enterprise 8.3 Server Agent (x86-64)"
C:\Program Files\1cv8\srvinfo\<ИмяСервера>\<ИдентификаторБазы>\1Cv8Log.1Cv8Log на целевой быстрый диск, например в каталог D:\1C_Logs\<ИдентификаторБазы>\1Cv8Log. Убедимся, что на новом месте у пользователя, от имени которого работает служба 1С (обычно USR1CV8), есть полные права доступа к папке и файлам.mklink /j:
mklink /j "C:\Program Files\1cv8\srvinfo\server_name\base_guid\1Cv8Log" "D:\1C_Logs\base_guid\1Cv8Log"
net start "1C:Enterprise 8.3 Server Agent (x86-64)"
Платформа 1С продолжит обращаться по стандартному пути, однако физическая запись файлов 1Cv8.lgd, 1Cv8.lgd-wal и 1Cv8.lgd-shm будет производиться на выделенный накопитель.
В операционных системах Linux символические ссылки могут вызывать сложности с правами доступа службы ragent. Надежным аналогом является монтирование каталога с отдельного накопителя через mount --bind.
Выполним следующие действия:
srv1cv83:
systemctl stop srv1cv8-8.3.*@default.service
/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/<ИдентификаторБазы>/1Cv8Log на выделенный смонтированный диск, например в /mnt/fast_disk/1c_logs/<ИдентификаторБазы>/1Cv8Log.
chown -R usr1cv8:grp1cv8 /mnt/fast_disk/1c_logs/
chmod -R 750 /mnt/fast_disk/1c_logs/
/etc/fstab:
mount --bind /mnt/fast_disk/1c_logs/base_guid/1Cv8Log /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/base_guid/1Cv8Log
/etc/fstab для автоматического монтирования при загрузке ОС:
/mnt/fast_disk/1c_logs/base_guid/1Cv8Log /home/usr1cv8/.1cv8/1C/1cv8/reg_1541/base_guid/1Cv8Log none bind 0 0
systemctl start srv1cv8-8.3.*@default.service
Если требуется ускорить не только журнал регистрации, но и работу полнотекстового поиска, сеансовые данные и временные файлы кластера, рекомендуется полностью перенести каталог srvinfo с помощью ключа запуска -d.
Рассмотрим последовательность настройки для Windows:
srvinfo на новый быстрый диск с обязательным сохранением прав доступа NTFS (через xcopy /O /X /E /H /K или robocopy /COPYALL).regedit и перейдем к ветке параметров службы:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\1C:Enterprise 8.3 Server Agent....ImagePath изменим путь после ключа -d, указав новый каталог (например, -d "D:\1C_Data\srvinfo").-d для новой службы.Помимо переноса файлов на отдельный накопитель, проанализируем параметры самого журнала регистрации:
1cv8.exe DESIGNER /IBConnectionString "..." /ReduceEventLogSize 2024-01-01
или используя встроенную процедуру платформы УдалитьСобытияЖурналаРегистрации().
1cv8.exe DESIGNER /IBConnectionString "..." /ReduceEventLogSize -Format LGF