한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Анатомия игровых лагов › L5 Сетевое оборудование ЦОД

Перекос балансировки и ошибки health check LB imbalance, bad health checks

ID причины dc-lb-imbalance · Основной ответственный Команда инфраструктуры · Сетевая инфраструктура · Совместно Команда разработки · Разработка сервера

Открыть карточку в основной версии с иллюстрациями и экспериментами →

Соединения скапливаются на одном сервере, или балансировщик продолжает отправлять игроков на уже упавший сервер.

Почему Правило распределения не подходит, или health check (проверка работоспособности) не видит реального состояния → Следствие Перегружен только один сервер, или подключения идут на упавший сервер → На экране Только в части каналов или у части игроков слоумо, ошибка входа или бесконечная загрузка

Симптомы
Слоумо, Ошибка входа / бесконечная загрузка
Факторы
Остановка, Потери
У кого
Одна локация или канал
Когда
Сразу после входа или техработ, При наплыве игроков
Ответственные
Основной ответственный Команда инфраструктуры · Сетевая инфраструктура · Совместно Команда разработки · Разработка сервера
Команда разработки: задачи
Реализовать health check, который отвечает на запрос балансировщика по реальному состоянию игры (идут ли тики, есть ли соединение с БД), и сообщать заодно нагрузку сервера.
Команда инфраструктуры: задачи
Перевести health check на проверку реального ответа игры, распределять по нагрузке серверов, отслеживать разницу в числе соединений между серверами.
На графике
Высоко только у некоторых · число соединений и загрузка CPU по серверам
Где смотреть
Наложить на один график число соединений (ss -s) и загрузку CPU каждого сервера за балансировщиком и сравнить статус health check целей на балансировщике (в AWS HealthyHostCount и UnHealthyHostCount в CloudWatch) с реальным состоянием игровых серверов
Подтверждает
У одного-двух серверов число соединений и CPU намного выше, чем у остальных, или сервер с остановившимися тиками числится «исправным» и продолжает принимать новые подключения
Опровергает
Если соединения распределены по серверам ровно, а тормозит только один канал, дело в нагрузке внутри этого канала («Перегрузка однопоточной локации (хотспот)»)
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)
Реальные инциденты
AWS 2025: Сбой DNS DynamoDB в AWS us-east-1 и долгое восстановление

Источники

  1. Load Balancing in the Datacenter Google
    При простом round robin загрузка CPU между задачами расходится до 2 раз, взвешенное распределение, при котором бэкенд передаёт свою нагрузку в ответах и health check, состояние lame duck, в котором бэкенд просит больше не присылать ему запросы
  2. Health checks for Network Load Balancer target groups AWS
    Health check по умолчанию раз в 30 с, после 2 неудач цель исключается, UDP-сервисы проверяются через TCP или HTTP health check, поэтому рекомендуется настроить проверку так, чтобы она отражала реальное состояние сервиса
  3. CloudWatch metrics for your Network Load Balancer AWS
    HealthyHostCount и UnHealthyHostCount: число целей, признанных исправными и неисправными

Смотрите также

Тот же слой: L5 Сетевое оборудование ЦОД

Причины с тем же симптомом (Слоумо) на других слоях

Карточка в основной версии с иллюстрациями и экспериментами