27.08.2007, 17:54 | #1 |
Участник
|
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 |
Модератор
|
Цитата:
Сообщение от Oleg V.Cat
Добили память до трех гиг, MaxMemPercentage убрали... и что я вижу сегодня? MaxMemPercentage (50) reached. [...] Current virtual memory usage 1,126,096,896. Смотрю на таск менеджер, так и есть ~1,095,nnn KB max, где-то гигабайт свободной ОЗУ.
"И что, собственно, с этим делать?"
__________________
-ТСЯ или -ТЬСЯ ? |
|
28.08.2007, 08:35 | #3 |
MCT
|
Вот цитата из одной умной книги, там про 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 |
Участник
|
|
|
28.08.2007, 21:20 | #5 |
Участник
|
Ключ /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 |
Участник
|
Не в тему.
Автор об АОСе говорит.
__________________
Axapta 3.0 CIS SP3 CU1 --- Народу собралось - яблоку плюнуть негде! |
|
28.08.2007, 21:45 | #7 |
Участник
|
Oleg, может проблема в другом? и вы получаете ошибки памяти как следствие чего то другого.
Мониторьте, счетчики производительности. Если хотите поиграться с добиванием памяти, то добейте уж до 4GB, тогда ключ /3GB будет работать - позволит пользовательским процессам (в частности АОСу) откушать у системы до 3GB памяти.
__________________
Axapta 3.0 CIS SP3 CU1 --- Народу собралось - яблоку плюнуть негде! |
|
28.08.2007, 22:04 | #8 |
MCT
|
|
|
29.08.2007, 19:59 | #9 |
Участник
|
Цитата:
Замечание принимается.
__________________
Axapta 3.0 CIS SP3 CU1 --- Народу собралось - яблоку плюнуть негде! |
|
11.09.2007, 16:49 | #10 |
Участник
|
|
|
11.09.2007, 20:34 | #11 |
Участник
|
А поставьте MaxMemPercentage=20. И проверьте, будет ли падеж при более меньшей загрузке памяти. Если нет , то возможно всетаки MaxMemPercentage тут нипричем.
__________________
Axapta 3.0 CIS SP3 CU1 --- Народу собралось - яблоку плюнуть негде! |
|
13.09.2007, 10:15 | #12 |
Участник
|
У нас абсолютно такая же ситуация - 1 GB и нужен рестарт АОС-а.
|
|
13.09.2007, 18:27 | #13 |
Участник
|
Было.
Вопрос мной поднимался ссылка на тему и совет сегодня уже давал ссылка на другую тему К сказанному в ветке хочу добавить: параметры 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 |
Участник
|
Цитата:
1) параместы настройки АОС : Database
Цитата:
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 |
Участник
|
Цитата:
Цитата:
может попробовать: поставить Leave connection running when idle , buffer size побольше - 128 или еще поболее. Хотя думаю еще многое завист от релиза АОС и разнообразия используемого функционала.
__________________
--- SHiSHok |
|
14.09.2007, 18:22 | #16 |
Участник
|
1)
2) захват памяти до 900Мб (2Gb физической) 3) присутствуют непонятные "мертвые" хендлы: thead <Non-existent Process>(1024): 2500 (смотрю ProcessExplorer by Mark Russinovich нынче Мелкософт) 4) АОС фактически не падает (забыл уже когда были такие случаи по средь бела дня), на выходных, опять же, перезапускаем для профилактики зависших сессий + затяжка проектов.
__________________
--- SHiSHok |
|
18.09.2007, 16:24 | #17 |
Участник
|
Цитата:
1 GB и покойник Цитата:
Цитата:
Пользователей активнопостоянных - ~30. |
|
29.10.2007, 17:23 | #18 |
Участник
|
AOS больше 1 GB брать таки не умеет...
В общем - воткнули мы в машину с AOS _8_ гиг памяти. Результаты - что с /3GB в boot.ini, что без, что с любым MaxMemPercentage - как только отжирается гигабайт памяти - AOS-у приходят кранты. Если MaxMemPercentage не стоит - вежливые (50 процентов пришло, типа). Если стоит - неясно-задумчивые....
Да, я знаю, что WinSrv2003 Std больше четырех не умеет, а толку... |
|
31.10.2007, 01:03 | #19 |
Участник
|
Странно это все... Сейчас посмотрел на примере KR2, как вообще это ограничение работает, и получается примерно вот что.
Возможно, конечно, что воду мутит SmartHeap - надо будет отдельно проверить, как она по умолчанию настраивается AOS'ом. |
|
31.10.2007, 05:58 | #20 |
Moderator
|
to gl00mie: В старину (кажется до версии 2.5Sp5) со smartheapом была следующая история: Почему-то он не давал использовать под переменные и буфера приложения всю свободную память. После того как у нас на одном проекте стало не хватать памяти для разноски большого журнала, из датского MBSа пришел кусочек кода, который сейчас лежит в Global::SmartHeapSizeUp(), с инструкцией "Запускать после запуска, перед какими-то глобальными операциями. Когда я стал разбираться с этим куском кода (я там всего не понял целиком - если честно) возникла примерно такая гипотеза - SmartHeap захватывает память у операционной системы кусками, которые называются в его терминологии страницами. (Это точно - я в хелпе по smartHeap проверил). Размер таблицы этих страниц, похоже что,ограничен какой-то константой. (Вот это уже мое предположение) Из за того что дефолтный размер страницы был небольшим, возникала ситуация при которой smartHeap просто не мог захватить нужный размер памяти. Функция smartHeapMemorySizeUp занимается как раз увеличением размера страницы до подходящего значения - чтобы на всю память таблицы хватило.
В начале этой страницы стоит не до конца мне понятный код, который рассчитывает число страниц на основании информации о физической памяти на компе. При этом он ОГРАНИЧИВАЕТ объем используемой памяти. То есть - там при рассчете стоит функция min() которая берет минимальное значение между объемом памяти в мегабайтах помноженным на 32 и 32768. Смысл магического числа 32768 мне не совсем понятен. Есть подозрение, что если его заменить, например на 65536, то размер памяти, используемой системой - увеличится. Хотя с другой стороны - есть шансы что это число там стоит не просто так и если его увеличить, что-нибудь в распределении памяти сломается. Последний раз редактировалось fed; 31.10.2007 в 06:01. |
|