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

14.11.15

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

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

Файлы

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

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

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

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

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

Преамбула:

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

Вступление:

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

Процессор: 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)
Синтаксис:

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

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

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

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

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

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

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

Описание:

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

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

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

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

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

См. также

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

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

06.04.2026    659    kulmaksim    0    

5

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

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

10 стартмани

02.04.2026    462    0    SerVer1C    0    

5

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

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

29.12.2025    7555    leongl    0    

19

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

Рассказываем, почему высоконагруженным бэкендам на 1С нужен регулярный мониторинг и что происходит, когда его нет: производительность и стабильность деградируют, а обращения пользователей копятся. Показываем, как построили легкую систему наблюдаемости для бэкендов корпоративных порталов. Она включает сбор метрик из технологического журнала, Apdex, журнала регистрации и динамики размеров таблиц с последующим анализом в связке ClickHouse и служебной информационной базы на 1С. Объясняем, какие отчеты и метрики быстрее всего помогают находить критичные проблемы производительности, и демонстрируем интерфейс расследования. Разбираем несколько кейсов оптимизации, найденных по итогам мониторинга, включая доработки функционала БСП «управление доступом» и «присоединенные файлы».

15.12.2025    4904    tystik    1    

9

Технологический журнал Системный администратор Программист 1С:Предприятие 8 Абонемент ($m)

Убираем лишние переносы строк в событии технологического журнала с помощью SIMD.

1 стартмани

24.11.2025    1215    0    sdf1979    2    

2

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

Мониторинг в ландшафте 1С помогает не только вовремя выявлять проблемы и повышать SLA, но и укреплять информационную безопасность. Разбираем источники данных, ограничения штатных инструментов и современные практики мониторинга на базе Prometheus, ClickHouse и Grafana. А также рассказываем о коробочном решении «Оркестратор 1С-систем» и планах его развития.

29.10.2025    2764    Sibars    0    

6

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

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

25.08.2025    3273    Metrika42    3    

13
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Armando 1402 14.11.15 15:44 Сейчас в теме
Участвовал в твоих темах на партнерке. То есть проблемы с памятью и нагрузкой на cpu решились сами собой без какого либо вмешательства в код и настройки кластера?
2. logarifm 1132 14.11.15 17:32 Сейчас в теме
(1) Armando, пока только с памятью удалось разобраться. насчет CPU проблемы остались в основном это отчеты.
3. set5553 15.11.15 19:43 Сейчас в теме
Как разобрались с памятью? Что для этого сделано?
4. logarifm 1132 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 1132 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
РазмерПорции = Цел(ЧислоСтрокВТаблице/ЧислоПотоков);
Для отправки сообщения требуется регистрация/авторизация