Обслуживание сервера MMORPG

Системный администратор планеты

Большое агрегирование блогов системного администратора.

Список рассылки SAGE

Уничтожающий совет и обсуждение от опытных системных администраторов.

LOPSA обсуждают

Американская Лига Профессиональных Системных администраторов общий список рассылки.

Радар O'Reilly

Некоторое большое содержание системного администратора здесь со специализированным Операционным потоком - много материала системного администратора 21-го века, чтобы обладать и думать о.

14
задан 9 June 2009 в 13:24
9 ответов

Я подозреваю, что они развертывают последнюю версию своего кода, который требует, чтобы они перезапустили приложение (и надо надеяться запускающий некоторые тесты прежде, чем повторно включить доступ). С той точки зрения это - больше проблемы StackOverflow и меньше ServerFault один.

Я думаю, что возможно создать горячо исправляющую систему, но это обязательно было бы невероятно сложно. Из того, что я понимаю, сервер MMO "приложение" состоит из нескольких различных компонентов-

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

  • Серверы геймплея - Кластеры машин, сгруппированных в логические независимые единицы ("миры", и т.д.). Предполагается, что каждый кластер геймплея использует некоторый протокол внутренней связи для соответствия состояния друг другу; Вы, вероятно, оказываетесь перед необходимостью исправлять каждый кластер внезапно. Один возможный способ сделать это должно исправить теплую обработку отказа. Необходимо было бы затем смочь обоим

    1. Предупредите, чтобы клиент соединился с теплой обработкой отказа и разъединился от старого кластера.
    2. Сохраните состояние синхронизировавшим между обработкой отказа и устаревшим сервером приложений, в то время как все клиенты передают.
  • Серверы баз данных - Некоторое персистентное хранилище данных, как RDBMS. Надо надеяться, Вы не вносите изменения в хранилище данных настолько часто. По-видимому, каждый сервер/кластер геймплея имеет независимое хранилище данных. Вы смогли использовать тот же прием с теплой обработкой отказа (и сказать, что серверы геймплея, чтобы разъединиться, ожидать старых баз данных и баз данных обработки отказа для синхронизации, затем снова соединяются с обработкой отказа), но это кажется довольно опасным мне.

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

Другое решение состоит в том, чтобы использовать язык, который разработан в течение 100%-го времени работы и имеет встроенные возможности hotpatching, выполняющего код. Erlang является хорошим выбором (hotpatching пример), и Java имеет схожую функциональность.

17
ответ дан 2 December 2019 в 21:01

Я подозреваю, что общее время, когда Снежная буря (я вывожу, что, учитывая, что это - утро вторника, что Вы отправляете свой вопрос) кавычки для обслуживания для всего кластера; не каждый сервер занимает много времени, это для выполнения продолжает работать.

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

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

То, когда Вы смотрите на то, почему они не могут кластеризировать процессы и выполнить прокручивающееся обслуживание, что маленькие люди знают инфраструктуры WoW, предлагает, чтобы несколько машин предоставили услугу для каждой области (т.е. один для мира, один для экземпляров и набегов, один для полей битвы, и т.д.) они не используют совместно использованную с состоянием активно-активную установку процесса. Там не совместно использует живого состояния, только персистентных данных через базу данных.

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

3
ответ дан 2 December 2019 в 21:01
  • 1
    На самом деле большинство проблем действительно вращается вокруг того центрального поддерживающего состояние узла, базы данных. That' s авторитетная запись. Всеми другими вещами, которые, кажется, управляют состоянием (сервер, клиент и любые промежуточные механизмы кэширования) являются действительно просто посредники в отношении того, какие данные превращают его в базу данных. Задержка является временем, которое она берет базу данных для подтверждения, отодвигают цепочку, что она записала. –  Karl Katzke 30 July 2009 в 04:22

Некоторые более свежие расширенные времена простоя в EvE Онлайн были об установке новых аппаратных средств как более быстрый SAN. В то время как можно технически переместить объем данных путем создания новой группы файлов на новом диске и затем освобождения основного, который привел бы к длительному периоду уменьшенной производительности из-за постоянного ввода-вывода. Таким образом, они решили отсоединить базу данных на 1.1 ТБ и переместить ее сразу.

Ответ на этот вопрос также полагается на определенное приложение. Например, сервер, обрабатывающий определенную звездную систему, не может быть заменен в горячем режиме, не разрушая игровую игру, таким образом, время простоя используется для переприсвоения более мощных серверов в потенциальные горячие точки. Кроме того, вычисления владения (суверенитет) звездных систем вычисляются. Это зависит от десятков различных переменных, все из которых могут измениться в зависимости от действий плеера. Само собой разумеется, выполнение этого живет, может вызвать чрезмерную блокировку и/или другие проблемы параллелизма. Но обращение к ним лучше всего оставляют stackoverflow.

1
ответ дан 2 December 2019 в 21:01
  • 1
    Хотя с виртуализацией, перемещающей в большой степени загруженные серверы на аппаратные средства с более имеющимися ресурсами, должно быть довольно возможно сделать живой и автоматически... особенно в игре, где большая часть задержки действия измеряется во многих миллисекундах (иногда более чем сто). Но это мог бы быть сложный и дорогой ^^ –  Oskar Duveborn 12 June 2009 в 15:37
  • 2
    Oskar, имейте в виду, что базовая технология позади КАНУНА и WoW была записана приблизительно в 2002, прежде чем те techs были действительно сформировавшимися. –  Karl Katzke 30 July 2009 в 04:20

по-видимому, что-то, с чем Вы не могли иметь дело через кластеризацию/выравнивание нагрузки, такую как главная схема DB, изменяется.

0
ответ дан 2 December 2019 в 21:01

В недавней теме, Как часто должен, я перезагружаю серверы Linux, другой положительный момент был упомянут, проверив, что все запускает правильно на перезагрузке или после любого (основного) изменения конфигурации.

0
ответ дан 2 December 2019 в 21:01

Простое обновление аппаратных средств (или замена оборудования) также представлено как "обслуживание сервера" играми MMORPG. Таким образом тривиальный мы часто забываем об этом.

0
ответ дан 2 December 2019 в 21:01

Ни у кого больше нет опыта, на самом деле выполняющего что-то вроде этого? Ха.

Существует несколько причин, которые соединяют мостом и код и системы. Во-первых, помните, что большинство текущих 'больших' механизмов MMO было запрограммировано несколько лет назад, и несмотря на обновления графики и технологии с тех пор, все еще зависит от способа, которым многие из этих систем были записаны в 2000 или около этого. Онлайн кануном, например, все еще работает на одном огромном экземпляре Microsoft SQL Server, который является, почему они всегда пытаются вытащить больше из него путем обновления аппаратных средств.

Пример улучшения начиная с WoW и КАНУН начал, работа, сделанная в распределенных базах данных ключа/значения как MapReduce Google (и это - реализация с открытым исходным кодом, Hadoop), чрезвычайно быстро утвердительные сервисы очереди обработки ответа (Amazon SQS), и другое "облако" - ориентированный на технологии.

У меня есть большая часть опыта с КАНУНОМ (я - больше парня лазеров, чем парень боевых топоров), таким образом, некоторые из этих примеров более ОРИЕНТИРОВАНЫ НА КАНУН.

Насколько Системные причины идут:

  • Физические узлы перестали работать на последовательной основе. То, когда узел перестал работать, обычно это - действие, перемещено в другом месте с помощью любого количества средств. Однако узел должен быть введен в эксплуатацию назад как можно быстрее. В случае КАНУНА они используют и язык обработки без стека и виртуальные серверы; я не уверен, на что похожа архитектура Снежной бури.
  • Непротиворечивость базы данных должна быть проверена, журналы должны быть сброшены, и индексы и кэши данных должны быть восстановлены. Это особенно важно в системе как КАНУН только с одним "живым" экземпляром базы данных.
  • Исправления операционной системы должны быть применены в то время, когда они могут перезагрузить узлы, не имея необходимость иметь слишком много действия, мигрирующего в другом месте. Миграция поднимает много сетевых ресурсов, которые могли иначе быть выделены обработке онлайн.
  • Основанные на RDBMS MMOs имеют огромные проблемы с блокировкой данных и ссылочной целостностью. Время простоя используется для чистки устаревших блокировок и повреждений целостности из журналов операций.
  • Большая часть игровой реализации географически расположенные кэши данных для статического или полустатического (см. кэширующиеся сводные данные ниже), информация в областях интенсивного использования, т.е. восточное побережье по сравнению с западным побережьем США. Эти кэши обновляются вручную в течение времени простоя.

Насколько причины программного обеспечения идут:

  • Игры, при работе, используют много OLTP - это находится На Обработке транзакций Строки - тип чтений/записей к базам данных. Однако иногда Вы хотите сводный отчет... как то, сколько из конкретного зверя Вы уничтожили за прошлые 3 года шлифования. Это лучше всего обрабатывается отчетом OLAP - это находится На Строке Аналитическая Обработка - который содержит сводную информацию на основе большого количества строк в гигантском наборе данных. В действительности игры реализуют системы, которые используют OLAP для создания кэша для ограничения количества запросов, которые должны быть считаны - т.е. они создают общее количество с определенной даты, и затем когда Вы задаете вопрос, они просто читают строки из хранилища OLTP, которые суммируют период времени начиная с определенной даты. Объедините эти два, и можно на самом деле определить количество, как бесполезный жизнь стала.
  • Вышеупомянутое горячее исправление, которое я рассматриваю как программную проблему, но разработчики программного обеспечения видят как системная проблема.;)
  • Пополняя хранилища объектов - в Eve, пояса астероидов обновляются каждую ночь, и определенные комплексы переработаны также. Это может быть сделано до степени, в то время как онлайн, но некоторые алгоритмы слишком сложны и должны быть сделаны в режиме офлайн, потому что они кратко приносят базу данных к, он - колени, в то время как они суммируют экономическую деятельность предыдущего дня.

Выполнение экономики и с замкнутыми и с разомкнутыми кругами является одной проблемой для операторов MMO - если Вы не верите мне, прочитайте некоторые научные газеты, которые были записаны об игровых экономических системах и некоторые исследования более старых игр как Ultima Online, которая имела относительно примитивные экономические системы. Анализ, который, должно оказаться, пополняет разомкнутые циклы и определяет обман и другую отрицательную экономическую деятельность, должен произойти офлайн со снимком данных, которые могут иногда только браться, в то время как база данных полностью заблокирована.

Если Вы отметите, обслуживание Eve происходит, когда это - Полдень в Англии, где первичный информационный центр.

12
ответ дан 2 December 2019 в 21:01

Я реализовал архитектуру MMO в Erlang, который поддерживает горячие обновления кода и распределение. Например, один "Сервер GamePlay" может натыкаться на arbitary количество машин, если Вам нужна модернизация оборудования, его объекты могут быть переданы (в в реальном времени) к другим машинам. Это включает обновления в аппаратных средствах программного обеспечения без любого времени простоя.

Можно проверить мой сайт по http://www.next-gen.cc.

0
ответ дан 2 December 2019 в 21:01

Я ведусь полагать, что окно обслуживания также позволяет, чтобы стандартная замена оборудования гарантировала, чтобы компоненты не перестали работать.

0
ответ дан 2 December 2019 в 21:01
  • 1
    Обычно нет. Они выполнят некоторые прогнозирующие метрики на аппаратных средствах, но них don' t обычно заранее заменяют все вентиляторы или другой ' expendable' биты в системе, если это не показывает знаки сбоя, т.е. RPMs, отбрасывают, или УМНЫЙ показывает высокое количество ошибки при записи. –  Karl Katzke 30 July 2009 в 04:19

Теги

Похожие вопросы