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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.10.2006, 11:18   #1  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
А построение перекрестных ссылок опять сожрет всю память и завесит систему нафих
Mazzy: Выделено отсюда: Microsoft Dynamics AX 4.0: Результаты тестирования производительности

Угу... А построение перекрестных ссылок опять сожрет всю память и завесит систему нафих
Старый 02.10.2006, 11:23   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Alex_K Посмотреть сообщение
Угу... А построение перекрестных ссылок опять сожрет всю память и завесит систему нафих
Перекрестные ссылки в 4ой международной Аксапте весят 2.5 гига.
Построенные перекрестные ссылки не мешают работе.

Построение перекрестных ссылок лучше не делать на сервере.
Построение перекрестных ссылок лучше не делать в период, когда нагрузка близка к максимальной.
__________________
полезное на axForum, github, vk, coub.
За это сообщение автора поблагодарили: alex55 (1).
Старый 02.10.2006, 11:48   #3  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
Цитата:
Сообщение от mazzy Посмотреть сообщение
Построение перекрестных ссылок лучше не делать на сервере.
Построение перекрестных ссылок лучше не делать в период, когда нагрузка близка к максимальной.
Ну не знаю... Ноутбук с 2G памяти впал в полный ступор, вывести из которого удалось только с помощью кнопки выключения питания, после нескольких часов работы по перестройке перекрестных ссылок. Само собой, больше ничем он в это время не занимался. Хотя, конечно, и был сам себе сервером.
Старый 02.10.2006, 11:51   #4  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Построение перекрестных ссылок лучше не делать на сервере.
Построение перекрестных ссылок лучше не делать в период, когда нагрузка близка к максимальной.
Построение перекрестных ссылок дучше делать частями, а не всем скопом сразу. Например, сначала классы, потом таблицы, потом формы и т.д. В этом случае, меньше вероятность, что системе не хватит оперативной памяти и начнется работа со свопом.
Старый 02.10.2006, 11:52   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Alex_K Посмотреть сообщение
Ноутбук с 2G памяти впал в полный ступор, вывести из которого удалось только с помощью кнопки выключения питания, после нескольких часов работы по перестройке перекрестных ссылок. Само собой, больше ничем он в это время не занимался. Хотя, конечно, и был сам себе сервером.
Странно. У меня построил сравнительно быстро.

Скорее всего, у вас SQL2005 и скорее всего настроено автоувеличение базы (autogrowth) на 1Мб (это параметры по умолчанию).
Если так, то извините... Думать же надо.
Еще раз: размер перекрестных ссылок - около 2.5 Гб.
До построения перекрестных ссылок задайте соответствующий размер базы, или переключите autogrowth хотя бы на 10%.
__________________
полезное на axForum, github, vk, coub.
Старый 02.10.2006, 11:55   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Андре Посмотреть сообщение
Построение перекрестных ссылок дучше делать частями, а не всем скопом сразу. Например, сначала классы, потом таблицы, потом формы и т.д. В этом случае, меньше вероятность, что системе не хватит оперативной памяти и начнется работа со свопом.
На самом деле, пользоваться этим советом стоит с осторожностью.
Особенно новичкам.

Утечку памяти, похоже, победили. Тьфу-тьфу-тьфу.
Посмотрим, что будет в 4.0.1, на которой будет основана русская версия.
__________________
полезное на axForum, github, vk, coub.
Старый 02.10.2006, 12:29   #7  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
Да, параметры SQL-сервера я действительно не менял, впредь буду думать
Но процесс встрял именно из-за того, что съел всю виртуальную память.
Кстати, это и была Preview русской версии...
Старый 02.10.2006, 12:37   #8  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Alex_K Посмотреть сообщение
Кстати, это и была Preview русской версии...
Спасибо.
А билд ядра какой?
__________________
полезное на axForum, github, vk, coub.
Старый 02.10.2006, 13:27   #9  
Alex_K is offline
Alex_K
Участник
 
531 / 36 (3) +++
Регистрация: 07.02.2003
2103.
Российская функциональность пока накатывается ручным копированием слоёв gls и los.
Старый 02.10.2006, 14:16   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от Alex_K Посмотреть сообщение
2103.
Спасибо.
Если у вас есть возможность и желание, то попробуйте выпросить более старший билд.
Решилась ли проблема в новом билде?
У не ставил себе этот. В старых и в более новых Аксапта виртуальную память не жрала, насколько я помню...

И еще. У вас установки своп-файла какие?
Я всегда устанавливаю фиксированный размер, равный оперативной памяти.
А у вас как?
Изображения
 
__________________
полезное на axForum, github, vk, coub.
Старый 27.12.2006, 18:58   #11  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от mazzy
...
Перекрестные ссылки в 4ой международной Аксапте весят 2.5 гига.
...
Правда, чтоли?

В русской 4.0 сп1 у меня примерно так
name.........................rows............reserved....data..........index_size...unused
XREFREFERENCES...4 381 547....913 320.....365 136....547 920.......264
XREFPATHS...............580 314......272 848.....157 600....115 112.......136
XREFNAMES..............361 057......83 800.......42 784......40 840.........176

Т.е. примерно 1.25 Гб.

А то я уже было испугался.

Их что, стало меньше?

А насчет ступора... у меня клиент выжрал 1.5 Гб виртуальной памяти примерно. Но не сдох. По его словам процесс обновления занял 3:45. Потом по моей команде он закрывался. Долго и мучительно :-)

Комуто удалось достичь ощутимо более оптимальных результатов? Есть к чему стремиться, так сказать?

А вообще на трешке перекрестные ссылки хоть и весили поменьше, но строились существенно быстрее. Будем надеяться, что функционал стал работать быстрее, как пишут некоторые :-)
__________________
С уважением,
glibs®
Старый 03.09.2009, 17:22   #12  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от Андре Посмотреть сообщение
Построение перекрестных ссылок дучше делать частями, а не всем скопом сразу. Например, сначала классы, потом таблицы, потом формы и т.д. В этом случае, меньше вероятность, что системе не хватит оперативной памяти и начнется работа со свопом.
Дополню, что также можно обновлять только ссылки определенного слоя, отфильтровав по utilLevel и поставив флажок "Выбрано" перед запуском - может быть полезно для получения актуального состояния для текущих разработок на верхнем слое, например usr. Соответственно время обновления и требования к памяти гораздо меньше, в соответствии с размером выбранного слоя/слоев.
Старый 03.09.2009, 22:15   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от alex55 Посмотреть сообщение
Дополню, что также можно обновлять только ссылки определенного слоя, отфильтровав по utilLevel и поставив флажок "Выбрано" перед запуском - может быть полезно для получения актуального состояния для текущих разработок на верхнем слое, например usr. Соответственно время обновления и требования к памяти гораздо меньше, в соответствии с размером выбранного слоя/слоев.
Хе... А Вы так пробовали делать?
Вариант 1. Первый раз строим все ссылки, затем обновляем только по слою.
Эффект 1. Если мне не изменяет память (т.к. быстро отказался от этого варианта) - то не обновляются ссылки на использование объектов с других слоев. Т.е. если мы, к примеру в коде на usr-слое использовали InventTable, то перекрестные ссылки по InventTable об этом ничего не скажут.
Эффект 2. Будет задвоение (неоднократно видел собственными глазами). Т.е. в форме "Чем используется" каждая запись будет задвоена, затроена и т.д. для каждого построения ссылок.

Вариант 2. Ставим галочку "Удалить все". Но это удаляет ВСЕ записи - т.о. мы имеем ссылки только по usr-слою без sys и прочих слоев. Но в этом случае нет задвоения. Наблюдается ли эффект 1 - точно не помню - уж больно проверить все это временнозатратно.

На ноуте надо ограничивать память для SQL Server либо строить ссылки не на ноуте, а затем переливать таблички Xref*. Самый удобный на мой взгляд вариант - регулярный запуск на сервере построения ссылок ночью (ярлычок с axc-шником с параметром автозапуска compileAll_+). При этом еще для ускорения можно выполнить truncate для xRef*-таблиц до построения ссылок.
Плюс - уровень компилятора д.б. не больше 3 (а то и 2) - иначе может не хватить памяти для формирования лога
__________________
Возможно сделать все. Вопрос времени
Старый 04.09.2009, 16:58   #14  
alex55 is offline
alex55
MCTS
MCBMSS
 
224 / 145 (5) +++++
Регистрация: 13.02.2007
Адрес: Москва
Цитата:
Сообщение от sukhanchik Посмотреть сообщение
Хе... А Вы так пробовали делать?
Вариант 1. Первый раз строим все ссылки, затем обновляем только по слою.
Эффект 1. Если мне не изменяет память (т.к. быстро отказался от этого варианта) - то не обновляются ссылки на использование объектов с других слоев. Т.е. если мы, к примеру в коде на usr-слое использовали InventTable, то перекрестные ссылки по InventTable об этом ничего не скажут.
Эффект 2. Будет задвоение (неоднократно видел собственными глазами). Т.е. в форме "Чем используется" каждая запись будет задвоена, затроена и т.д. для каждого построения ссылок.

Вариант 2. Ставим галочку "Удалить все". Но это удаляет ВСЕ записи - т.о. мы имеем ссылки только по usr-слою без sys и прочих слоев. Но в этом случае нет задвоения. Наблюдается ли эффект 1 - точно не помню - уж больно проверить все это временнозатратно.
...
Плюс - уровень компилятора д.б. не больше 3 (а то и 2) - иначе может не хватить памяти для формирования лога
Пробовал, но пока еще изучаю на предмет подводных камней.

Проверил описанные эффекты на DAX 4.0 SP2:
Вариант 1.
Эффект 1: Не проявился. После обновления ссылка на InventTable появилась. Если я правильно понимаю, то при обновлении ссылок для объекта, мы получаем записи по всем объектам на которые он ссылается. Соответственно обновлять ссылки на объекты с нижележащих слоев, чтобы узнать какие объекты на них ссылаются, не нужно.

Эффект 2. Задвоения пока не обнаружил, хотя поведение системы мне не очень понятно. На скриншоте показано изменение кол-ва записей в таблицах при последовательном обновлении ссылок на usr без изменения объектов. То есть после 7-ой итерации кол-во записей не меняется, а на промежуточных итерациях меняется по странному алгоритму.

Кстати, а что за лог, связанный с уровнем диагностики компилятора? Мне казалось что при обновлении ПС вывод диагностики не производится..
Миниатюры
Нажмите на изображение для увеличения
Название: XRefGenTest.GIF
Просмотров: 374
Размер:	7.8 Кб
ID:	5097  
Старый 04.09.2009, 19:42   #15  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,325 / 3548 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
При запуске из командной строки с параметром compileAll_+ производится построение ссылок вместе с перекомпиляцией, и соотв выводится лог ошибок компиляции. Просто в зависимости от уровня компилятора туда могут попасть ошибки, предупреждения, TODO-шки, информация о Best Practice. Лог сохраняется в папке LogDir (см конфиг файл). Чем больше туда попадает информации - тем больше кушается оперативная память.

По поводу Эффекта 1 - я этого тоже вроде не наблюдал - но мне как-то сказали "авторитетные" люди - а я не проверял. Возможно это и не наблюдается - просто уже не помню.
По поводу Эффекта 2 - скажу лишь - что все это я наблюдал на 3.0 SP2 и SP3 CU1 + ядрах от KR1 до KR3. На 4.0 SP2 мы как-то сразу решили запускать построение ссылок каждую ночь, после чего проблем не наблюдали, но иногда (не всегда) - замечали, что ссылки на некоторые объекты не были обновлены (это тоже не сразу замечаешь). Truncate Table Xref* (т.е. очистка таблиц) перед построением ссылок решило эту проблему и ссылки стали строиться гарантированно полно.
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 04.09.2009 в 19:44.
Старый 04.09.2009, 22:00   #16  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Задвоение перекрёстных ссылок
За это сообщение автора поблагодарили: sukhanchik (4).
Теги
перекрестные ссылки, ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Задвоение перекрёстных ссылок miklenew DAX: Программирование 0 23.05.2008 15:59
Построение перекрёстных ссылок Paul_ST DAX: Администрирование 6 24.12.2007 14:22
После перестроения перекрестных ссылок начинает жутко тормозить Add-Ins MironovI DAX: Программирование 4 27.09.2007 13:46
Обновление перекрестных ссылок ест память Sada DAX: Программирование 22 11.10.2006 18:22
Еще раз о проблеме индексации перекрестных ссылок (SmartHeap Error) polygris DAX: Администрирование 1 13.10.2005 11:57

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 20:46.