Бета открылась 17 сентября и первые часы почти не работала: очередь, а за очередью — отключение. Вечером того же дня старший продюсер Том Эллис выложил подробный разбор в X. Такие тексты от Blizzard выходят редко, поэтому разберём его целиком.

Начал он с вопроса, который сам назвал самым частым: игре двадцать лет, почему вы до сих пор не умеете это делать.

Дело в стенде, а не в игре

Первое, что Эллис объяснил, — где всё это крутится.

This is our BETA PTR environment stack, it's not a Production stack by a long, long, long, long, long, long shot.

То есть бета живёт на стенде PTR, а не на боевом. Причина не в экономии: беты WoW исторически почти не дают нагрузки, и железо под них никогда не закладывали всерьёз. Тестовая среда работает на одном региональном реале. Отсюда и выросли все три проблемы того вечера.

Первое: отключения

Искали полчаса, потому что искать было нечего. Процессор и память по всем сервисам были в порядке — «bored even», по словам Эллиса. Команда Battle.net Game Service проверила свою сторону и увидела то же самое.

Причиной оказался счётчик нагрузки, который защищает BGS от обвала. Маленький региональный стенд гнал огромный поток входов через два соединения, и это ломало арифметику, по которой счётчик решает, пора ли паниковать. Соединений сделали восемь — отключения прекратились мгновенно.

Эллис отметил, что счётчик впервые сработал без сопутствующей нагрузки на процессор, и добавил строчку, которую потом растащили на цитаты: «20 years, always something new».

Второе: тормоза при добыче и сдаче заданий

Второй симптом — медленно открывается добыча, медленно берётся задание. Здесь виновата база данных PTR: новые таблицы и большой поток вставок в старые оставили планировщик запросов со старыми представлениями о данных.

Инженеры Oracle прогнали статистику вручную и поставили автоматические задания, чтобы пересчёт шёл сам. Скорость вернулась сразу.

Третье: перезапуск

Через несколько часов пришлось выгнать всех. Пулы WORLD, на которых считается сама игра, жгли процессор и упирались в память, а первые виртуальные машины уже начал забирать OOM killer — с риском утянуть за собой гипервизор.

Причину нашли инженеры Classic: пустые карты не выключались как надо, и серверы медленно съедали собственные ресурсы. Исправление прошло проверку, но требовало перезапуска. Заодно добавили запасных WORLD и второй экземпляр регионального сервиса.

После этого, по словам Эллиса, ночь прошла тихо: «Marked live once again and you all poured in without fuss».

Почему нагрузку не угадали

Потому что таких чисел не было давно. Ведущий дизайнер Джош Гринфилд (Aggrend) написал в X:

Man, it was hard to sleep last night, I was so excited. Beta has been... crazy. The craziest numbers I've seen in 17 years working at Blizzard and almost 8 years on classic. We've got something really special here.

Семнадцать лет в Blizzard и почти восемь в команде Classic — и таких чисел он не видел. Стенд под бету закладывали по опыту прошлых бет, а пришла аудитория запуска.

Что из этого следует для 4 ноября

Прямо — ничего. Боевой стенд к бете отношения не имеет, и ни один из трёх сбоев не говорит о готовности игры. Косвенно — кое-что говорит: спрос оказался выше внутренних прогнозов самой Blizzard, а значит очереди на старте стоит закладывать в планы.