Анализ технологического журнала утечек памяти

14.11.15

База данных - Технологический журнал

Конфигурация предназначена для отчитки файлов технологического журнала и помещения данных в базу для дальнейшего анализа. Есть аналоги данного творения, но эта конфигурация заточена только именно для анализа действий CALL и LEAKS. Если заинтересовались, заходим в подкаст.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Конфигурация
.cf 125,44Kb ver:1
117 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Преамбула:

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

Вступление:

А все началось с того, что на сервере просто в какие-то из моментов попросту пропала память. 

Процессор: 2х Intel Xeon X5660 2.8 ГГц

ОЗУ: 96 ГБ.

ОС:Win server 2008 R2 enterprise SP1 64x

MS SQL Server 2012. Выделено памяти 50 ГБ.

1С Сервер 64 (8.3.6.2237)

УТ11 (11.1.9.56) – 9 баз. Самая большая база – 110 Гб, Общий объем баз-  150 ГБ

Поднимались соответсвующие вопросы на официальном сайте партнеров, но, как обычно время шло, проблема жила. То есть нет на сегодняшний день никакой панацеи - это очень и очень хлопотный труд, и готовьтесь пройти полный [...цензура...] до решения этой проблемы. Я уж и не говорю, сколько пришлось промониторить объемов журнала и сколько раз настроить кластер сервера 1С, чтобы в какой-то момент утечка просто пропала. То есть получается, что нет чего-то конкретного, чтобы Вы нажали что-то и у Вас утечки ушли, эта работа очень комплексная и устранять придется все комплексно и, как мне кажется, каждый из случаев уникальный, кому-то просто помогает перезапуск rphost. ТЖ не показывает утечку памяти, а лишь только на подозрение, то есть показывает, какой объем памяти был не освобожден. Вот только ТЖ не знает о том, что этот объем памяти мог быть освобожден в действительности только позже. Это очень просто воспроизвести обычно на штатном отчете Товары организаций в УТ 11, в ТЖ будут идти как бы утечки, но rphost.exe потом освободится, и такого рода поиск очень сильно ставит в тупик с поиском утечек в коде 1С... Но все же, вручную анализировать такие талмуты файлов просто нереально и хочется иметь хоть какой-то инструмент, в котором можно будет быстренько наложить определенные отборы, например, в момент проблем, которое попало в счетчики Perfomence Monitor и дальше иметь хоть какую-то картинку. 


В БОЙ !!!

Для использования конфигурации следует использовать платформу не младше 1С:Предприятие 8.3 (8.3.6.2237). Конфигурация рассчитана для клиент-серверного использования. Здесь я сделал подход отчитки файлов в несколько потоков, максимум можно задействовать 7 потоков, но следует вначале проэкспериментировать и поэтому по умолчанию установил 1 поток. Потому как отчитка файлов очень серьезно нагружает кластер, если задействовать много потоков, будьте внимательны.

Как работать с конфигурацией?

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

Разворачиваем конфигурацию на серверной площадке. В меню Сервис, выбираем "Пакетный анализ утечек ТЖ", после чего необходимо указать каталог ТЖ. Размещение должно быть таковым, чтобы после родительского каталога шли каталоги rphost_. Анализируются только каталоги первого уровня и только с маской rphost_. В меню сервис также есть обработка отчитки конкретного лог-файла, результат которой будет выведен визуально в табличной части. Бывают моменты, что надо проанализировать только определенный файл для понимания.
Хочу подчеркнуть, что здесь будут загружены только те свойства, у которых есть значение Memory, и они в указанном пороге Мб (даный порог рассчитывается, поскольку в ТЖ указано в байтах). Также система пытается найти после события CALL или SCALL свойство LEAKS и, если находит, то автоматически привяжет его к текущему событию вызова.

В меню регламентые и фоновые задания можно просмотреть процесс выполнения, а также более конкретно можно это увидить в "Состояние загрузки файлов", где видно, какой именно файл загружает или уже загружен и каким из потоков фоннового задания. Обработано строк с шагом обновления 1000 строк (так что не удивляемся, если файл в состоянии Готов и 0 строк)

Рекомендации:

Рекомендации по настройке logcfg.xml, для анализа не следует перегружать журнал другими настройками, я не могу гарантировать адекватного поведения отчитки данных. 

<?xml version="1.0" encoding="UTF-8" ?> 
<config xmlns="http://v8.1c.ru/v8/tech-log">
 <log location="D:\TJ-Leaks" history="24">
 <event>
  <eq property="name" value="call" /> 
  </event>
 <event>
  <eq property="name" value="leaks" /> 
  </event>
  <property name="all" /> 
  </log>
 <leaks collect="1">
  <point call="server" /> 
  </leaks>
</config>


Также весьма рекомендую использовать редактор EmEditor Professional сайт разработчиков  для интерактивного открытия log-файлов больших размеров. 1С , во-первых, открывая такой файл, очень сильно забирает память и во-вторых если она файл не может открыть то просто вылетит. Редактор порадовал, ограничение его 254 Гб текстового файла и самое интересное, открыв файл в 2.5 Гб я увидил лишь 300 Мб которую взял на себя данный редактор.

Паралельно разрабатывая эту конфигурацию наблюдал такое:

Точнее сказать, здесь ничего такого нет и понятно, что для склеивания одной строки с другой нужно время, чтобы выделить участок памяти. Вопрос, а если времени нет и это влияет на производительность, что тогда? Благо разработчики 1С дали такой выход, и эта возможность появилась с релиза 8.3.6.1977. Сразу хочу подчеркнуть, что эти функции не будут работать, если конфигурация работает в режиме совместимости. Так вот, выкладываю замеры (прикрепил изображение с замером наблюдения) производительности при обычном склеивании строк и при использовании новой возможности СтрСоединить().

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

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

Выдержка из синтаксис помощника:

Глобальный контекст (Global context)

СтрСоединить (StrConcat)
Синтаксис:

СтрСоединить(<Строки>, <Разделитель>) 

Параметры:
<Строки> (обязательный)

Тип: ФиксированныйМассивМассив
Массив, содержащий объединяемые строки. 

<Разделитель> (необязательный)

Тип: Строка. 
Строка, которая будет вставлена между объединяемыми строками.
Если параметр не задан, строки будут объединены слитно друг с другом.
Значение по умолчанию: Неопределено. 

Возвращаемое значение:

Тип: Строка
Строка, содержащая соединенные исходные строки с разделителем между ними. 

Описание:

Соединяет массив переданных строк в одну строку с указанным разделителем.
Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Спасибо всем, кто нашел время и дочитал все это до конца и решился попробовать этот инструмент.

Вступайте в нашу телеграмм-группу Инфостарт

Анализ технологического журнала Анализ ТЖ Анализ ТЖР Технологический журнал Утечки памяти Утечка памяти Утечка

См. также

Технологический журнал Программист 1С 8.3 Россия Бесплатно (free)

Устал парсить ТЖ 1С gawk-скриптами каждый раз заново - собрал нормальный инструмент. DuckDB под капотом, разбор ТЖ, планов под MS SQL и PostgreSQL, AI-объяснения опционально.

08.07.2026    929    nazarovss    8    

21

Технологический журнал Системный администратор Программист Бесплатно (free)

Чтобы перейти от тушения инцидентов в 1С к превентивному подходу, нужно заранее видеть рост данных, блокировок, времени выполнения операций и другие признаки будущих проблем. Разбираем, какие метрики технологического журнала 1С и СУБД стоит мониторить в реальном времени и как использовать простые ML-модели – регрессию и классификацию – для прогноза падения производительности. Объясняем, как автоматически выявлять аномалии в поведении пользователей и фоновых заданий, настраивать proactive-алерты за часы или дни до инцидента и создавать тикеты в ITSM-системах на превентивные действия.

02.07.2026    1482    aidar_safin    17    

29

Технологический журнал Программист Бесплатно (free)

Парсинг техжурнала 1С – это не просто «распарсить JSON» или CSV, а работа с множеством неочевидных особенностей формата. Показываем, какие проблемы могут возникнуть из-за дублей свойств и событий, «полей-призраков», нестандартных имен свойств, разрозненного контекста, кавычек, апострофов и других нюансов, которые легко ломают парсеры и искажают результаты анализа. Объясняем, чем может помочь ИИ при работе с техжурналом и почему даже при использовании современных инструментов важно понимать внутреннюю логику логов. В статье собраны главные правила надежного парсинга и примеры ситуаций, где техжурнал может неожиданно показать свою «темную сторону».

17.06.2026    2122    Andreynikus    9    

23

Технологический журнал Мониторинг Программист 1С 8.3 Абонемент ($m)

Решение-заготовка для автоматического мониторинга и расследования технологических инцидентов в случаях невозможности использования решений КИП.

1 стартмани

29.05.2026    1806    8    tori131313    3    

11

Linux Технологический журнал 1С:Предприятие 8 Бесплатно (free)

Графическая утилита, сделанная по принципу Microsoft SQL Server Profiler, но для СУБД PostgreSQL Позволяет легко настраивать сбор планов запросов как средствами PostgreSQL, так и технологическим журналом 1С Предприятие с их последующей визуализацией. Простая, понятная для пользователей утилита, не требующая прав администратора для визуализации, и требующая их для настройки. Скомпилированная в исполняемый файл.

20.05.2026    1748    capitan    4    

9

HighLoad оптимизация Технологический журнал Системный администратор Программист 1С 8.3 Бесплатно (free)

Пошаговая методика поиска утечек памяти в 1С через технологический журнал: как связать события CALL и LEAKS по clientID, агрегировать тысячи строк стеков вызовов в компактное дерево сценариев, классифицировать проблему без открытия конфигуратора и упаковать результат в готовую задачу разработчику — с bash-скриптами для каждого шага и разбором на реальном примере

17.04.2026    3293    maraty    9    

19

HighLoad оптимизация Технологический журнал Программист Бесплатно (free)

Пользователи жалуются на медленную работу 1С, система нестабильна под нагрузкой, а попытки «починить» не дают результата? В статье разбираем, как подойти к оптимизации производительности комплексно: от анализа инфраструктуры и базы данных до уровня кода и пользовательских операций. Показываем пошаговый подход «аудит – оптимизация – контроль» и объясняем, какие инструменты помогают быстро выявить и устранить узкие места. На реальном примере проходим путь от первичного мониторинга до внедрения оптимизаций и стабилизации системы.

06.04.2026    2062    kulmaksim    0    

10

HighLoad оптимизация Технологический журнал Программист 1С 8.3 1С 8.5 Абонемент ($m)

tjclick - кроссплатформенная утилита для копирования логов технологического журнала платформы 1С в КликХаус

10 стартмани

02.04.2026    1070    1    SerVer1C    0    

9
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Armando 1402 14.11.15 15:44 Сейчас в теме
Участвовал в твоих темах на партнерке. То есть проблемы с памятью и нагрузкой на cpu решились сами собой без какого либо вмешательства в код и настройки кластера?
2. logarifm 1133 14.11.15 17:32 Сейчас в теме
(1) Armando, пока только с памятью удалось разобраться. насчет CPU проблемы остались в основном это отчеты.
3. set5553 15.11.15 19:43 Сейчас в теме
Как разобрались с памятью? Что для этого сделано?
4. logarifm 1133 16.11.15 00:46 Сейчас в теме
(3) set5553, Честно как я и написал выше - это очень и очень долгий процесс и разговор...
5. Armando 1402 16.11.15 02:20 Сейчас в теме
(4) можешь коротко описать какие конкретно действия привели к результату, а не как ты дошел к этим действиям?
6. flatnis 16.11.15 14:45 Сейчас в теме
Можно уточнить? Под утечкой подразумевается неосвобождение памяти рабочими процессами 1С? Или неконтролируемая утечка, с которой нельзя сопоставить ни один процесс на сервере? Блин, сумбурно написано:) Смысл в том, что есть два вида утечек. Первый - это корявый код, к примеру, с рекурсиями переменных на самих себя. После выполнения такого кода rphost не освобождает память ОЗУ, которую он задействовал для выполнения операции.
А есть утечка, когда вроде и процессы на компьютере не занимают много памяти, а доступного ОЗУ совсем нет. События ТЖ LEAKS помогают поймать утечку второго рода? Или только она для первого варианта?
7. Armando 1402 16.11.15 20:25 Сейчас в теме
(6) flatnis,
События ТЖ LEAKS помогают поймать утечку второго рода? Или только она для первого варианта?

Нет. Да.
8. cheburashka 45 14.12.15 12:18 Сейчас в теме
Запустил пакетный анализ утечек ТЖ и получил ошибку:

Ошибки выполнения: 
Деление на 0
    РазмерПорции = Цел(ЧислоСтрокВТаблице/ЧислоПотоков);


Поток 1
Объем неосвобожденной памяти: 10 Мб.
9. logarifm 1133 22.12.15 23:24 Сейчас в теме
(8) cheburashka, База файловая или клиент-серверный вариант ?
12. MURzzz 94 26.09.19 15:58 Сейчас в теме
(8)
Запустил пакетный анализ утечек ТЖ и получил ошибку:

та же проблема, база клиент-сервер
10. cheburashka 45 17.04.16 14:25 Сейчас в теме
Извиняюсь за столь длительное молчание. База конечно клиент-серверная.
11. Danil.Potapov 173 01.12.16 11:39 Сейчас в теме
а где посмотреть замеры по строкам ?
13. user1461477 15.09.21 13:21 Сейчас в теме
апну тему, ибо

утечки - это весьма печально
14. ffess 68 11.02.22 16:13 Сейчас в теме
Как и у других комментаторов, при попытке воспользоваться "Пакетный анализ утечек ТЖ" получил ошибку.


Ошибки выполнения:
Деление на 0
РазмерПорции = Цел(ЧислоСтрокВТаблице/ЧислоПотоков);
Для отправки сообщения требуется регистрация/авторизация