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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.09.2018, 17:02   #1  
Masel is offline
Masel
Участник
 
17 / 17 (1) ++
Регистрация: 19.09.2007
AX 2012 - глюки ядра
Добрый день,
Может кто сталкивался с такой проблемой и знает как ее решить (особо не рассчитываю, просто накипело).
Все видно в принципе на трассировке. Невменяемые затраты времени на простейшие методы без вызовов БД:

Конкретно этот пример AX 2012 R2, ядро 6.2.3000.5063. Код в CIL в пакете. В тот же момент проходил пересчет склада в 32 потока. Различные артефакты подобного рода наблюдаю и в других ситуациях, CIL, не CIL, иногда бывают тормоза на методах, которые вызывают strfmt() и больше вообще ничего. Перезагрузка аоса обычно лечит все такие ситуации, в CIL иногда становится лучше и без перезагрузки.
Старый 10.09.2018, 17:35   #2  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,047 / 1772 (66) ++++++++
Регистрация: 12.10.2004
Исчерпывающего ответа у меня нет, но есть наводящие мысли.

1. Вот тут описан глюк трейспарсера когда он неправильно отображал время и указан способ как узнать правильное время между событиями.
Тормозит создание буфера.

2. Если код исполняется в CIL то при вызове функций ядра у нас получается передача управления между управляемым кодом и неуправляемым кодом и на этом идет потеря производительности.
Подробнее тут:
https://blogs.msdn.microsoft.com/mfp...-to-the-metal/

Не уверен, что в вашем случае это было причиной, но про это надо не забывать.

3. В некоторых специфических случаях (при массовой обработке строк) CIL может работать медленнее чем p-code
см:
Помогите найти: Сравнение производительности различных операндов при конкатенации строк

У вас как раз идет работа со строкой.
Старый 10.09.2018, 17:40   #3  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,047 / 1772 (66) ++++++++
Регистрация: 12.10.2004
В вашем случае вместо QueryValue(parameter) для енума можно попробовать написать просто int2str(parameter)
Результат по идее будет тот же, но надеюсь, что побыстрее сработает.
Старый 10.09.2018, 17:49   #4  
Masel is offline
Masel
Участник
 
17 / 17 (1) ++
Регистрация: 19.09.2007
Цитата:
Сообщение от Logger Посмотреть сообщение
В вашем случае вместо QueryValue(parameter) для енума можно попробовать написать просто int2str(parameter)
Результат по идее будет тот же, но надеюсь, что побыстрее сработает.
Написать можно конечно, даже может быть оно поможет конкретно в этом месте. Но таких мест огромное количество, в данном случае это стандартный функционал - резервирование InventSum::newQueryReservation. В общем печаль. О том, что трейспарсер показывает что-то не то, я тоже думал, но функционал реально тормозит и везде при различных сценариях вызова тормозит queryvalue в данной трассировке. Думаю если бы дело было только в трейспарсере то в зависимости от стека вызова, соседних вызовов и т.д. время раскидывалось на разные методы.
Такого рода глюки кстати наблюдал и ранее и не только на этом приложении, не только в этой компании.
Старый 10.09.2018, 18:05   #5  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,047 / 1772 (66) ++++++++
Регистрация: 12.10.2004
Получается что тормозит enum2value()
но метод состоит из нескольких вызов функций ядра.
может посмотреть какая из них тупит ?

Возможно аналогичный вызов и в других местах дает тормоза.
Старый 10.09.2018, 19:49   #6  
DSPIC is offline
DSPIC
Боец
Аватар для DSPIC
MCP
Лучший по профессии 2017
Лучший по профессии 2014
Лучший по профессии 2009
 
996 / 1016 (35) ++++++++
Регистрация: 11.04.2008
Адрес: Минск
какая-то кустарщина в enum2value написана, никогда туда не заглядывал. Вдобавок, медленный reflection. Я бы подкэшировал (globalCache) и отпустил с миром.
__________________
Мой блог
Старый 10.09.2018, 19:57   #7  
DSPIC is offline
DSPIC
Боец
Аватар для DSPIC
MCP
Лучший по профессии 2017
Лучший по профессии 2014
Лучший по профессии 2009
 
996 / 1016 (35) ++++++++
Регистрация: 11.04.2008
Адрес: Минск
ещё одна мысль: strfmt('%1', E) очевидно обращается к Labels, которые можно попробовать переиндексировать (снести *.ali, *.alc).
__________________
Мой блог
Старый 11.09.2018, 12:07   #8  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
3,888 / 2002 (74) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Наблюдал такое на нескольких инсталляциях.
Основные два вопроса: обслуживаете ли вы БД модели и что у вас в целом с производительностью АОС серверов.

Также часто проблема в сети - какая скорость сети между АОС и СУБД? Какая задержка? Точно ли это один физический свич или нормально настроен виртуальный свич в системе виртуализации?

СУБД случайно не на виртуальном сервере?
__________________
Ivanhoe as is..
Старый 12.09.2018, 12:02   #9  
Masel is offline
Masel
Участник
 
17 / 17 (1) ++
Регистрация: 19.09.2007
БД модели обслуживается, дефрагментации почти нет, т.к. каждый понедельник после релиза все индексы в ней ребилдятся. Статистика собирается по ней фулсканом, т.к. база небольшая.

С производительностью аосов все в порядке, по крайней мере ресурсы показывают низкую загрузку (процессоры, память и т.д.)
Между аосом и субд 10 гигабит, они вообще в одной виртуальной среде, там нормально настроен свитч в виртуальной среде. Пинги <1, перекачка файла показывает 90+ мегабайт в секунду.

Субд на виртуальном, как и аосы и терминалы. Но судя по queryvalue тормозит именно аос, а не БД (хотя нельзя исключать каких-то фоновых вызовов к метаданным модели). Кроме queryValue заметил еще аномалии в работе табличного кэша - чтение и запись. И еще показывает тормоза после метода super() в inventTrans.insert, inventTrans.update.

Все это проявляется не постоянно, а время от времени, обычно под нагрузкой. Пока поиски причины продолжаются.
Старый 12.09.2018, 12:27   #10  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
3,888 / 2002 (74) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Попробовать перейти на железный скуль не реально?
Поищу какая была скорость сети на виртуале и что получилось на физике. Судя по симптомам проблема именно в виртуализации. Кстати она какая?
__________________
Ivanhoe as is..
Старый 12.09.2018, 13:30   #11  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,047 / 1772 (66) ++++++++
Регистрация: 12.10.2004
Цитата:
Сообщение от Masel Посмотреть сообщение
С производительностью аосов все в порядке, по крайней мере ресурсы показывают низкую загрузку (процессоры, память и т.д.)
Низкая загрузка проца еще ни о чем не говорит. Возможно в диск упирается. Проверяйте дисковые очереди.
За это сообщение автора поблагодарили: vmoskalenko (2).
Старый 12.09.2018, 13:55   #12  
Masel is offline
Masel
Участник
 
17 / 17 (1) ++
Регистрация: 19.09.2007
Цитата:
Сообщение от Logger Посмотреть сообщение
Низкая загрузка проца еще ни о чем не говорит. Возможно в диск упирается. Проверяйте дисковые очереди.
Очереди к дискам низкие. Если речь про аос, то там вообще минимальный обмен с диском, измеряется килобайтами в секунду.
Старый 12.09.2018, 13:57   #13  
Masel is offline
Masel
Участник
 
17 / 17 (1) ++
Регистрация: 19.09.2007
Цитата:
Сообщение от Ivanhoe Посмотреть сообщение
Попробовать перейти на железный скуль не реально?
Поищу какая была скорость сети на виртуале и что получилось на физике. Судя по симптомам проблема именно в виртуализации. Кстати она какая?
Перейти можно. Но пока не вижу проблемы именно в СУБД, чтобы переходить, но вообще этот вопрос обсуждается. Виртуализация VMWare.
Старый 12.09.2018, 15:55   #14  
Ivanhoe is offline
Ivanhoe
Участник
Аватар для Ivanhoe
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
 
3,888 / 2002 (74) +++++++++
Регистрация: 29.09.2005
Адрес: Санкт-Петербург
Статистика по внедрениям ax 2012, о которых я знаю, говорит, что переход на физический скуль всегда даёт большой прирост общей производительности. Даже когда формально виртуальные сервера отдыхают по счётчикам.
Уже сколько то лет мы пишем обязательность физического сервера бд в спецификациях заказчикам.
__________________
Ivanhoe as is..

Последний раз редактировалось Ivanhoe; 12.09.2018 в 15:57.
За это сообщение автора поблагодарили: Logger (3).
Старый 12.09.2018, 16:24   #15  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,047 / 1772 (66) ++++++++
Регистрация: 12.10.2004
Цитата:
Сообщение от Masel Посмотреть сообщение
Очереди к дискам низкие. Если речь про аос, то там вообще минимальный обмен с диском, измеряется килобайтами в секунду.
А вы их внутри виртуалки смотрели ?
Или еще на железяке под которой она крутится?
Старый 14.09.2018, 14:02   #16  
БАХ43 is offline
БАХ43
Участник
 
34 / 33 (2) +++
Регистрация: 15.02.2013
Адрес: г.Москва, г. Зеленоград
Цитата:
Сообщение от Masel Посмотреть сообщение
И еще показывает тормоза после метода super() в inventTrans.insert, inventTrans.update.
Тоже было при завершении транспортировок. Ковырялся долго, нашел такой баг: В классе InventUpd_Financial, в методе updateFinancialIssue есть вызов this.updateInventOnhandFinancialCache(inventTrans);
А в методе updateFinancialReceipt этот вызов проходит с условием if (movement.inventModelType().stdCostBased())
Поставил такое же условие в updateFinancialIssue. Помогло. Но у нас Аксапта заточена только физические проводки, финансовых нет. Поэтому точно не могу сказать - а не поломается ли что-то из-за этого условия.
Ой может не в тему. У нас 2009.
__________________
Я прибыл к вам из Кантемировской дивизии. А там, как известно, дураков не держат!

Последний раз редактировалось БАХ43; 14.09.2018 в 14:05.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: Documentation collection: Inplace upgrade MS Dynamcis AX 2012 RTM --> AX 2012 R2 CU7 Blog bot DAX Blogs 0 22.06.2014 01:19
axsa: MDM Adapter - Extending Dynamics AX 2012 R3 Master Data Management Blog bot DAX Blogs 0 22.05.2014 03:28
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
Dynamics AX Sustained Engineering: Servicing of Dynamics AX 2012 and Dynamics AX 2012 Feature Pack Blog bot DAX Blogs 0 08.05.2012 23:12
dynamics-ax: Interview with Microsoft's Lachlan Cash on his new role, AX 2012 and more Blog bot DAX Blogs 6 22.04.2011 14:55
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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