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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.08.2007, 17:54   #1  
Oleg V.Cat is offline
Oleg V.Cat
Участник
 
21 / 10 (1) +
Регистрация: 21.06.2007
MaxMemPercentage - чегой-то я не понимаю
Имеет место быть Axapta V3.0 KR3 SP4.0

Так вот, было на машине с AOS 2 гига памяти. Иногда начинала ругаться MaxMemPercentage (50) reached. (скушав аккурат гигабайт памяти) После чего новых клиентов пускать переставала...

1) Поставили MaxMemPercentage=75. Ругаться (на MaxMemPercentage) перестала, зато по сжирании этого же гигабайта стала падать с неясной диагностикой...

2) Добили память до трех гиг, MaxMemPercentage убрали... и что я вижу сегодня? MaxMemPercentage (50) reached. [...] Current virtual memory usage 1,126,096,896. Смотрю на таск менеджер, так и есть ~1,095,nnn KB max, где-то гигабайт свободной ОЗУ.

"И что, собственно, с этим делать?"
Старый 28.08.2007, 01:50   #2  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Цитата:
Сообщение от Oleg V.Cat Посмотреть сообщение
Добили память до трех гиг, MaxMemPercentage убрали... и что я вижу сегодня? MaxMemPercentage (50) reached. [...] Current virtual memory usage 1,126,096,896. Смотрю на таск менеджер, так и есть ~1,095,nnn KB max, где-то гигабайт свободной ОЗУ.
"И что, собственно, с этим делать?"
/3Gb в boot.ini присутствует?
__________________
-ТСЯ или -ТЬСЯ ?
Старый 28.08.2007, 08:35   #3  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Вот цитата из одной умной книги, там про SQL речь ведется
Цитата:
A 32-bit machine can directly address only 4 GB of memory, and by default, Windows itself reserves the top 2 GB of address space for its own use, which leaves only 2 GB as the maximum size of the VAS for any application, such as SQL Server. You can increase this by enabling a /3GB flag in the system's Boot.ini file, which allows applications to have a VAS of up to 3 GB. If your system has more than 3GB of RAM, the only way a 32-bit machine can get to it is by enabling AWE. One benefit in SQL Server 2005 of using AWE, is that memory pages allocated through the AWE mechanism are considered locked pages and can never be swapped out.
Старый 28.08.2007, 13:14   #4  
Oleg V.Cat is offline
Oleg V.Cat
Участник
 
21 / 10 (1) +
Регистрация: 21.06.2007
Цитата:
Сообщение от Vadik Посмотреть сообщение
/3Gb в boot.ini присутствует?
Нет. Спасибо, поставил, будем ждать результатов...
Старый 28.08.2007, 21:20   #5  
vesna dba is offline
vesna dba
Участник
 
147 / 16 (1) ++
Регистрация: 16.02.2007
Цитата:
Сообщение от Vadik Посмотреть сообщение
/3Gb в boot.ini присутствует?
Ключ /3GB используется если на машине не менее 4GB RAM.
Делит первое окно в 4GB как 3GB под пользовательские процессы и 1 GB под системные (иначе без ключа делится как 2GB\2GB(имеется в виду адресное пространство, а как это реализуется на физическую память? - наверно в процентном соотношении - 50%\50%)).

На машине с 3GB ключ /3GB либо не будет работать, либо получите до кучи глюки Windows.
__________________
Axapta 3.0 CIS SP3 CU1
---
Народу собралось - яблоку плюнуть негде!

Последний раз редактировалось vesna dba; 28.08.2007 в 21:38.
Старый 28.08.2007, 21:21   #6  
vesna dba is offline
vesna dba
Участник
 
147 / 16 (1) ++
Регистрация: 16.02.2007
Цитата:
Сообщение от MikeR Посмотреть сообщение
Вот цитата из одной умной книги, там про SQL речь ведется
Не в тему.
Автор об АОСе говорит.
__________________
Axapta 3.0 CIS SP3 CU1
---
Народу собралось - яблоку плюнуть негде!
Старый 28.08.2007, 21:45   #7  
vesna dba is offline
vesna dba
Участник
 
147 / 16 (1) ++
Регистрация: 16.02.2007
Oleg, может проблема в другом? и вы получаете ошибки памяти как следствие чего то другого.
Мониторьте, счетчики производительности.
Если хотите поиграться с добиванием памяти, то добейте уж до 4GB, тогда ключ /3GB будет работать - позволит пользовательским процессам (в частности АОСу) откушать у системы до 3GB памяти.
__________________
Axapta 3.0 CIS SP3 CU1
---
Народу собралось - яблоку плюнуть негде!
Старый 28.08.2007, 22:04   #8  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Цитата:
Сообщение от vesna dba Посмотреть сообщение
Не в тему.
Автор об АОСе говорит.
Если не лень было почитать, то там и говориться как раз про распределение памяти между Windows и приложениями, а все о чем пишешь оттуда и следует.
Старый 29.08.2007, 19:59   #9  
vesna dba is offline
vesna dba
Участник
 
147 / 16 (1) ++
Регистрация: 16.02.2007
Цитата:
Сообщение от MikeR Посмотреть сообщение
Если не лень было почитать, то там и говориться как раз про распределение памяти между Windows и приложениями, а все о чем пишешь оттуда и следует.
Читать полностью было лень..
Замечание принимается.
__________________
Axapta 3.0 CIS SP3 CU1
---
Народу собралось - яблоку плюнуть негде!
Старый 11.09.2007, 16:49   #10  
Oleg V.Cat is offline
Oleg V.Cat
Участник
 
21 / 10 (1) +
Регистрация: 21.06.2007
Цитата:
Сообщение от vesna dba Посмотреть сообщение
Ключ /3GB используется если на машине не менее 4GB RAM.
На машине с 3GB ключ /3GB либо не будет работать, либо получите до кучи глюки Windows.
Подтверждаю . То е. "кое-как" он опять сработал, по съедению 1GB памяти AOS рухнул, но без жалоб на память (ругался на ODBC).
Старый 11.09.2007, 20:34   #11  
vesna dba is offline
vesna dba
Участник
 
147 / 16 (1) ++
Регистрация: 16.02.2007
Цитата:
Сообщение от Oleg V.Cat Посмотреть сообщение
Подтверждаю . То е. "кое-как" он опять сработал, по съедению 1GB памяти AOS рухнул, но без жалоб на память (ругался на ODBC).
А поставьте MaxMemPercentage=20. И проверьте, будет ли падеж при более меньшей загрузке памяти. Если нет , то возможно всетаки MaxMemPercentage тут нипричем.
__________________
Axapta 3.0 CIS SP3 CU1
---
Народу собралось - яблоку плюнуть негде!
Старый 13.09.2007, 10:15   #12  
Kozerog is offline
Kozerog
Участник
 
45 / 12 (1) ++
Регистрация: 22.05.2006
У нас абсолютно такая же ситуация - 1 GB и нужен рестарт АОС-а.
Старый 13.09.2007, 18:27   #13  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Было.
Вопрос мной поднимался ссылка на тему и совет сегодня уже давал ссылка на другую тему
К сказанному в ветке хочу добавить: параметры Connection -> Number of retries, Retry delay рекомендую установить по умолчанию (т.е. очистить). Потому как с установленными Number of retries, Retry delay у меня после перезапуска АОС с вероятностью 50/50 Аксапта либо "тормозила", либо работала нормально. Сейчас (параметры пустые) после рестарта всегда все ок.

В общем то большей стабильности АОС добился вариацией параметров buffer size и array fetch ahead. Создалось такое впечатление что у процесса AOC действительно что-то не в порядке после превышения 1 Gb (а может проблема SmartHeap)
На данный момент АОС у меня не превышает 1Gb (порядка 900 Кил держится) и достаточно стабильно. На серваке стоит 2Gb памяти, никаких ключиков /3Gb не надо.


PS: ну и опять же http://forum.mazzy.ru/index.php?showtopic=584
PPS: повторюсь:
Интересно было бы узнать у участников (интересно для разных сервиспаков):
1) параместы настройки АОС : Database
2) какой пик захвата памяти вашего АОСа?
3) присутствуют ли мертвые хендлы (хендлы thead <Non-existent Process>(1024): 2500, хендлы file C:\Temp\$tmp00130001.$$$)
4) как стабильно работает АОС (среднее время работы в днях до слета/глюка если такое имеется)?
__________________
--- SHiSHok

Последний раз редактировалось SHiSHok; 13.09.2007 в 23:30.
Старый 13.09.2007, 21:19   #14  
vesna dba is offline
vesna dba
Участник
 
147 / 16 (1) ++
Регистрация: 16.02.2007
Цитата:
1) параместы настройки АОС : Database
Название: aosdb.JPG
Просмотров: 345

Размер: 58.2 Кб
Цитата:
2) какой пик захвата памяти вашего АОСа?
до 900Мб из 2Гб имеющихся на сервере
Цитата:
3) присутствуют ли мертвые хендлы (хендлы thead <Non-existent Process>(1024): 2500, хендлы file C:\Temp\$tmp00130001.$$$)
Нет, не присутствуют.
Цитата:
4) как стабильно работает АОС (среднее время работы в днях до слета/глюка если такое имеется)?
Сбои в основном отсутствуют.
Рестарт АОСа в основном только при некорректном вмешательстве программистов в работу системы (например при внесении модификаций), иногда массовая проблема с кэшем (опять же грешу на опрограммеров (разработки\модификации ведутся постоянно)). Ну, бывает схлестнутся еще пара длительных блокировочек, так что кроме рестарта АОСа ничто не помогает.
Среднее время - 5-6 дней.
Для профилактики мертвых сессий пользователей в АОСе практикую еженедельный автоматич. "мягкий" рестарт АОСа.
--
З.Ы. Я вот никак не могу добиться чтобы АОС съедал больше 850-900Мб.
Пользователей одновр. работающих ~70, АОС - один.
__________________
Axapta 3.0 CIS SP3 CU1
---
Народу собралось - яблоку плюнуть негде!

Последний раз редактировалось vesna dba; 13.09.2007 в 21:27. Причина: расстановка точек над i :)
Старый 14.09.2007, 00:00   #15  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
Цитата:
Сообщение от vesna dba Посмотреть сообщение
Ну, бывает схлестнутся еще пара длительных блокировочек, так что кроме рестарта АОСа ничто не помогает.
блокировочки хорошо разводятся в сиквеле, не вижу смысла АОС перегружать.

Цитата:
Сообщение от vesna dba Посмотреть сообщение
Для профилактики мертвых сессий пользователей в АОСе практикую еженедельный автоматич. "мягкий" рестарт АОСа.
полезная практика, особенно при круглосуточной работе. Проблем с заятжкой мелких модификаций на лету небыло (отчеты, некритичные куски кода, что то новое) но стараемся избегать подобной практики. Все крупное затягивается на выходных с дальнейшей перезагрузкой АОС.

Цитата:
Сообщение от vesna dba Посмотреть сообщение
З.Ы. Я вот никак не могу добиться чтобы АОС съедал больше 850-900Мб.
Пользователей одновр. работающих ~70, АОС - один.
может попробовать: поставить Leave connection running when idle , buffer size побольше - 128 или еще поболее. Хотя думаю еще многое завист от релиза АОС и разнообразия используемого функционала.
__________________
--- SHiSHok
Старый 14.09.2007, 18:22   #16  
SHiSHok is offline
SHiSHok
Участник
Аватар для SHiSHok
Дети Юза
 
219 / 103 (4) +++++
Регистрация: 28.07.2005
Адрес: Донецк
1)
2) захват памяти до 900Мб (2Gb физической)
3) присутствуют непонятные "мертвые" хендлы: thead <Non-existent Process>(1024): 2500 (смотрю ProcessExplorer by Mark Russinovich нынче Мелкософт)
4) АОС фактически не падает (забыл уже когда были такие случаи по средь бела дня), на выходных, опять же, перезапускаем для профилактики зависших сессий + затяжка проектов.
__________________
--- SHiSHok
Старый 18.09.2007, 16:24   #17  
Oleg V.Cat is offline
Oleg V.Cat
Участник
 
21 / 10 (1) +
Регистрация: 21.06.2007
Цитата:
Сообщение от SHiSHok Посмотреть сообщение
Интересно было бы узнать у участников (интересно для разных сервиспаков):
1) параместы настройки АОС : Database
buffer size - 512, Open cursors 2000. меньше нельзя. Разработчики

Цитата:
Сообщение от SHiSHok Посмотреть сообщение
2) какой пик захвата памяти вашего АОСа?
1 GB и покойник

Цитата:
Сообщение от SHiSHok Посмотреть сообщение
3) присутствуют ли мертвые хендлы (хендлы thead <Non-existent Process>(1024): 2500, хендлы file C:\Temp\$tmp00130001.$$$)
Нет.

Цитата:
Сообщение от SHiSHok Посмотреть сообщение
4) как стабильно работает АОС (среднее время работы в днях до слета/глюка если такое имеется)?
~неделя-две. 30% - "память кончилась". 50% - базу блокирует процесс от "непоймикакого пользователя". При попытке разрулить конфликт со стороны DB (MS-SQL) - процесс пытается сделать rollback, после чего AOS с невразумительным писком валится. 20% - неопределенно.

Пользователей активнопостоянных - ~30.
Старый 29.10.2007, 17:23   #18  
Oleg V.Cat is offline
Oleg V.Cat
Участник
 
21 / 10 (1) +
Регистрация: 21.06.2007
AOS больше 1 GB брать таки не умеет...
В общем - воткнули мы в машину с AOS _8_ гиг памяти. Результаты - что с /3GB в boot.ini, что без, что с любым MaxMemPercentage - как только отжирается гигабайт памяти - AOS-у приходят кранты. Если MaxMemPercentage не стоит - вежливые (50 процентов пришло, типа). Если стоит - неясно-задумчивые....

Да, я знаю, что WinSrv2003 Std больше четырех не умеет, а толку...
Старый 31.10.2007, 01:03   #19  
gl00mie is offline
gl00mie
Участник
MCBMSS
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,684 / 5798 (201) ++++++++++
Регистрация: 28.11.2005
Адрес: Москва
Записей в блоге: 3
Странно это все... Сейчас посмотрел на примере KR2, как вообще это ограничение работает, и получается примерно вот что.
  • AOS читает строковый параметр MaxMemPercentage из реестра, переводит в число, проверяет, чтоб оно не было больше 100, и прописывает себе в переменную, где по умолчанию значится 50.
  • При попытке нового клиента подключиться к AOS последний сначала выполняет проверку на то, не достигнут ли максимальный уровень использования ресурсов, т.е. количество одновременных подключений и размер используемой памяти.
    • Максимальное число подключений проверяется очень просто: у AOS'а есть счетчик, который он увеличивает/уменьшает на 1 с помощью функций InterlockedIncrement/InterlockedDecrement при каждом открытии и, соотв., закрытии нового соединения. Это значение сравнивается с переменной, которая по умолчанию равна 100 и может меняться через настройки в реестре. При превышении ее значения выводится соотв. сообщение в EventLog.
    • Максимальный объем используемой памяти проверяется следующим образом. По собственному дескриптору процесса AOS с помощью фунции GetProcessMemoryInfo() получает данные в виде структуры PROCESS_MEMORY_COUNTERS. В этой структуре он сравнивает поле QuotaPagedPoolUsage со значением своей переменной - максимального процента используемой памяти, - умноженной на 21474836 (т.е. в теории AOS расчитывает "потребить" до 2Gb из нерезидентного пула памяти). Если значение QuotaPagedPoolUsage больше, то выводится сообщение в EventLog, где для информации почему-то указывается QuotaNonPagedPoolUsage, т.е. текущий объем использованного резидентного пула памяти.
  • Eсли один из пределов достигнут, то новое подключение закрывается, и в EventLog опять же выводится сообщение о том, что по этой причине попытка подключения была отклонена.
Так вот, что у вас AOS пишет в EventLog? И, главное, вы уверены, что параметр MaxMemPercentage у вас для AOS'а прописан в реестре в нужной конфигурации и именно как строка - REG_SZ (об этом говорится в документации)?

Возможно, конечно, что воду мутит SmartHeap - надо будет отдельно проверить, как она по умолчанию настраивается AOS'ом.
Старый 31.10.2007, 05:58   #20  
fed is offline
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,909 / 5730 (197) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
to gl00mie: В старину (кажется до версии 2.5Sp5) со smartheapом была следующая история: Почему-то он не давал использовать под переменные и буфера приложения всю свободную память. После того как у нас на одном проекте стало не хватать памяти для разноски большого журнала, из датского MBSа пришел кусочек кода, который сейчас лежит в Global::SmartHeapSizeUp(), с инструкцией "Запускать после запуска, перед какими-то глобальными операциями. Когда я стал разбираться с этим куском кода (я там всего не понял целиком - если честно) возникла примерно такая гипотеза - SmartHeap захватывает память у операционной системы кусками, которые называются в его терминологии страницами. (Это точно - я в хелпе по smartHeap проверил). Размер таблицы этих страниц, похоже что,ограничен какой-то константой. (Вот это уже мое предположение) Из за того что дефолтный размер страницы был небольшим, возникала ситуация при которой smartHeap просто не мог захватить нужный размер памяти. Функция smartHeapMemorySizeUp занимается как раз увеличением размера страницы до подходящего значения - чтобы на всю память таблицы хватило.

В начале этой страницы стоит не до конца мне понятный код, который рассчитывает число страниц на основании информации о физической памяти на компе. При этом он ОГРАНИЧИВАЕТ объем используемой памяти. То есть - там при рассчете стоит функция min() которая берет минимальное значение между объемом памяти в мегабайтах помноженным на 32 и 32768.

Смысл магического числа 32768 мне не совсем понятен. Есть подозрение, что если его заменить, например на 65536, то размер памяти, используемой системой - увеличится.
Хотя с другой стороны - есть шансы что это число там стоит не просто так и если его увеличить, что-нибудь в распределении памяти сломается.

Последний раз редактировалось fed; 31.10.2007 в 06:01.
Теги
ax3.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Рассылка писем в CRM: bug или я чего не понимаю? Alex2003 DAX: Программирование 2 18.06.2008 10:18
Ошибка в методе или я что-то не понимаю ? egorych DAX: Программирование 7 05.06.2008 15:02
Глюк orig() в 3-tier или я чего-то не понимаю? olesh DAX: Программирование 2 26.07.2007 13:09
не понимаю View Oleksandr DAX: Программирование 2 04.04.2007 11:32
Пробежался отладчиком по СВОДНОМУ планированию и ......... НЕ ПОНИМАЮ :( director DAX: Функционал 5 01.02.2006 14:05

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

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

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