Поиск и устранение проблем с производительностью 1С

Использование технологического журнала 1С для поиска и устранения проблем с производительностью.

Для расследования проблем с производительностью 1С существует множество инструментов, но самым главным является технологический журнал, многие средства получают сведения из него.

Для исследования и решения различных ошибок, проблемных ситуаций, возникающих при эксплуатации системы, существует технологический журнал (ТЖ), который формирует необходимую информацию о работе системы, позволяющую расследовать эти проблемы.

Основное использования технологического журнала:

  • Сбор информации о работе системы на низком уровне:

» текстовый журнал, регистрирующий события в системе;

» дампы, регистрирующие состояние памяти в момент аварийного завершения.

  •  Диагностика и анализ технологических проблем без использования внесистемных средств (куда «утекает» память, при выполнении какого кода «падают» рабочие процессы сервера, какие запросы медленно работают и др.).
  •  Восстановление контекста ситуации.

ТЖ является очень полезным инструментом для расследования проблем стабильности работы программ 1С, а также проблем с производительностью. Информацию технологического журнала также использует такой инструмент, как 1С:Центр управления производительности.

Принцип работы технологического журнала

Принцип работы ТЖ состоит в следующем:

  •  Создается файл настроек технологического журнала (logcfg.xml), в котором необходимо описать, какие события и свойства мы хотим получать и отслеживать.
  • Помещаем созданный файл настроек в нужный каталог, чтобы начала собираться информация.
  • Собранные данные – логи – представляют собой текстовые файлы специальной структуры, которые помещаются в специальный каталог, определяемый в файле logcfg.xml.
  • После сбора информации начинается ее анализ.

Логи – файлы с расширением *.log, хранящие информацию в текстовом виде. Дампы – файлы с расширением *.mdmp, которые хранят содержимое оперативной памяти процесса на момент «падения». Самостоятельно анализировать дампы невозможно, но их можно отправить для расследования в техническую поддержку и получить решение проблемы. Как включить и выключить технологический журнал По умолчанию ТЖ отключен, чтобы включить ТЖ для сбора данных, необходимо поместить файл настроек ТЖ (logcfg.xml) в специальный каталог.

Платформа 1С:Предприятие проверяет каждые 60 секунд наличие этого файла в специальных каталогах, и если она его там обнаружит, то проанализирует его, начинает собирать указанную в logcfg.xml информацию и формировать файлы технологического журнала.

Если удалить файл настроек из служебного каталога, то при следующем прочтении данных (а они считываются каждые 60 секунд) платформа 1С:Предприятие прекратит формирование технологического журнала. Изменение настроек технологического журнала не требует перезапуска 1С, и при следующем прочтении logcfg.xml будет собираться информация в соответствии с новыми данными.

Если файл настроек ТЖ отсутствует, то это означает, что данные собираться не будут, но в случае аварийного завершения работы 1С минимальный файл дампа технологического журнала все равно сформируется и будет помещен в каталог %USERPROFILE%\Local Settings\Application Data\1C\1cv8\dumps.

Для настройки параметров технологического журнала и создания дампов при аварийном завершении 1С используется специальный служебный файл logcfg.xml. Для того чтобы включить технологический журнал, необходимо поместить файл настроек в каталог конфигурационных файлов 1С:Предприятия: C:\Program Files\1cv8\conf (см. рис. ).

1c-1

В этом случае настройки ТЖ будут действовать для всех версий платформы, установленных на данном компьютере и для всех пользователей. Желательно использовать именно этот каталог, т.к. при обновлении версии платформы настройки ТЖ не будут слетать.

Если в кластере несколько серверов, то необходимо включать ТЖ на каждом из них, чтобы собрать полную информацию.

Структура файла logcfg.xml

Общая структура конфигурационного файла выглядит следующим образом (см. рис. 2).

1c-2

Каждый из элементов файла настроек отвечает за определенные функции (см. таблицу 1). Разберем структуру файла настройки ТЖ на следующем примере (см. листинг 1).

Листинг 1.

Пример настройки ТЖ <?xml version=»1.0″ encoding=»UTF-8″?> <config xmlns=»http://v8.1c.ru/v8/tech-log»> <dump create=»true» location=»C:\v83\dumps\» type=»3″ ↵ prntscrn=»false»/> <log location=»C:\v83\logs\» history=»168″> <event> <ne property=»name» value=»»/> </event> <property name=»all»/> </log> </config>

Разберем.

  • <config xmlns=»http://v8.1c.ru/v8/tech-log»> – определяет начало настроек ТЖ, эта строка всегда идет первой и остается неизменной по содержанию.
  • <dump create=»true» location=»C:\v83\dumps\» type=»3″ prntscrn=»false»/> – настройка создания дампа в случае аварийного завершения какого-либо из процессов сервера 1С, где:

» location – указывает на каталог хранения дампов, в данном примере «C:\v83\dumps\»;

» create – отвечает за создание файла дампов, если он имеет значение false, то дамп не будет создан;

» type – определяет, насколько полный необходимо создать дамп памяти. Если параметр равен 3, то будет создан максимальный дамп памяти. Рекомендуется выбирать именно этот параметр, чтобы собрать больше информации, что поможет расследованию проблемы. Если параметр равен 0, то будет собран минимальный дамп;

» prntscrn – отвечает за создание скриншота экрана, во время падения процесса. Принимает значение false или true. Если раздела <dump> не будет в настройках ТЖ, то будет создан минимальный дамп, который будет сохранен в каталог по умолчанию.

  •  <log location=»C:\v83\logs\» history=»168″> – открытие раздела настроек логов ТЖ. В разделе настраиваются каталог и время хранения логов в часах. Разделов <log> может быть несколько, и в каждом из них мы можем указать свои контролируемые события, каталог и время хранения логов.

» location – указывает на каталог хранения логов журнала, в данной настройке: «C:\v83\ logs \». Важно, чтобы каталог был пустым и, кроме файлов ТЖ, там не было посторонних файлов. Иначе платформа 1С не сможет записывать логи в этот каталог;

» history – отвечает, сколько часов будут храниться логи в ТЖ. Файлы старше по времени платформа удалит самостоятельно.

  •  <event> – открывает блок для отбора и фильтрации событий, которые мы будем собирать с помощью ТЖ. Блоков <event> может быть несколько – по одному блоку на каждое событие.
  • <ne property=»name» value=»»/> – определяет, какие события и по какому условию попадет в логи журнала. В данном случае стоит условие на все события ТЖ, т.к. это условие означает, что будут браться все события у которых имя не равно «». А так как имя есть у всех событий ТЖ, то в отбор попадут все. Обычно фильтрацию на все события не используют, т.к. это создаст большую нагрузку на систему и большой объем логов «съест» все свободное место.
  • </event> – закрывает раздел событий, если нужно фиксировать несколько событий, то можно создавать еще один раздел <event>.
  • <property name=»all»/> – раздел определяет, какие свойства выбранных событий раздела <event> необходимо фиксировать. В нашем случае установлен отбор на все свойства. Обычно эта строка остается без изменений.
  • </log> – закрывает раздел <log>. После этого мы сможем начинать еще один раздел <log>.
  • </config> – конец настроек ТЖ.

<log>

 Определяет каталог ТЖ и его состав

<dump>

 Определяет каталог для записи дампов при аварийном завершении работы

<leaks>

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

<mem>

 Используется для учета используемой памяти

<plansql>

 Используется для сбора планов запроса

<dbmslocks>

 Используется для управления сбором информации о блокировках СУБД

<gefaultlog>

 Определяет каталог и время жизни ТЖ по умолчанию

<system>

 Определяет настройки формирования системных событий

 События технологического журнала

Чтобы не писать в логи ТЖ всю информацию, существует разделение его на события, а также фильтрация этих со- бытий. Например, если произошла ошибка «Тайм-аута», то возникает событие «TTIMEOUT», а когда возникает какая-либо исключительная информация, то возникает событие «EXCP» и т.д. События в ТЖ пишутся после их завершения, а не в момент начала, потому что в логах отображается длительность события. Чтобы определить время начала события, необходимо из даты окончания вычесть его длительность.

Основные ошибки при настройке технологического журнала

Рассмотрим самые распространенные ошибки, в результате которых логи ТЖ могут не собираться.

  • Права на каталог. У пользователя, под которым запущен сервер 1С, должны быть полные права на каталог, в котором будут собираться данные ТЖ.
  • Лишние файлы в каталоге сбора ТЖ. Как уже отмечалось, в каталоге сбора ТЖ не должно быть посторонних файлов и папок.
  • Ошибки в структуре файла logcfg.xml. Невнимательное занесение структуры ТЖ, особенно если настраивается вручную.
  • Лишние пробелы и русские буквы. Невнимательно занесенные данные по событиям и свойствам с лишними пробелами и русскими буквами вместо английских.
  • Кодировка 1251. Кодировка файла ТЖ должна быть UTF-8 Все логи ТЖ хранятся в своем каталоге для каждого процесса.

Имя каталога задается по шаблону: ИмяПроцесса_PID. Каждый файл журнала содержит события за 1 час и имеет имя ГГММДДЧЧ.log. В самом файле лога каждое новое зафиксированное событие начинается с новой строки (см. рис. 3).

1c-3Фильтры событий технологического журнала Может понадобиться нахождение нескольких событий ТЖ, для этого в файле logcfg.xml необходимо прописать несколько блоков <event>, и они будут объединены по логическому «ИЛИ». Например, чтобы в один лог попадали и ошибки «таймаута» и «взаимоблокировок» на управляемых блокировках, то необходимо написать (см. листинг 2).

Листинг 2.

Объединение двух событий <?xml version=»1.0″ encoding=»UTF-8″?>

<config xmlns=»http://v8.1c.ru/v8/tech-log»> <dump create=»true» location=»C:\v83\dumps\» type=»3″ ↵ prntscrn=»false»/> <log location=»C:\v83\logs\» history=»168″> <event> <eq property=»name» value=»tdeadlock»/> </event> <event> <eq property=»name» value=»ttimeout»/> </event> <property name=»all»/> </log> </config>

Фильтр свойств событий технологического журнала

У каждого события ТЖ есть определенные свойства, т.е. дополнительные сведения о данном событии. В файле настроек logcfg.xml можно фильтровать события по необходимым значениям свойств.

Отбор на свойства ставится в блоке <event> и прописанные условия объединяются по логическому «И» (см. рис. 4).

1c-4

В данном случае у нас будут собираться данные о запросах, длительность которых более пяти секунд и которые содержат текст «UPDATE».

Фильтр на длительность ставится в десятитысячных долях секунды.

Обработки настройки и просмотра технологического журнала

Для того чтобы облегчить настройку технологического журнала, фирма «1С» выпустила обработку «Настройка технологического журнала». Эта обработка позволяет выбирать определенные сочетания событий и свойств и на основании этих данных формирует файл logcfg.xml. К сожалению, обработка не позволяет накладывать сложные фильтры на свойства событий и поэтому подходит для легких случаев. Для более тонкой настройки необходимо настраивать файл logcfg.xml. Также для удобства просмотра логов ТЖ существует обработка «Просмотр технологического журнала».

Технологический журнал – это главный источник информации для всех инструментов анализа производительности платформы.

С помощью логов можно расследовать различные специфичные ошибки, например медленную работу системы только под определенным пользователем, или найти длительные транзакции.

Особую важность ТЖ представляет при расследовании проблем стабильности. С его помощью можно настраивать создание дампов при «падении» процессов и расследовать причину этих аварийных завершений.

Необходима оптимизация 1С, обращайтесь [email protected]

0 ответы

Ответить

Хотите присоединиться к дискуссии?
Приглашаем поучаствовать!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>