Понедельник, 2026-08-17, 1:04 PM
Приветствую Вас Нуп | RSS
Главная | Кластеры - aXXXis clan | Регистрация | Вход
Меню сайта
Форма входа
Друзья сайта
Клан TheAxis
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: AbS_  
Кластеры
AbS_Date: Понедельник, 2007-04-23, 5:49 PM | Message # 1
Флудопапко
Group: Администраторы AXIS
Posts: 1085
Status: Offline

Профессия/сабкласс: Pk | Warlock
Альянс: Axis
MOSIX vs Beowulf
Вообщем может есть люди работающие или имеющие знания в этой области. В принципе инфы по этой тематике в интеренете перечетал немало и тут возник вопрос. Кластер нужен для функционирования Игрового сервера (ММО) тоесть подразумевает держать соединение 10к+ пользователей и корректную их обработку, в плане ОС тут все ясно что *nix системы, Вин32 даже не рассматривается. Но вот какой кластер выбрать... У обоих видов совершенно разные подходы. Из той информации что я выудил в интернете кластеры класса MOSIX умеют перенаправлять процессы между узлами тем самым равномерно нагружая работу всего кластера, между тем кластеры класса Beowulf используются для параллельных вычислений.

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

На данный момент у меня нет не опыта, не финансовых возможностей собрать кластер хотя бы с двумя излами, но идея написания собственного ММО недает покоя уже больше полугода и этот вопрос беспокоит меня почему то больше всего. Мне даже просто интересно как это все работает. Поэтому в летнее время планируется сборка кластера и попытак написать на нем лементарных приложений типа "Привед медвед :)"

Вообщем то вопрос заключается в том что наиболее лучше продходит для такого таких целей.


"Ах, у ели, ах, у ёлки, ах, у ели злые волки."

Microsoft компания всегда думает о том, как вас лучше сделать.

Literball forever! (a game, where you must drink many litters of vodka to be a winer)

 
AbS_Date: Понедельник, 2007-04-23, 6:39 PM | Message # 2
Флудопапко
Group: Администраторы AXIS
Posts: 1085
Status: Offline

Профессия/сабкласс: Pk | Warlock
Альянс: Axis
Почему у меня возникли такие вопросы? Попытаюсь расказать о структурах сервера до которых я пока додумался, но спешу заверить что это пока теоритические разработки, которые я не испытывал на практике.

1 - Вести обработку 1 потоком. Тоесть последовательно обрабатывать сообщения/действия и реакцию на них от всех пользователей в 1 потоке. Такой подход сщитаю крайне нежелательным да и вообще не приминимым в ММО. Почему? Ну для примера: Вася пупкин, первый в списке, посматрел инвентарь сервер потратил на это 10мс, Федя, второй в списке, попытался приминить что либо из своего инвентарая сервер затратил еще 10мс, а Володя стоящий в конце списка должен ждать реакции на его действия, пока сервер доберется до обработки его сообщений. Это не критично для 20 - 30 игроков, думаю что серверы шутеров так и построены, ну или практически так, но там и онлайн соответсвенный, а что будет если ты стоищь 10к в очереди, вообщем понятно что ждать будешь долго...

2 - Каждый игрок имеет свой собственный поток обработки. Этот вариант хорош тем что мы можем гарантировать равное процесорное время каждому игроку, и Володе не придется ждать пока Вася закончит действия со своим инвентарем. Но возникает очень зерьезная проблема, это проблема синхроизации потоков. Другая проблема состоит в том что выполение потоков может быть на разных узлах кластера, ну только представте ситуацию Вася с Петей затеяли пвп, к проблеме передачи и синхронизации данных между двумя потоками Вася и Пети, добавиться проблема того что Васен может обрабоаться медлей Петеного за счет того что узел который работает с Петеным потоком разгружен. Хотя может это моя надуманая проблема...

3 - Вариант заключается в разбиении игрового мира на сектора и каждый сектор обрабатывается своим потоком. Ну все здорово тормозит то у всех срауз:) но тут может возникнуть ситуация описаная в варианте 1, много игроков в 1 секторе -> много игроков в 1 потоке, если сделать слишком мелкое дробление то возникнут проблемы описанные во втором варианте. Вообщем как вариант это уже более приемлемый, тут придется играть с размерами размерами сегментов подбирая оптимальные.

4 - Разбиение игрового мира на сектора и разноска их на отдельные физические процессоры. Каждый физический процессор кластера отвечает за обработку ведомого ему участка игрвого мира. Но тут опять проблема. Придется строить кластре с равными по произвоительности узлами + эти узлы должны иметь хорошую производимость. Очень плохо в этом варианте то что может получиться так что 1 узел будет отвечать за обработку зоны с 2 - 3 игроками, а другой узел пудет пыхтеть над обработкой нескольких тысяч и самое неприятное что мы не можем заранее угадать к каком месте будет много народу. Конечно можно так разбить мир что "нуб" локации будут больше, чем "папские" локации но это не самый хороший вариант.

5 - Заключается в том чтобы принудительно равномерно нагружать узлы. Суть в том что бы вновь подключившегос игрока отправлять на обработку определнного узла. Например 1 пользователь отправляется на обработку в 1 узел, 2 во второй, 3 в первый, четвернтый во 2. Но опять возникнут проблемы с синхронизацией, хотя распределение нагрузки в этом варианте наиболее равномерны.


"Ах, у ели, ах, у ёлки, ах, у ели злые волки."

Microsoft компания всегда думает о том, как вас лучше сделать.

Literball forever! (a game, where you must drink many litters of vodka to be a winer)

Post edited by AbS_ - Понедельник, 2007-04-23, 6:40 PM
 
AbS_Date: Понедельник, 2007-04-23, 6:43 PM | Message # 3
Флудопапко
Group: Администраторы AXIS
Posts: 1085
Status: Offline

Профессия/сабкласс: Pk | Warlock
Альянс: Axis
На данный момент есть еще 1 задумка, но пока писать о ней не буду.

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

Вот smile чет прям все как то умно получилось.


"Ах, у ели, ах, у ёлки, ах, у ели злые волки."

Microsoft компания всегда думает о том, как вас лучше сделать.

Literball forever! (a game, where you must drink many litters of vodka to be a winer)

 
M0RDate: Вторник, 2007-04-24, 2:43 PM | Message # 4
Флудомладенец
Group: Члены клана AXIS
Posts: 50
Status: Offline

Профессия/сабкласс: ggdgd
Альянс: gdgdg
вопрос, зачем тебе сервер ММО?

Nice Dark Elf ;)


 
sabpersDate: Вторник, 2007-04-24, 5:50 PM | Message # 5
Советник клана
Group: Члены клана AXIS
Posts: 257
Status: Offline

Профессия/сабкласс: GLADIATOR
Альянс: ___
я вабще х з!!!знаю кластеры используют в научных мегалабараториях!!!всякие вычисления нехилые делать или для баз данных огромных!ПОПРОБУЙ РАССКАЖЕШ ПОТОМ)))) biggrin

[Brotherhood of steel]
Них...я сибе!!!-вотэта поворот!


 
  • Страница 1 из 1
  • 1
Поиск:
Бесплатный конструктор сайтовuCozCopyright MyCorp © 2026