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

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

Проблемы драйвера и прошивки NIC NIC hang / reset

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

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

Из-за ошибки драйвера или сбоя какой-то функции карта зависает и перезапускается, и на это время весь приём и отправка прекращаются.

Почему Ошибка драйвера, сбой функций offload → Следствие NIC зависает и перезапускается (несколько секунд) → На экране У всех на этом сервере одновременно фриз, затем телепортация или дисконнект

Симптомы
Фриз, Дисконнект
Факторы
Потери
У кого
Весь сервер
Когда
Изредка, случайно, Чем дольше без перезапуска
Ответственные
Основной ответственный Команда инфраструктуры · Серверная инфраструктура
Команда инфраструктуры: задачи
Отслеживать в логе ядра записи «transmit queue … timed out» и «Link is Down» и ставить на них алерты, обновить драйвер и прошивку, отключить проблемную функцию (offload и т. п.).
На графике
Провал, затем пачка · пакеты сервера на приём и отправку
Где смотреть
Найти в логе ядра через dmesg записи «NETDEV WATCHDOG … transmit queue N timed out», сброс драйвера, «Link is Down» и «Link is Up» и посмотреть число пакетов сервера на приём и отправку в это время
Подтверждает
В момент остановки в логе ядра есть таймаут очереди отправки или падение и подъём линка, и на эти несколько секунд число принятых и отправленных пакетов падает до 0
Опровергает
Если лог ядра чист и порт на коммутаторе в порядке, это остановка процесса игрового сервера («Полная пауза GC на сервере», «Дедлок») или «Переключение сетевого оборудования на резерв (failover)»
Чем проверить
Инструменты инфраструктуры (игровой код не нужен)

Источники

  1. net/sched/sch_generic.c (Linux v6.12) Linux kernel
    Если очередь отправки зависла, watchdog ядра пишет «NETDEV WATCHDOG … transmit queue N timed out» и вызывает функцию сброса драйвера
  2. drivers/net/ethernet/intel/ixgbe/ixgbe_main.c (Linux v6.12) Linux kernel
    Драйвер ixgbe при зависании отправки сбрасывает адаптер, а при падении линка пишет «NIC Link is Down»
  3. ethtool(8) — Linux manual page ethtool
    Опция ethtool -K, чтобы отключать функции offload по одной

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

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

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

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