С анонсом WoW: Forever на BlizzCon игроки были в восторге и готовы сразу же погрузиться в бету: тысячи людей выстроились в очереди, чтобы отправиться в Азерот и увидеть приготовленные сюрпризы. Однако, как и в большинстве бета-тестов, возникло множество проблем, как ожидаемых, так и нет — и из-за неожиданных сбоев многие игроки пытались понять, почему запуск оказался таким забагованным, лагучим и поначалу просто разочаровывающим.

Старший игровой продюсер Том Эллис опубликовал объемный пост в X (Twitter), в котором описал проблемы с запуском беты WoW: Forever. После прямого эфира с вопросами и ответами по WoW серверы Forever должны были открыться, но проблемы задержали запуск. Даже после того как серверы начали подниматься, многие игроки столкнулись с разрывами соединения, долгими очередями, а после долгожданного входа в игру — с задержками при сборе добычи и другими трудностями.

Том Эллис

Итак, пыль улеглась, и вы теперь счастливо играете, так что давайте ответим на самый частый вопрос, который я видел.

  1. ОБОЖЕМОЙ, этой игре 20 лет, как вы до сих пор умудряетесь так косячить?!? а. Хех, справедливо. Если вкратце, то это наш программный стек для среды BETA PTR, он и близко, близко, близко, близко, близко, близко не соответствует промышленному стеку (Production). Беты для WoW обычно не вызывают такого ажиотажа, поэтому эта среда просто не такая мощная. Это привело к первой проблеме, которую вы увидели сегодня.

Вскоре после того, как мы открылись и вы прошли через очередь на вход (которая нужна просто для того, чтобы http://B.Net защищал себя, ограничивая частоту входов — это нормально!), вас разъединило. Оу. Это не совсем правильно. На выяснение этой проблемы сегодня ушло больше всего времени (и даже тогда это заняло около получаса, кажется?). Наша маленькая среда BETA использует только один РЕГИОНАЛЬНЫЙ игровой мир. Хм, нам стоит когда-нибудь провести панель по инфраструктуре WoW, чтобы всё это обрело смысл. В любом случае...

Это оказалось проблемой, но ее было трудно найти, потому что показатели процессора и памяти всех наших сервисов были в полном порядке, им было даже скучно. И когда команда игровых сервисов http://Battle.Net взглянула на свои службы, с которыми мы общались и от которых получали тайм-ауты, им тоже было скучно. Что за чертовщина. В конце концов инженеры выяснили, что мы уперлись в систему дозирования BGS, которая защищает их сервисы от падения при экстремальной нагрузке. Наш крошечный РЕГИОНАЛЬНЫЙ мир с его двумя соединениями, через которые пытались войти ОЧЕНЬ МНОГО пользователей, хоть и не был загружен по процессору даже близко к пределу, полностью ломал математические расчеты, которые использовала та система. Мы увеличили это число с 2 до 8, и шлюзы тут же снова открылись. Мы все признали, что нам нужно больше логов и уведомлений о срабатывании этой системы, но это первый случай, когда кто-то видел ее активацию без очевидной проблемы с процессором в придачу. 20 лет, и всегда что-то новое.

Что дальше... Ах да, вскоре после этого многие из вас заметили долгий сбор добычи, принятие заданий и т. д. — всё, что взаимодействовало с базой данных. База данных PTR, которую использует бета, очень долго отвечала на запросы. Нашим бесстрашным инженерам баз данных Oracle пришлось выполнить ручной анализ (analyze) всех таблиц и настроить автоматические задания для его периодического повторения. Это произошло потому, что некоторые из этих таблиц были новыми, а в существующих таблицах наблюдалось безумное количество вставок и новое поведение запросов, поэтому всё нужно было проверять чаще, пока данные всё еще так сильно менялись. Как только это было сделано, производительность БД мгновенно пришла в норму. Для инженеров БД: да, мы говорим analyze, потому что мы старые, мы знаем, что это DBMS_STATS.

Перезагрузки! Мы всех выкинули. Через несколько часов мы заметили, что наши пулы WORLD, на которых запускается, собственно, симуляция игры, в которую вы играете, безумно греют процессоры и у них почти закончилась память. Затем мы начали видеть, как первые виртуальные машины попадают под удар OOM-киллера, угрожая обрушить гипервизор. Инженеры Classic смогли определить, что мы некорректно закрывали пустые карты, поэтому мы медленно — ну, не так уж и медленно — пожирали ресурсы процессора и памяти. Одно быстрое исправление прошло через QA, но требовало перезагрузки для вступления в силу. Мы также воспользовались случаем, чтобы добавить несколько дополнительных миров WORLD на всякий случай и дали тому РЕГИОНАЛЬНОМУ сервису дополнительного «друга», просто про запас.

Снова пометили как онлайн, и вы все хлынули внутрь без лишней суеты. Сейчас всё идет невероятно гладко для первых нескольких часов публичной беты. Команды Classic следят за ситуацией и исправляют любые возникающие блокирующие ошибки, но в остальном мы на сегодня закончили, наслаждайтесь!

Источник: WoWHead