При наплыве игроков серверы добавляются автоматически, но подготовка занимает несколько минут, и всё это время существующие серверы перегружены.
Почему Резкий рост подключений со стартом события → Следствие Несколько минут, пока новый сервер запустится и будет готов → На экране Первые несколько минут после старта события слоумо и ошибки входа
При наплыве игроков, Сразу после входа или техработ
Ответственные
Основной ответственный Команда инфраструктуры · Серверная инфраструктура · Совместно Команда разработки · Разработка сервера
Команда разработки: задачи
Распределять игроков по каналам (тех, кто уже сидит в переполненном канале, на новый сервер не перенести), сократить время старта и загрузки данных на новом сервере.
Команда инфраструктуры: задачи
Масштабировать заранее до события, держать прогретые резервные серверы, при сокращении выключать сервер только после ухода оставшихся игроков.
Цифры для ориентира
На обнаружение нагрузки уходит от 1 до нескольких минут (метрики усредняются за несколько минут), ещё несколько минут на запуск нового сервера, чтение игровых данных и заполнение кэша.
На графике
Всплеск сразу после входа или техработ · число инстансов, загрузка CPU, очередь на вход
Где смотреть
Наложить журнал автомасштабирования (момент решения о масштабировании и момент ввода нового инстанса в работу) на графики загрузки CPU и числа подключений. В AWS смотреть метрики группы Auto Scaling (видны, только если их включить) GroupDesiredCapacity (целевое число), GroupPendingInstances (готовятся) и GroupInServiceInstances (в работе)
Подтверждает
Несколько минут после всплеска подключений растут только целевое число и число готовящихся инстансов, а CPU существующих серверов держится у лимита и отпускает с того момента, когда растёт число инстансов в работе
Опровергает
Если и после ввода новых инстансов всё тормозит, причина не связана с числом серверов (общий ресурс вроде БД, каскадный отказ)
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)
Подробнее
Автомасштабирование обычно применяют там, где новых игроков достаточно принять на новом сервере: авторизация, шлюзы, данжи. Проблемы бывают и при сокращении. Если ночью, когда игроков мало, выключать лишние серверы, не дожидаясь ухода оставшихся игроков, у этих игроков будет дисконнект.
Amazon CloudWatch metrics for Amazon EC2 Auto ScalingAWS Метрики группы публикуются с шагом 1 минута, только если их включить: GroupDesiredCapacity (сколько инстансов нужно поддерживать), GroupPendingInstances (число инстансов, ещё не введённых в работу), GroupInServiceInstances (число инстансов в работе)