ixgbe: TX Unit Hang detected on queue — Решение сбоя 10G карт Intel в Linux
Архитектура ошибки и симптомы сбоя
Сообщение «ixgbe: TX Unit Hang detected on queue» регистрируется драйвером ядра ixgbe для серверных 10-гигабитных сетевых контроллеров Intel (семейства 82599ES, X520, X540, X550). Ошибка указывает на то, что кольцевой буфер передачи (TX Ring Buffer) конкретной аппаратной очереди сетевого адаптера заблокирован. Контроллер не освободил дескрипторы пакетов вовремя, что вызывает срабатывание сторожевого таймера ixgbe watchdog и аварийную перезагрузку линка 10G.
Диагностическая таблица параметров сбоя
| Параметр | Значение | Инженерный смысл сбоя |
|---|---|---|
| ixgbe | Intel 10GbE Driver | Корпоративный сетевой драйвер для 10-гигабитных интерфейсов Intel. |
| TX Queue #N | Hardware Ring | Конкретная аппаратная очередь передачи из пула Multi-Queue (RSS). |
| Trigger | Flow Control / SFP+ Mismatch | Паузы Ethernet Flow Control (802.3x), перегрев оптического трансивера SFP+ или сбой TSO. |
Пошаговое дерево решений и сценарии траблшутинга
Сценарий 1: Отключение Ethernet Flow Control (Пауза-кадров)
Несогласованность Flow Control между коммутатором и картой Intel 10G — главная причина TX Unit Hang:
# Отключение Flow Control (Rx/Tx Pause Frames) на интерфейсе eth0:
sudo ethtool -A eth0 autoneg off rx off tx off
# Проверка текущего статуса Flow Control:
ethtool -a eth0Сценарий 2: Отключение аппаратной разгрузки сегментации (TSO/GSO)
# Отключение аппаратного TSO на 10G адаптере:
sudo ethtool -K eth0 tso off gso off
# Увеличение размера очереди дескрипторов TX/RX до максимума (4096):
sudo ethtool -G eth0 rx 4096 tx 4096Сценарий 3: Разрешение неподдерживаемых SFP+ модулей и обновление прошивки NVM
Если используются сторонние трансиверы SFP+ (DAC-кабели или оптика не от Intel):
# Добавьте опцию в /etc/modprobe.d/ixgbe.conf:
options ixgbe allow_unsupported_sfp=1
# Обновите образ initramfs:
sudo update-initramfs -uITSTM проводит глубокий аудит сетевых фабрик ЦОД, обновление прошивок NVM/EEPROM на адаптерах Intel и оптимизацию BGP/маршрутизации.
Частые вопросы (FAQ)
Почему TX Unit Hang возникает именно на одной конкретной очереди (Queue)?
Сетевые карты 10G используют многоочередность (Multi-Queue / RSS). Если один поток процессора завис или прерывание для этой очереди не было обработано вовремя, застревает только дескриптор соответствующей аппаратной очереди.
Как влияет температура трансивера SFP+ на стабильность ixgbe?
Оптические трансиверы 10GBASE-SR/LR и медные 10G SFP+ RJ45 сильно нагреваются под нагрузкой. При перегреве свыше 70°C оптический модуль искажает сигнал передачи, вызывая застревание буфера TX в чипе.
Что такое FCoE / DCB в контексте ошибок ixgbe?
Если на сетевом адаптере включены протоколы Data Center Bridging (DCB) или Fibre Channel over Ethernet (FCoE), приоритетные паузы Priority Flow Control (PFC) могут блокировать очереди обычного IP-трафика.
Как проверить температуру SFP+ модуля через ethtool?
Выполните команду: sudo ethtool -m eth0 | grep -i temperature (требуется поддержка DDM/DOM трансивером).