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

Анатомия игровых лагов › L6 Сетевая карта сервера

Исчерпание пропускной способности NIC NIC bandwidth saturation

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

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

Если карта на 1 Gbps или 10 Gbps загружена до предела, очередь отправки растёт, и в итоге пакеты отбрасываются.

Почему Из-за роста рассылки объём отправки доходит до предела карты → Следствие Очередь отправки растёт, а при переполнении пакеты отбрасываются → На экране Задержка и потери на всём сервере (задержка ввода, телепортация)

Симптомы
Задержка ввода, Телепортация
Факторы
Задержка, Потери
У кого
Весь сервер
Когда
При наплыве игроков
Ответственные
Основной ответственный Команда разработки · Разработка сервера · Совместно Команда инфраструктуры · Серверная инфраструктура
Команда разработки: задачи
Сократить объём отправки (фильтрация по зоне интереса AOI, сжатие, отправка только изменений).
Команда инфраструктуры: задачи
Нарастить сетевые карты (более быстрая NIC, в облаке более крупный инстанс), поставить алерт на загрузку NIC.
На графике
Упор в лимит (плато) · объём отправки NIC, отбрасывания при отправке
Где смотреть
Сравнить txkB/s и %ifutil (загрузку относительно скорости интерфейса) из sar -n DEV 1 со скоростью NIC и полосой инстанса и заодно посмотреть TX dropped в ip -s link
Подтверждает
Объём отправки выходит на плато около предела NIC или полосы инстанса, и с этого момента растут отбрасывания при отправке и задержка на всём сервере
Опровергает
Если запас по полосе есть, причина в другом. Если много мелких пакетов и есть потери, это «Превышен лимит PPS в облаке»
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)

Источники

  1. Interface statistics Linux kernel
    tx_dropped: число пакетов, отброшенных при отправке из-за нехватки ресурсов
  2. Amazon EC2 instance network bandwidth AWS
    Полоса, доступная инстансу, зависит от числа vCPU (размера инстанса)
  3. sar(1) — Linux manual page sysstat
    rxkB/s, txkB/s и %ifutil (загрузка относительно скорости интерфейса) в -n DEV

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

Тот же слой: L6 Сетевая карта сервера

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

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