Ошибка обычно выглядит примерно так:
[ 7139.664994] ice 0000:c1:00.0 ens13f0: tx_timeout recovery unsuccessful, device is in unrecoverable state.
[ 7144.528992] ice 0000:c1:00.0 ens13f0: NETDEV WATCHDOG: CPU: 61: transmit queue 0 timed out 1329236 ms
[ 7149.648246] ice 0000:c1:00.0 ens13f0: NETDEV WATCHDOG: CPU: 61: transmit queue 0 timed out 1334356 ms
[ 7149.649362] ice 0000:c1:00.0 ens13f0: tx_timeout recovery unsuccessful, device is in unrecoverable state.
[ 7154.512396] ice 0000:c1:00.0 ens13f0: NETDEV WATCHDOG: CPU: 61: transmit queue 0 timed out 1339220 ms
[ 7159.632556] ice 0000:c1:00.0 ens13f0: NETDEV WATCHDOG: CPU: 61: transmit queue 0 timed out 1344340 ms
Есть ряд проблемных серверов, а именно имеющих процессор - AMD EPYC 7643 48-Core Processor и сетевую карту ntel Corporation Ethernet Controller E810-XXV с драйвером
ice.Мы обнаружили на нагруженных kafka кластерах, где на один инстанс может приходиться до 3 гигабайт сетевого трафика, ошибку как на скрине. Сервер вставал колом из-за этого.
Прочие симптомы:
1. Потери пакетов.
2. Высокое latency ответов и пинга.
3. Утилизация ядер потоками ksoftirqd.
Обычно достаточно под тюнить ядро, мы запускаем так:
module_blacklist=cdc_ether intel_idle.max_cstate=0 processor.max_cstate=1 intel_pstate=disable noibrs noibpb nopti nospectre_v2 nospectre_v1 l1tf=off nospec_store_bypass_disable no_stf_barrier mds=off mitigations=off pcie_aspm=off idle=poll iommu=pt quiet
Затем обновляем ice драйвер до последней версии.
В
sysctl.conf ставим параметр:net.core.rps_sock_flow_entries = 32768
В
sysfs.conf для каждого ядра:class/net/<interface_name>/queues/rx-0/rps_flow_cnt = 2048
Обычно хватает и опций в grub.
#linux