AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Администрирование
DAX
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.01.2020, 17:02   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от FrolovAndy Посмотреть сообщение
Есть идеи, советы, что я могу полезного с помощью windbg вытащить? почитал его описание команд, понял что надо первоначально знать какие шаги выполнять, методология что ли какая-то...
не надо лезть на уровень windbg

это уровень ядра и C++. все равно на этом уровне вы ничего сделать не сможете, только версию ядра обновить (обновите exe-шники по-любому)

бизнес-логика аксапты находится на уровне Java виртуальной машины (JVM)
JVM в аксапте была форкнута очень давно. там версия Java максимум 2-3. Точно меньше Java 6.

Поэтому вам нужно копать проблемы старенькой Java.
Прежде всего сборщик мусора (GC)

В Java память не "течет". В Java "память не освобождается сборщиком мусора".
В стареньких Java сборщик мусора прибирает объект, если на него нет ссылок из других объектов.

следовательно вам нужно искать:
1. объекты, на которые ссылаются глобальные "вечноживущие" объекты: GlobalCache, Infolog, Appl и другие
2. объекты, которые образуют нетривиальное кольцо (кольцо, в котором больше двух объектов) - самосвязанные списки, самозамкнутые мапы и прочее. Причем эти объекты не помечаются как dead. В общем, читать про достижимые и мертвые объекты в java

Я читал ваше утверждение что ваш GlobalCache маленький
Но проверьте себя еще раз. Вы точно читали кэш СЕРВЕРА, а не клиента?
среди закэшированных объектов нет каких-нибудь map'ов, которые содержат record?

например, так стандартный функционал корпоративного портала хранит в GlobalCache картинки. Влегкую.

если GlobalCache на СЕРВЕРЕ действительно не содержит объемных данных,
то остается искать недостижимые для сборщика мусора мертвые объекты в ваших модификациях.

и класс SysHeapLog вам в помощь.
__________________
полезное на axForum, github, vk, coub.

Последний раз редактировалось mazzy; 17.01.2020 в 17:20.
За это сообщение автора поблагодарили: FrolovAndy (1), Товарищ ♂uatr (2).
Старый 20.01.2020, 08:52   #2  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от mazzy Посмотреть сообщение
не надо лезть на уровень windbg

это уровень ядра и C++. все равно на этом уровне вы ничего сделать не сможете, только версию ядра обновить (обновите exe-шники по-любому)
Теоретически, если понять работу чего-то ниже уровнем, необязательно это изменять чтобы сделать что-то хорошее. Может быть достаточно использовать это по другому. Вот, например, описание того, как человек, используюя инструменты отладки и оптимизации решил проблему в свой презентации powerpoint.



Цитата:
JVM в аксапте была форкнута очень давно.
Она там не форкнута - там свой сборщик мусора который работает по другим принципам - подсчет ссылок вместо mark and sweep. Из-за этого не надо явно финализировать объекты (они собираются сразу после пропадания последней ссылки), но в случае циклических ссылок может быть проблема с тем, что сборщик мусора работает слишком долго.

Еще есть сложность с распределенной сборкой мусора - клиент может хранить ссылку на объект на сервере и может быть распределенный цикл, который собирается как-то очень нетривиально и долго. В Ax2012, ЕМНИП, специально устраняли такие ссылки.

Я не очень знаю, как при помощи WinDBG исследовать unmanaged память, но я знаю что, по крайней мере, в Dyn365FO есть performance counters для количества объектов, сборок мусора и так далее. Может быть что-то такое есть и в 2009 и оно как-то поможет в исследовании проблемы. В доке по 2012, впрочем, я их не вижу
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
DAX "съедает" всю память при запуске AOT NataLee DAX: Администрирование 12 17.09.2012 11:23
SQL с базой Axapta занимает всю оперативную память alesander DAX: Администрирование 9 23.06.2010 12:45
А построение перекрестных ссылок опять сожрет всю память и завесит систему нафих Alex_K DAX: Администрирование 15 04.09.2009 22:00
Вопросы по OLAP в DAX2009 oleg_e DAX: Функционал 9 10.12.2008 02:02
Очистить память после разноски журнала ОС npokypatop DAX: Программирование 7 25.06.2008 17:03

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 05:54.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.