14.02.2011, 13:58 | #1 |
Участник
|
Масштабируемость AOS'а AX 2009 и принципы выполнения кода клиентских сессий на сервере
В 3.0 было так: AOS при запуске стартовал несколько служебных потоков и потом на каждую клиентскую сессию запускал по одному выделенному потоку - это еще описано в статье Как обнаружить, какой пользователь загружает процессор AOS. Т.е. число потоков, запущенных в процессе AOS'а 3.0, всегда было больше числа активных сессий.
Сейчас решил посмотреть, что происходит в AX 2009, а там в процессе AOS'а, где крутится 71 клиентская сессия, работает всего 21 поток, на AOS'е же, где нет ни одной клиентской сессии, работает 8 потоков. Т.е. предположительно 13-14 "рабочих" потоков на AOS'е обслуживают 70+ клиентских сессий - такая архитектура сильно отличается от прежней, где планирование выполнения бизнес-логики клиентских сессий было фактически возложено на OS. В связи с этим вопрос к тем, кто каким-то образом в курсе, и к тем, кто просто работает на 2009-й:
|
|
|
За это сообщение автора поблагодарили: Logger (5). |
14.02.2011, 17:55 | #2 |
MCT
|
Справедливости ради стоит отметить, что при использовании SSRS еще добавляются "мертвые" сессии BC, которые принудительно приходится закрывать.
PS AX 2009
__________________
Axapta book for developer |
|
15.02.2011, 09:24 | #3 |
Участник
|
up!
неужели никому, кроме меня, не интересно разобраться с масштабируемостью? или же очень сложно написать о том, сколько пользователей на каких и скольких процессорах обслуживает AOS? коммерческая тайна? |
|
15.02.2011, 10:13 | #4 |
Administrator
|
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Сообщение от gl00mie
Опять-таки - вопрос актуален только для тех, кто использует больше одного АОСа Цитата:
Цитата:
Disclaimer: Я не пытался ответить на поставленные вопросы - а пытался представить себе среднестатистического разработчика, который может не знать ответы на эти вопросы (или просто не имеет доступа к информации). А также которому лень чего-то скачивать и анализировать чтобы просто ответить на форуме Собственно говоря мой пост - это ответ на вопрос
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: gl00mie (2). |
15.02.2011, 10:47 | #5 |
Участник
|
Пусть так! Но можно будет хотя бы узнать, кому на сколько сессий хватает одного АОСа: если кто-то заявит, что у него 150 конкурентных пользователей плюс все пакетные обработки (может, выполняемые ночью, когда пользователи спят) прекрасно работают на одном АОСе, для меня это тоже будет очень показательно
Цитата:
Цитата:
Цитата:
Код: Module: Ax32Serv.exe PID: 4252 Parent PID: 496 (services.exe) Priority: 8 Threads: 22 Цитата:
Последний раз редактировалось gl00mie; 15.02.2011 в 11:01. Причина: typo |
|
15.02.2011, 10:48 | #6 |
Moderator
|
От себя добавлю к sukhanchikу: Первые два вопроса мне очень интересны. Но, боюсь что ответить на них можно только подизассемблировав сервер с помощью IDA. А вопросы по поводу того какие сервера и на сколько пользователей используются - они не очень репрезентативны. Потому что 10 пользователей рассчитывающих спецификации с большой вложнностью, по нагрузке на AOS перекроют 50 сейлов, которые только заказы вносят и резервируют...
|
|
|
За это сообщение автора поблагодарили: sukhanchik (2). |
15.02.2011, 11:13 | #7 |
Administrator
|
Ок, отвечу на вопросы на примере одного из моих клиентов (правда, версия 4.0)
Цитата:
Сообщение от gl00mie
Пусть так! Но можно будет хотя бы узнать, кому на сколько сессий хватает одного АОСа: если кто-то заявит, что у него 150 конкурентных пользователей плюс все пакетные обработки (может, выполняемые ночью, когда пользователи спят) прекрасно работают на одном АОСе, для меня это тоже будет очень показательно
Цитата:
Intel Xeon E5430 2.66 Ghz 2Гб ОЗУ Виртуалки нет. Far-ом не пользуюсь и о его плагинах не слышал. Ставить софт на сервер не могу, работаю в терминалке по VPN - т.е. мой компьютер не в домене. Пользоваться WMI/Powershell не умею настолько, чтобы анализ информации занял 5 минут, а не 2 часа. В общем-то вот и все на что я смог с ходу ответить.
__________________
Возможно сделать все. Вопрос времени |
|
15.02.2011, 11:13 | #8 |
Участник
|
Цитата:
Последний раз редактировалось gl00mie; 15.02.2011 в 11:19. |
|
15.02.2011, 11:39 | #9 |
Administrator
|
Цитата:
__________________
Возможно сделать все. Вопрос времени |
|
15.02.2011, 11:41 | #10 |
Участник
|
Согласен с sukhanchik - если есть вариант без установки доп. ПО и не очень затратно посмотреть интересующую вас информацию (те же потоки), то ответов будет больше. Как минимум на 1
__________________
Ivanhoe as is.. |
|
15.02.2011, 11:55 | #11 |
Moderator
|
Есть, есть варианты. Это можно в обычном performance monitor посмотреть. Выбираешь в верхнем левом окне объект Process, там выбираешь подпункт thread count. В нижнем левом окне выбираешь ax32serv.exe. Запускаешь, наслаждаешься.
У меня кстати получилось что на первом сервере в кластере 125 сессий и 21 поток, на втором сервере 126 сессий и 25 потоков. Для обнаружения зависимости я запустил Data Collector (из того же performance monitor), который в течении 4 часов, каждую минуту семплит число нитей, а также счетчики Total Sessions и Active Sessions из объекта Microsoft Dynamics AX Server. Посмотрю чего там потом получится... |
|
|
За это сообщение автора поблагодарили: sukhanchik (2), Logger (5). |
15.02.2011, 12:42 | #12 |
Administrator
|
Благодаря fed-у я смог посмотреть - сколько у меня потоков
АОС, отжирающий наибольшее кол-во памяти - видимо и есть рабочий (остальные - тестовый и разработческий). У меня получилось 16 потоков (напоминаю - версия 4.0)
__________________
Возможно сделать все. Вопрос времени |
|
15.02.2011, 14:49 | #13 |
Участник
|
AX 2009
Сервер: Intel Xeon X5550 2.67 Ghz (2 proc) 12 Гб ОЗУ, виртуалки нет, AOS(рабочий) один AOS отъедает от 5 до 10 % проца Пользователи - колеблется около 100, при этом в AOS'e 24 потока |
|
15.02.2011, 19:46 | #14 |
Участник
|
Это связано с переходом на подключение к AOS с помощью RPC (и используется с версии 4.0)
Сам RPC использует многопоточные апартаменты - выделяется пул потоков, ожидающих вызова. При RPC-вызове используется один из ожидающих потоков для обработки. Когда выполнение вызова завершается, поток возвращается в состояние ожидания. Если при вызове не будет свободных потоков, то создастся новый. После некоторого времени в состоянии ожидания "лишние" потоки закрываются. Использование потоков для RPC настраиваются при вызове функции RpcServerListen. Первый параметр MinimumCallThreads определяет минимальное кол-во используемых потоков, но он носит рекомендательный характер и приложение должно устанавливать его в единицу Количество ожидающих потоков, так же как и время для закрытия "лишних" зависит от версии Windows
__________________
Axapta v.3.0 sp5 kr2 |
|
|
За это сообщение автора поблагодарили: Logger (10), gl00mie (10). |
15.02.2011, 22:03 | #15 |
Участник
|
|
|
15.02.2011, 22:05 | #16 |
Участник
|
Т.е. я имел в виду что потоки RPC ожидающие вызова с клиента не обязаны соответствовать потокам в которых выполняются пользовательские сессии внутри аоса, так же как пул соединений к БД не обязательно соответствует пользовательским сессиям в аосе.
|
|
15.02.2011, 22:42 | #17 |
Участник
|
Цитата:
Собственно, вопрос-то и касается клиентских подключений к AOS Что касается пакетного сервера, то да, он не использует RPC. На каждое выполняемое пакетное задание создается свой отдельный поток, который закрывается, когда задание завершается Кроме того, сервер открывает и другие сервисные потоки, связанные с подключением к SQL серверу, управлению RPC-подключениями, диспетчером пакетных заданий, внутренним управлением GDIPLUS
__________________
Axapta v.3.0 sp5 kr2 |
|
16.02.2011, 02:58 | #18 |
Участник
|
Ax 4.0 sp 2
2 сервера AOS в кластере с балансировкой: оба Xeon 2.66, 4Г памяти. Отъедают в среднем 10% первый, 5% второй. Всего пользователей до 150. На первом AOSе ограничение 75 сессий. В среднем распределение 50/40 сессий - 55/44 потоков. Последние актуальные значения при 60/40 сессий - 67/47 потоков. Для мониторинга пользуюсь софтиной Zabbix, который установили админы - веб-доступ с графиками, показателями и т.д. |
|
|
За это сообщение автора поблагодарили: Logger (5). |
16.02.2011, 10:00 | #19 |
Участник
|
Цитата:
Сообщение от vanokh
Ax 4.0 sp 2
2 сервера AOS в кластере с балансировкой: оба Xeon 2.66, 4Г памяти. Отъедают в среднем 10% первый, 5% второй. Всего пользователей до 150. На первом AOSе ограничение 75 сессий. В среднем распределение 50/40 сессий - 55/44 потоков. Последние актуальные значения при 60/40 сессий - 67/47 потоков. Для мониторинга пользуюсь софтиной Zabbix, который установили админы - веб-доступ с графиками, показателями и т.д. Сколько ядер в итоге на каждом сервере ? Неужели одноядерные камни ? |
|
16.02.2011, 10:06 | #20 |
Участник
|
|
|
Теги |
aos, ax2009, железо, сессия |
|
|