Превышен лимит 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 растёт, когда таблица отслеживания соединений заполнена и новые соединения отбрасываются. Если место в таблице есть, а рвутся только неактивные соединения, у которых истекло отслеживание, смотрите причину «Истечение отслеживания соединений в облачной группе безопасности».
Источники
Monitor network performance for ENA settings on your EC2 instanceAWS У каждого инстанса есть лимиты пропускной способности, PPS и отслеживания соединений, превышение сначала копится в очереди, потом отбрасывается, счётчики pps_allowance_exceeded и conntrack_allowance_exceeded
Amazon EC2 instance network bandwidthAWS «До N Gbps» у инстансов с 16 vCPU и меньше означает burst за счёт кредитов сетевого ввода-вывода (обычно 5–60 мин), когда кредиты заканчиваются, полоса возвращается к базовой