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

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

Превышен лимит PPS в облаке Cloud PPS / bandwidth allowance

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

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

У каждого типа облачного сервера есть лимиты пакетов в секунду и пропускной способности, и всё сверх лимита молча отбрасывается.

Почему Онлайн растёт, и число пакетов в секунду превышает лимит инстанса → Следствие Облачная сеть отбрасывает превышение → На экране Потери непонятного происхождения, телепортация, съеденные умения. При этом у CPU сервера есть запас

Симптомы
Телепортация, Съеденные действия / роллбэк
Факторы
Потери
У кого
Весь сервер
Когда
При наплыве игроков, Вечерний пик
Ответственные
Основной ответственный Команда инфраструктуры · Серверная инфраструктура · Совместно Команда разработки · Разработка сервера, Внешние стороны · Внешние стороны
Команда разработки: задачи
Объединять пакеты (сообщения одного тика в одном пакете), не отправлять часто совсем мелкие пакеты.
Команда инфраструктуры: задачи
Проверять счётчики превышения лимитов (в AWS pps_allowance_exceeded, conntrack_allowance_exceeded и др.) и ставить на них алерты, переходить на более крупный инстанс, лимит отслеживания соединений обходить конфигурацией группы безопасности без отслеживания.
Внешние стороны: задачи
Запросить у облачного провайдера лимиты пакетов в секунду и отслеживания соединений для каждого типа инстансов.
Цифры для ориентира
Лимиты зависят от размера инстанса, а лимит пакетов в секунду часто не раскрывают. «До 10 Gbps» у небольших инстансов означает скорость в режиме burst, доступную только пока есть кредиты (обычно 5–60 мин), а базовая скорость намного ниже.
На графике
Упор в лимит (плато) · пакеты в секунду, счётчики превышения allowance
Где смотреть
Собирать с коротким интервалом счётчики ENA из ethtool -S: pps_allowance_exceeded, bw_in_allowance_exceeded, bw_out_allowance_exceeded, conntrack_allowance_exceeded и смотреть их вместе с числом пакетов в секунду. Можно также отправлять эти счётчики в CloudWatch через агент и ставить на них алерты
Подтверждает
В момент потерь растут счётчики превышения allowance, а число пакетов в секунду упирается в одно значение. У CPU сервера есть запас
Опровергает
Если счётчики превышения не меняются, причина в другом. Если %soft одного ядра 100%, это «Все прерывания NIC на одном ядре»
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)
Подробнее
conntrack_allowance_exceeded растёт, когда таблица отслеживания соединений заполнена и новые соединения отбрасываются. Если место в таблице есть, а рвутся только неактивные соединения, у которых истекло отслеживание, смотрите причину «Истечение отслеживания соединений в облачной группе безопасности».

Источники

  1. Monitor network performance for ENA settings on your EC2 instance AWS
    У каждого инстанса есть лимиты пропускной способности, PPS и отслеживания соединений, превышение сначала копится в очереди, потом отбрасывается, счётчики pps_allowance_exceeded и conntrack_allowance_exceeded
  2. Amazon EC2 instance network bandwidth AWS
    «До N Gbps» у инстансов с 16 vCPU и меньше означает burst за счёт кредитов сетевого ввода-вывода (обычно 5–60 мин), когда кредиты заканчиваются, полоса возвращается к базовой

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

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

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

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