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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.02.2015, 14:30   #1  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5813 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Цитата:
Сообщение от Kabardian Посмотреть сообщение
На виртуальной машине (5GB оперативной) установлена AX 2012 R3 CU8, компиляция длилась около 9-10 часов с 6 сессиями
Памяти маловато для 2012 R3, те же перекрестные ссылки, думаю, могут вообще не построиться.
Цитата:
Сообщение от Kabardian Посмотреть сообщение
последние 1-2 часа компиляция шла крайне медленно и загрузка CPU снизилась до 0, только SQL грузил процессор на 25%. В итоге, на 4-м проходе, в одной из сессий появилась ошибка: Cannot execute a stored procedure. Deadlock, where one or more users have simultaneously locked the whoe table or part of it.
Надо оптимизировать использование памяти. Во-первых, может, это и очевидно, но все же: на время компиляции с использованием AXBuild имеет смысл останавливать службу AOS. Она для мгногопоточной компиляции абсолютно не нужна - только память впустую отжирает. Затем надо умерить аппетиты SQL Server, выставив ему maximum server memory в какое-нить вменяемое значение (скажем, 1 Гб), и, вероятно, отключить эскалацию блокировок. Это - опасный шаг, который может приводить к ошибкам при выполнении запросов, если окажется, что для запроса нужна блокировка, а памяти на нее у SQL Server уже не осталось, но в данном случае стоит рискнуть. См. также
SQL Server Trace Flags for Dynamics AX
SQL Server Lock Escalation and Blocking
В-третьих, надо очень аккуратно рассчитывать число потоков компиляции исходя из доступной памяти. По моим наблюдениям, на 2-м проходе AOS'ы, выполняющие компиляцию, отъедают чуть больше 0.5 Гб private working set, причем чем их меньше, тем больше памяти потребляет каждый. Таким образом, для 6-и потоков должно быть доступно как минимум 3 Гб, а если на виртуалку отведено всего 5, при этом их делят винды, SQL Server и AOS'ы, то нужно явно ограничивать хотелки SQL Server, чтобы 6 AOS'ов могли нормально доработать. Иначе они начнут отваливаться из-за недостатка памяти, AXBuild начнет ругаться, что у него отваливаются "ноги" (legs) и в итоге компиляция преждевременно завершится с ошибкой.
В общем, я бы лично попробовал выделить виртуалке, скажем, 6-6.5 Гб из 8-и доступных (если компиляция идет на ноуте с 8 Гб памяти) - хотя бы на время компиляции.
За это сообщение автора поблагодарили: Logger (3), alex55 (1), Kabardian (2).
Теги
ax2012r3, axbuild.exe, compilation

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
emeadaxsupport: AX Performance Troubleshooting Checklist Part 2 Blog bot DAX Blogs 0 09.09.2014 16:11
DAX: A Shift to Effective Demand Forecasting With Microsoft Dynamics AX 2012 R3 Blog bot DAX Blogs 0 16.11.2013 02:13
X++: X++ Arrays Behave Differently in .NET CIL, in Dynamics AX 2012 Blog bot DAX Blogs 0 17.09.2012 23:11
ax-erp: Creating SSRS-Reports in Dynamics AX 2012 – What’s no longer possible in AX-reports Blog bot DAX Blogs 0 18.07.2012 12:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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