|  08.11.2005, 11:19 | #1 | 
| Гость | AOS и многопроцессорная машина 
			
			Влияет ли существенно наличие нескольких процессоров на машине на быстордействие AOS. Т.е. машина работает в одной и той же конфигурации с одним процессором, затем добавляют еще процессор, как измениться скорость работы приложения (3-х уровневое, база на другой машине)? Поделитесь опытом.
		 | 
|  | 
|  08.11.2005, 11:38 | #2 | 
| Участник | 
			
			Теоритически никак. AOS не использует второй процессор. Для AOS важна частота процессора.
		 | 
|  | 
|  08.11.2005, 11:59 | #3 | 
| Участник | Цитата: 
		
			Сообщение от lagr221374
			
			 Влияет ли существенно наличие нескольких процессоров на машине на быстордействие AOS. ... Если средняя нагрузка на один процессор сервера [AOS] более 50 % - имеет смысл увеличить их количество, если есть такая возможность. Последний раз редактировалось Serge Kotov; 08.11.2005 в 12:19. | 
|  | 
|  08.11.2005, 12:18 | #4 | 
| Участник | 
			
			Очень рекомендую выключить HyperThreading режим на AOS машине. Это отключает виртуализацию процессоров и фактически увелививает быстродействие каждого физического процессора.
		 | 
|  | 
|  08.11.2005, 12:29 | #5 | 
| Участник | Цитата: 
		
			Сообщение от Gelios
			
			 Очень рекомендую выключить HyperThreading режим на AOS машине. Это отключает виртуализацию процессоров и фактически увелививает быстродействие каждого физического процессора. | 
|  | 
|  08.11.2005, 13:44 | #6 | 
| Участник | 
			
			Не повлияет, AOS почти всегда использует только 1 процессор, если только вы не хотите запустить 2-й экземпляр AOS-а на одной и той же машине. Общее правило №1: AOS-ы масштабируются "box"-ами, ставите рядом еще одну машину и разводите по ним пользователей.  2 Serge Kotov что такое "клиентский процесс" применительно к 3-х звенке? | 
|  | 
|  08.11.2005, 14:05 | #7 | 
| Участник | 
			
			Без сомнения, она это делает, но только это нам не поможет aos - это один единственный процесс и с точки зрения ОС, поделать с ним ничего нельзя. С уваженим, itfs. | 
|  | 
|  08.11.2005, 14:07 | #8 | 
| Участник | 
			
			Совершенно верно. Если не привязывать процесс к определенным процессарам (процессору), то потоки будет выполняться параллельно на разных процессорах в соответствии с приоритетом. Так как Axapata на каждое подключение к AOS'у создает свой поток, то это правило действительно и для нее
		 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  08.11.2005, 14:12 | #9 | 
| Участник | 
			
			2 itfs Ваше сообщение увидел после того, как отправил свое, по-этому уточняю. Процесс сам по себе ничего не выполняет. Все дейсвтвия в программе выполняются потоками. Если приложение разбивает свою работу на 2 два и более потока, то они могут быть распараллелены операционкой для выполнения на разных процессорах 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  08.11.2005, 14:23 | #10 | 
| Модератор | Цитата: 
		
			Сообщение от itfs
			
			 Без сомнения, она это делает, но только это нам не поможет aos - это один единственный процесс и с точки зрения ОС, поделать с ним ничего нельзя. соответственно, одной сессии (одному потоку) наличие HT или дополнительных процессов как-либо заметно помочь не может, а вот если сессий (пользователей) много - очень даже в принципе, я недавно рисовал сферического коня в вакууме - одна сессия запускает дополнительные потоки через AOSLoadGen и грузит все доступные процессоры, но как это применить на практике, еще не придумал   | 
|  | 
|  08.11.2005, 14:24 | #11 | 
| Модератор | 
			
			... Как говорил Великий Рихтер   Да, у нас такая же ситуация. Второй процессор пригодится, если на машине крутиться несколько АОСов (рабочий/тестовый/разработчиков) С Уважением, Георгий | 
|  | 
|  08.11.2005, 14:40 | #12 | 
| Гость | Цитата: 
		
			Сообщение от Vadik
			
			 ...  в принципе, я недавно рисовал сферического коня в вакууме - одна сессия запускает дополнительные потоки через AOSLoadGen и грузит все доступные процессоры, но как это применить на практике, еще не придумал  | 
|  | 
|  08.11.2005, 15:42 | #13 | 
| Модератор | Цитата: 
		
			Сообщение от lagr221374
			
			 Можно на эту тему поподробнее если не затруднит + код Изначально задача формулировалась примерно так "Допустим, у нас есть достаточно 'тяжелая' сессия, которая на многопроцессорном сервере приложений интенсивно использует один процессор, но не использует остальные. Это в принципе возможно?" Так вот "в принципе" ответ будет "да, если..". Если мы можем разбить нашу задачу на несколько мелких задач, разбросать их по нескольким потокам в принципе несложно. Я не стал использовать Thread (был когда-то нехороший опыт), а взял AOSLoadGen, благо к нему претензий по стабильности работы не было В итоге получился, как я уже говорил, сферичейский конь в вакууме: - обходя план счетов (LedgerTable), по каждому счету запускаем отдельный поток, обегающий проводки по счету (LedgerTrans) Разумеется, сам алгоритм практической ценности не имеет, он нужен только для демонстрации Дальше появляются вопросы - как узнать о том, что созданный нами поток завершил свою работу? - как вернуть из него результаты в основной (родительский) поток? - как вообще организовать синхронизацию этих потоков? Пока нормального решения, которое действительно можно было использовать, я не нашел. Я точно не хочу использовать для обмена сообщениями таблицы, я не уверен, что хочу использовать глобальные переменные. Если у кого-то есть идеи, с радостью их выслушаю | 
|  | 
|  08.11.2005, 15:53 | #14 | 
| Гость | 
			
			Thanks. а что то ГЛОБАЛЬНОЕ использовать все же придется (как мне кажется)
		 | 
|  | 
|  08.11.2005, 16:06 | #15 | 
| Участник | 
			
			По-моему можно использовать стандартные Виндовые средства для синхронизации потоков - события, семейство функций WaitFor*.
		 
				__________________ Axapta v.3.0 sp5 kr2 | 
|  | 
|  08.11.2005, 18:12 | #16 | 
| Гость | Цитата: 
		
			Сообщение от AndyD
			
			 По-моему можно использовать стандартные Виндовые средства для синхронизации потоков - события, семейство функций WaitFor*.   | 
|  | 
|  08.11.2005, 22:20 | #17 | 
| Участник | Цитата: 
		
			Сообщение от itfs
			
			 Не повлияет, AOS почти всегда использует только 1 процессор, если только вы не хотите запустить 2-й экземпляр AOS-а на одной и той же машине. Общее правило №1: AOS-ы масштабируются "box"-ами, ставите рядом еще одну машину и разводите по ним пользователей.  2 Serge Kotov что такое "клиентский процесс" применительно к 3-х звенке? Под "клиентским процессом" я имел в виду один пользовательский коннект в 3-хзвенке, которому ax32serv выделяет собственный поток. Поэтому, собственно говоря, он и исполняется на одном процессоре. Т.е. разницу между процессом ОС и его потоками я знаю.   Любопытно откуда есть полное убеждение сразу у трех разных участников этой ветки, что AOS умеет работать только с одним процессором? Ведь это может, например, привести к рекомендации начинающему предприятию - клиенту поставить два однопроцессорных физических сервера вместо одного двухпроцессорного, что не есть хорошо. Проверить корректность работы AOS с несколькими процессорами очень просто. Достаточно запустить Performance Monitor с просмотром нагрузки раздельно по каждому процессору. ИМХО лучше не связываться с попыткой "расщепить" один поток на несколько процессоров. В реальной ситуации в трехуровневой конфигурации для двухпроцессорного сервера AOS одновременно работает обычно больше двух пользователей.   | 
|  | 
|  09.11.2005, 11:14 | #18 | 
| Участник | Цитата: 
		
			Сообщение от Serge Kotov
			
			  Ведь это может, например, привести к рекомендации начинающему предприятию - клиенту поставить два однопроцессорных физических сервера вместо одного двухпроцессорного, что не есть хорошо. Но если речь идет о том чтобы выбрать между 2-х и 4-х процессорной конфигурацией, то ... я на своих выводам настаиваю. to AndyD Теоритчески я согласен, существуют предпосылки для того, чтобы процесс отдавал на исполнение потоки различным процессорам. Допустим, что проблема синхронзации так или иначе решена. Но как факт, архитектура AOS-а такова, что не отдает выполнение пользовательских потоков другим процессорам, за исключением исполнения batch-ей. С уважением, itfs. С уважением, itfs. | 
|  | 
|  09.11.2005, 11:20 | #19 | 
| Гость | 
			
			Ок спасибо за информацию,  в принципе логично, а с подтверждением опытом еще боле
		 | 
|  | 
|  09.11.2005, 11:36 | #20 | 
| ---------------- | Цитата: 
		
			Сообщение от itfs
			
			 AOS почти всегда использует только 1 процессор.. 2-х и 4-х процессорной конфигурацией, то ... я на своих выводам настаиваю Я проводил такой опыт. Создал классик, который занимается вечным вычислением и исполняется на AOS-е. Запустил несколько клиентов и смотрел загрузку 4х процессорного сервера. 1 сеанс - 25% (1 проц 100%) 2 сеанса - 50% (2 проц 100%) 3 сеанса - 75% (3 проц 100%) и 4 сеанса - 100% | 
|  |