Странности с памятью.

Автор
Сообщение
На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург

Max 2019, Corona 7 (не думаю, что в ней дело но все же)

Большой экстерьер. Собирается матрешкой - отдельно дворик (довольно увеститый, уникальная растительность, газоны, камушки, люди, детские площадки) подгружается Xref'ом в сцену побольше - квартал, специально оптимизированный под конкретные виды - все лишнее убрано, только то, что потенциально попадает в ракурсы. Там такая же петрушка с растениями и людями (но попроще, в основном все внимание на двор). И наконец все это подгружается так же Xref'ом в общую среду - вся квартальная застройка, так же уже оптимизированная под имеющиеся ракурсы, так как из нужного квартала общая среда тоже видна.

Суть проблемы. Все это дело грузится минут 20-30 (что норм), и жрет после загрузки ~80Gb RAM (128 На борту), если начать рендерить в 4K - худо бедно утаптывается. 6К - корона уже не может. Сбрасывает рендер после третьего пасса вылетев далеко за весь объем памяти, и предлагает рисовать руками :) Conserve memory помогает - но памяти жрет все равно как не в себя.

Однако!!! если дать постоять сцене какое-о время (до пары часов). А лучше, скажем, свернуть Max и открыть Photoshop или Fusion, и поиграться там с чем-то, что умеет подзабить память, и что вынудит Винду выгрузить Max на диск. А затем закрыть все это нафиг и развернуть макс. То случается чудо: Max внезапно занимает до 32 гигов, куча памяти свободно, хотя график загрузки памяти показывает что забито около 50Гигов (но не 80 все же) - что странно так как макс занимает меньше и весь софт оставшийся ну еще скажем гигов 8. Все работает! При смене ракурсов, или перемещении по сцене - в память более ничего не догружается. Все работает идеально, памяти хватает хоть на 12К рендер, Conserve memory не требуется.

Prune сцен не помогает - дело не в этом. Вирусов нет. Спрашивается - что это за фигня такая? Как с этим жить? 

На сайте c 04.06.2010
Сообщений: 3789
Цитата Zava:
если дать постоять сцене какое-о время (до пары часов). А лучше, скажем, свернуть Max и открыть Photoshop или Fusion, и поиграться там с чем-то, что умеет подзабить память, и что вынудит Винду выгрузить Max на диск. А затем закрыть все это нафиг и развернуть макс. То случается чудо... Спрашивается - что это за фигня такая?

Так вы сами всё описали, память выгружается в подкачку или куда-то там во временные.

На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург
Цитата Rebate:
Так вы сами всё описали, память выгружается в подкачку или куда-то там во временные

Я описал симптом. Хотелось бы понять причину такого поведения. Оно ведь потом не подгружается обратно. Т.е это данные которые больше после загрузки сцены не нужны. Ни для работы сцены в максе ни для рендера. Жрёт это памяти немерянно - вплоть до отказа. И сам макс эту память не очищает. По крайней мере не сразу. А спустя довольно продолжительное время или после так сказать хака - принудительно заставить выгрузить все лишнее запустив сторонний софт. Это, не норма. Это мешает делать работу. Тратит время. Я пытаюсь узнать может это баг или есть способ как-то на это повлиять. А так, да, вы правы я описал что происходит)) в этом и вопрос... 

На сайте c 31.03.2011
Сообщений: 9937
Renderfarm

значит сцена плохо оптимизирована в принципе, если она при открытии кушает 80гигов - это уже ненормально даже для гигантской супердетализированной сцены, открытие по 20-30 минут - тоже не норма ни разу

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

На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург
Цитата xpp_nd_ruphus:
значит сцена плохо оптимизирована в принципе, если она при открытии кушает 80гигов - это уже ненормально даже для гигантской супердетализированной сцены, открытие по 20-30 минут - тоже не норма ни разу

Сцена действительно сложная. Но необходимый минимум оптимизаций точно проведен. Даже сверх того. Всё уже и в прокси и скаттерах. Так как дворик не мой - я искал в нем какой-то объект который может все руинить. Но так и не высмотрел. Все прилично выполнено, хотя он конечно самая сложная часть сцены. Было несколько моделей детского оборудование от производителей, с дикой сеткой - я по ней прошелся - причесал. Ничто не помогло. Вернее разница есть, но она вот не то что бы капитальная - т.е. это не причина. Стеки схлопнуты почти везде. В общем, я не первый раз со сложной сценой работаю. Но первый раз вижу такой странный эффект. Допускаю, что и раньше было похожее но просто потребляло чуть меньше и я не придавал значения, а сейчас вот плюс 10 гигов съело и стало прям заметно. Не уверен. Буду искать причину дальше, но время как обычно жмет и так кучу времени убил :) Спасибо за ответ. 

Хотя мне странно, что потом то это все выгружается и не используется. Т.е. как бы ни Макс ни корона не жрут сверх необходимого. По крайней мере уже в процессе работы. Что-то происходит при загрузке и ладно бы. Если бы потом отдало память. Но оно ведь только с боями возвращает - это странно. Янипанимат...

Цитата Slazzo:

Может текстурами засорено, попробуйте выгрузить все текстуры через freeSceneBitmaps() и посмотреть на сколько оно освобождает память, если в этом причина значит пора включить bitmap pager

Интересный совет, между прочим... я не думал об этом, надо попробовать.

Цитата Nickonimus:

Не знаю на счет системы undo в максе, но в блендере иногда память сильно забивается изза функции Global Undo которая держит в памяти копию файла.

Могу предложить попробовать уменьшить количество шагов ундо или поискать причину в этом направлении.

Не это точно не оно. Сцена с нуля грузится - стек Undo пустой. 

На сайте c 08.07.2014
Сообщений: 56
Saint Petersburg
Попробуйте скачать програмку memtest, возможно сбоит одна из плашек памяти. + Попробуйте отключить файл подкачки, с таким объёмом оперативы он не нужен
На сайте c 31.03.2011
Сообщений: 9937
Renderfarm

dark_g при сбойной памяти будет совершенно другой эффект, а именно синий экран смерти при попытке нагрузить сбойный чип памяти

ПС а если память серверная, то там мемтест в принципе бесполезен

файл подкачки нужен с любым объемом памяти и желательно, чтоб он превышал объем оперативки раза в полтора

Zava у проксей тип отображения для вьюпорта проверили? везде боксы стоят? нигде нет фулл меша или облака точек? везде ли снята галка подгрузки в память? это критически влияет на потребление при открытии сцены и на время открытия

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

кстати сцена без иксрефов грузится сильно быстрее, чем с ними, особенно если иксрефов много, я например иксрефы вообще не использую для сцен любого масштаба

ПС если в сцене использован форестпак, и если там стоят коллизии, то надо отключать их отображение во вьюпорте, они памяти жрут просто немеряно для отображения, причем при рендере не кушают почти

На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург
Цитата xpp_nd_ruphus:
Zava у проксей тип отображения для вьюпорта проверили? везде боксы стоят? нигде нет фулл меша или облака точек? везде ли снята галка подгрузки в память? это критически влияет на потребление при открытии сцены и на время открытия кстати сцена без иксрефов грузится сильно быстрее, чем с ними, особенно если иксрефов много, я например иксрефы вообще не использую для сцен любого масштаба

Боксы не на всем, кое где есть облако точек, но мне кажется это может влиять на объем анимаемой сценой памяти, но не на подобное поведение с выгрузкой... Впрочем я это проверю. К сожалению сейчас другой работы навалило, а эта сцена из трех кусков грузится долго, и возни с ней много. Плюс каждый кусок матрешки надо проверить в идеале. В общем похоже с наскоку никто с таким не сталкивался и нужно просто искать, что же именно вызывает такой эффект. Буду смотреть по мере появления времени. Сейчас хочу проверить идею Slazzo о битмапах - их точно дофига, это выглядит возможным вариантом. Отпишусь как проверю.

На сайте c 31.03.2011
Сообщений: 9937
Renderfarm

Zava еще вспомнил один случай, тоже сцена жрала нереально много и грузилась по полчаса, там была проблема в том, что вьюпорт пытался отобразить композиты максовские, как только отключил полностью отображение материалов, сцена сала грузиться за 5 минут и потребление при открытии сокралилось раза в 4

с проблемными сценами в работе оч часто сталкиваюсь

На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург

freeSceneBitmaps() выгрузил всего ничего. Похоже не в этом дело.

Есть все таки подозрения, что это может быть корона седьмая...В ней появилась система параллельной загрузки своих ресурсов (битмапов, проксей и т.п.) и более того загрузка их уже после открытия сцены. Допускаю что вот где-то тут могло пойти что-то не так. Учитывая, что проксей много - это может быть причиной... Как это проверить пока не знаю. Надо корону менять - не до этого. Пока выходит так, что после того как сцена открылась нужно просто подождать. Отвлечься на другие задачи или позависать на форуме. Как раз за пол-часика винда уйдет в Idle и начнет выгружать все, что не приколочено. 

На сайте c 31.03.2011
Сообщений: 9937
Renderfarm

Zava вообще никакой разницы после установки 7ки не заметил по потреблению именно сценой.

попробуйте сделать следующее, после этого сохранить сцену, закрыть макс и открыть заново сцену

На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург

Интересный факт. Есть аналогичная сцена, с этим же двориком. Даже сам дворик потяжелее немного втом варианте. Она открывается на машине с 64 гигами. И рендерится. Но когда я ЭТУ же сцену открываю на своей со 128 - она сжирает все теже 80-90 Гб Рам :D Грубо - что дают - все забирает. Н и в целом ведет себя точно так же. Т.е. такое ощущение что памяти для работы ей реально надо гораздо меньше. Но при открытии - берет все что есть. И потом долго отдает ненужное. 

Цитата xpp_nd_ruphus:
попробуйте сделать следующее, после этого сохранить сцену, закрыть макс и открыть заново сцену

Спасибо, сейчас попробую.

На сайте c 31.03.2011
Сообщений: 9937
Renderfarm
Zava помогло?
На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург
Цитата xpp_nd_ruphus:
Zava помогло?

Это как минимум хорошо бустит вьюпорт. Хороший метод. Я обычно на Clay переходил. Мне понравился ваш вариант. Но на памяти это кажется не особо сказалось ))) Я еще тестирую. Матрешка все таки толстая. Пока туда сюда по цепочке это все подгрузишь, проверишь прокси, что бы два раза не грузить =) 

Сейчас после всех манипуляций и проверок сцена съедает 75 гигов. ~10-15 гигов отвоевали. На самом деле это очень хорошо. Но явно это все не та причина. 

Но всем спасибо за советы! Продолжу искать

На сайте c 17.10.2018
Сообщений: 131
Zava - Может  ( банально но все же) через Prune scene  все проверить ?
На сайте c 26.08.2010
Сообщений: 953
Санкт-Петербург

Цитата Alex Vizual:
Zava - Может  ( банально но все же) через Prune scene  все проверить ?

Уже ))) Только больше сожрал в моменте

На деле кажется пока ничего все таки не помогло. То что выше я писал - это то ли какая-то погрешность, то ли пока я соображал - он уже выгрузил кусок. Модели людей в сцене не в прокси - но они столько жрать не могут. Я включил им отображение коробками - ну это еще ускорило вьюпорт слегка, но с этим больших проблем как раз не было. 

Да и опять же дело не в том, что много жрет, а в том что как раз на самом-то деле жрет не много. Но не сразу. А сразу много... и не отдает. Это какой-то очень странный косяк. И хрен бы с ним если бы ну сожрал при загрузке и отдал как только загрузил. Так в том-то и дело что нет. Пока не дашь отстояться не отдает ирод. А пока работаешь со сценой - так и держит. Т.е. еще и не сразу допетришь пока случайно не оставишь сцену постоять на обед или на ночь...

Читают эту тему: