Администраторы серверов 1С часто сталкиваются с ситуацией, когда на диске сервера стремительно заканчивается свободное место. Скорость заполнения диска может достигать десятков гигабайт в сутки. При этом в системных папках или каталоге TEMP бесконтрольно создаются файлы дампов и технологического журнала, а ручное удаление конфигурационного файла logcfg.xml не приносит результатов — он создается снова автоматически. В этой статье мы подробно разберем, почему это происходит, как обнаружить источник проблемы и навсегда остановить этот процесс.
Файл logcfg.xml является основным конфигурационным файлом технологического журнала 1С. Он определяет, какие именно события системы должны записываться в логи, куда сохранять эти данные и в каком объеме. Обычно этот файл создается администратором вручную для расследования технологических проблем. Однако бывают случаи, когда файл создается автоматически без ведома администратора.
Если проанализировать содержимое автоматически создаваемого файла, мы можем обнаружить в нем подобную структуру:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump location="C:\TEMP\Dumps\80af5716-b134-4b1c-a38d-4658d1ac4196\" create="true" />
</config>
Обратите внимание на уникальный идентификатор (GUID) в пути сохранения дампов: 80af5716-b134-4b1c-a38d-4658d1ac4196. Этот идентификатор не генерируется случайно. Он жестко зашит в коде официальной внешней обработки «Консоль запросов для управляемого приложения» (RequestConsoleManaged.epf), распространяемой на дисках и портале ИТС.
Рассмотрим механизм работы этой консоли подробнее. В консоли запросов реализована функция получения планов выполнения запросов на уровне СУБД. При включении этой функции (а в некоторых версиях обработки — непосредственно при ее открытии) программный код обработки обращается к серверу и создает файл logcfg.xml в каталоге установки платформы (например, в C:\Program Files\1cv8\conf\logcfg.xml) или в профиле пользователя операционной системы, под которым запущен рабочий процесс 1С. В этот файл прописываются настройки для генерации дампов при определенных условиях.
По задумке разработчиков, при закрытии обработки или отключении замера планов запросов файл logcfg.xml должен автоматически удаляться или очищаться. Однако на практике этот механизм часто дает сбой по следующим причинам:
Пока в системе остается активным сеанс, вызвавший данную обработку, любые попытки вручную удалить logcfg.xml будут тщетными — рабочий процесс 1С (rphost.exe) моментально пересоздаст его заново.
Проверим также альтернативные папки, где может находиться этот файл, помимо стандартного каталога C:\Program Files\1cv8\conf\:
C:\Program Files\1cv8\8.3.X.XXXX\bin\conf\.C:\Users\USR1CV8\AppData\Local\1C\1cv8\conf\.conf.cfg с помощью параметра ConfDir.---
Сам по себе файл конфигурации технологического журнала весит несколько килобайт. Но его некорректная настройка запускает два взаимосвязанных лавинообразных процесса:
logcfg.xml активен тег <dump> с параметром create="true", то при любой критической ошибке, утечке памяти или аварийном завершении рабочего процесса rphost.exe платформа выгружает всю свою оперативную память в файл дампа (с расширениями .dmp или .mdmp). Если база данных тяжелая, а процессов на сервере много, то каждое падение генерирует файлы размером от нескольких сотен мегабайт до десятков гигабайт. При циклическом перезапуске процессов диск заполняется мгновенно.TEMP. Во время индексации больших объемов данных или при повреждении индекса регламентные задания по обновлению и слиянию индекса могут уходить в бесконечный цикл. Это вызывает колоссальную нагрузку на дисковую подсистему (диск начинает непрерывно свопить) и провоцирует падение процессов rphost.exe, что, в свою очередь, заставляет систему создавать новые и новые файлы дампов.---
Давайте разберем по шагам, как локализовать источник проблемы, остановить запись логов и освободить дисковое пространство.
Нам необходимо найти сеанс пользователя, который запустил внешнюю обработку и инициировал создание файла конфигурации.
Если сеансов на сервере много и визуально определить виновника не удается, воспользуемся бесплатной системной утилитой Process Monitor (ProcMon) от Microsoft Sysinternals.
Ctrl+L).Path contains logcfg.xml -> then Include. Нажмите кнопку Add, затем Apply.logcfg.xml из папки conf.rphost.exe) и колонку PID (идентификатор процесса).Если основной объем диска занимают файлы в папках с названиями FTindex или временные файлы с расширением .dat, нам необходимо сбросить индекс полнотекстового поиска.
Если вам требуется отключить полнотекстовый поиск программно, например, в коде обработки или при начале работы системы, можно использовать следующий пример кода на языке 1С:
Если ПолнотекстовыйПоиск.ПолучитьРежимИспользования() <> РежимИспользованияПолнотекстовогоПоиска.НеИспользовать Тогда
ПолнотекстовыйПоиск.УстановитьРежимИспользования(РежимИспользованияПолнотекстовогоПоиска.НеИспользовать);
ЗаписьЖурналаРегистрации("НастройкаСистемы", УровеньЖурналаРегистрации.Информация, , , "Полнотекстовый поиск успешно отключен.");
КонецЕсли;
Чтобы рабочие процессы сервера 1С не переполняли оперативную память и не падали, генерируя тяжелые дампы, необходимо настроить параметры перезапуска рабочих процессов в свойствах локального кластера.
Локальный кластер).4194304 КБ (4 ГБ) на один процесс.86400 секунд (24 часа). Это позволит процессам автоматически и незаметно для пользователей завершать свою работу и освобождать заблокированную память раз в сутки.Если вам по каким-то причинам всё же необходимо оставить включенным сбор технологического журнала или генерацию дампов, обязательно настройте ограничения на их объем и время жизни файлов. Ниже приведен пример файла logcfg.xml, который ограничивает время хранения логов и размер каталога с дампами:
<config xmlns="http://v8.1c.ru/v8/tech-log">
<!-- Настройка сбора технологического журнала -->
<log location="C:\TEMP\1C_Logs" history="24">
<event>
<eq property="Name" value="EXCP"/>
</event>
<property name="all"/>
</log>
<!-- Настройка создания дампов с ограничением их количества -->
<dump create="true" location="C:\TEMP\Dumps" maxfiles="5" PrntLogs="true" />
</config>
В данном конфигурационном файле:
history="24" указывает платформе автоматически удалять файлы технологического журнала, которые были созданы более 24 часов назад.maxfiles="5" ограничивает максимальное количество одновременно хранящихся файлов дампов в каталоге. При создании шестого дампа самый старый будет автоматически удален.Используя данный системный подход, вы сможете гарантированно защитить дисковое пространство сервера от переполнения и обеспечить стабильную и быструю работу всей инфраструктуры 1С:Предприятие.