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

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

Микробёрсты на коммутаторе Switch microburst drops

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

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

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

Почему Появление мирового босса, массовое умение или совпавшие во времени тики нескольких серверов, и всё отправляется разом → Следствие Буфер (от сотен KB до нескольких MB на порт) там, где несколько портов сходятся в один или быстрый порт переходит в медленный, мгновенно заполняется → На экране Часть пакетов отбрасывается, у многих игроков одновременно телепортация и съеденные умения

Симптомы
Телепортация, Съеденные действия / роллбэк
Факторы
Потери
У кого
Одна локация или канал
Когда
При наплыве игроков
Ответственные
Основной ответственный Команда разработки · Разработка сервера · Совместно Команда инфраструктуры · Сетевая инфраструктура, Команда инфраструктуры · Серверная инфраструктура
Команда разработки: задачи
Распределять отправку равномерно внутри тика (пейсинг), немного сдвигать начало тика на разных серверах.
Команда инфраструктуры: задачи
Сеть: коммутаторы с большими буферами, распределение трафика (разносить серверы по разным коммутаторам и портам), мониторинг счётчиков отбрасывания по портам коммутаторов. Серверы и ОС: ограничить общую скорость отправки сервера (шейпер tc в Linux).
Цифры для ориентира
Порт 10 Gbps за 1 ms может отправить около 1,25 MB. Если трафик двух портов одновременно сходится в один, каждую миллисекунду в очереди прибавляется 1,25 MB. Даже при средней загрузке 10% за секунду на интервале 1 ms порт может переполняться.
На графике
Растёт вслед за онлайном и нагрузкой · выходные отбрасывания на портах коммутатора
Где смотреть
Собирать с минимально возможным интервалом счётчики выходных отбрасываний (ifOutDiscards, на некоторых устройствах output drops) на портах коммутатора, к которым подключены серверы, и на портах, где сходится их трафик, и сопоставлять с моментами появления босса и массовых боёв. На графиках средней загрузки за 1 с или 1 мин этого не видно
Подтверждает
Средняя загрузка низкая, но каждый раз, когда игроки собираются в одном месте, растут выходные отбрасывания, и в эти же моменты многие игроки одновременно жалуются на телепортацию и съеденные умения
Опровергает
Если отбрасывания стабильно растут в часы высокой средней загрузки, это «Перегрузка линии связи ЦОД». Если растут ошибки приёма (CRC), это «Неисправный кабель и ошибки порта»
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)

Источники

  1. High-Resolution Measurement of Data Center Microbursts (IMC 2017) ACM
    Больше 70% всплесков трафика в ЦОД длятся не дольше нескольких десятков µs, пакеты отбрасываются из-за всплесков даже на портах со средней загрузкой около 9%
  2. Data Center TCP (DCTCP) (SIGCOMM 2010) ACM
    У типовых коммутаторов неглубокие буферы (48 портов делят 4 MB, один порт может занять около 700 KB), если несколько потоков на короткое время сходятся в один порт, возникают потери
  3. RFC 2863: The Interfaces Group MIB IETF
    ifOutDiscards: число пакетов, которые не были отправлены и отброшены без ошибок, например чтобы освободить место в буфере

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

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

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

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