Перейти к содержимому
Калькуляторы

Сетевая X520-DA2 (82599ES) и rx_missed_errors: 1402552 что посмотреть на серваке, в чем причины?

два процесора E5620  @ 2.40GHz, чипсеты контроллеры 5520/5500  5600, памяти по 4ГБ на каждый CPU,  СентОС 6.9 с ядром  4.12.0-1.el6.elrepo.x86_64

в сервере две  X520-DA2 карточки  # ethtool -i eth2  -    driver: ixgbe  version: 5.1.3.    сервер используется как бордер (bird) + NETFLOW

Эта штука rx_missed_errors: 1402552   случается на eth2 интерфейсе, который смотрит внутрь сети. на внешнем eth5  rx_missed_errors  по нулям

 

eth2 включен DAC кабелем в коммутатор 4948E,  в eth5 SFP+ модуль и дальше оптика до бордера провайдера

eth2 и eth5 - это разные сетевые карты

 

/etc/modprobe.d/ixgbe.conf

options ixgbe IntMode=2,2,2,2 InterruptType=2,2,2,2 RSS=4,4,4,4 InterruptThrottleRate=10000,10000,10000,10000 MQ=1,1,1,1 LRO=0,0,0,0 allow_unsupported_sfp=1,1,1,1

прерывания  прибиты к процам

/etc/rc.local

#OSPF
/usr/src/ixgbe-5.1.3/scripts/set_irq_affinity 4-7 eth2
#BGP
/usr/src/ixgbe-5.1.3/scripts/set_irq_affinity 0-3 eth5

 

ethtool -G eth2 rx 2048 tx 2048
ethtool -C eth2 rx-usecs 512
ethtool -G eth5 rx 2048 tx 2048
ethtool -C eth5 rx-usecs 512

ethtool -A eth2 tx off rx off
ethtool -A eth5 tx off rx off

 

 

 

rx_missed_errors на eth2 случается даже в те моменты когда трафик спадает до минимума

счетчик rx_missed_errors  мониторится раз в минуту по SNMP поэтому вижу что счетчик раз в минуту прибавил + 2800  Характер появления - не предсказуемый  и резкий (за минуту)

 

через сервер пролетает 190000 пакетов/сек  загрузка soft_irq по ядрам - не более 2-3% в чнн

 

че можно глянуть или покрутить, как мониторить с чем могет это быть связано?

у кого с чем был rx_missed_errors  связан?

 

 

Изменено пользователем QWE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Была аналогичная проблема, иногда отягчаемая еще и флапом порта на сетевухе с DAC. Перевели все на нормальную оптику и забыли про все эти чудеса.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

+1 к выбросить даг-кабель, MM-трансиверы SFP+ стоят копейки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 06.09.2019 в 06:45, vurd сказал:

+1 к выбросить даг-кабель, MM-трансиверы SFP+ стоят копейки.

заменили DAC на SFP+ модули, проблема остается

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что показывает статистика со стороны коммутатора?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

13 минут назад, jffulcrum сказал:

А что показывает статистика со стороны коммутатора?

#show interface tenGigabitEthernet 1/50
TenGigabitEthernet1/50 is up, line protocol is up (connected)
  Hardware is Ten Gigabit Ethernet Port, address is 7081.0564.5b71 (bia 7081.0564.5b71)
  Description: ##BRD1-10G-ETH2##
  MTU 1546 bytes, BW 10000000 Kbit, DLY 10 usec,
     reliability 255/255, txload 11/255, rxload 14/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
  Full-duplex, 10Gb/s, link type is auto, media type is 10GBase-LR
  input flow-control is off, output flow-control is off
  ARP type: ARPA, ARP Timeout 04:00:00
  Last input never, output never, output hang never
  Last clearing of "show interface" counters 1y43w
  Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 0
  Queueing strategy: fifo
  Output queue: 0/40 (size/max)
  30 second input rate 560008000 bits/sec, 78386 packets/sec
  30 second output rate 434443000 bits/sec, 110248 packets/sec
     2440081015454 packets input, 2084171614135343 bytes, 0 no buffer
     Received 695607888 broadcasts (6718137 multicasts)
     0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 46154 overrun, 0 ignored
     0 input packets with dribble condition detected
     3582127690193 packets output, 1950313681369269 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 babbles, 0 late collision, 0 deferred
     0 lost carrier, 0 no carrier
     0 output buffer failures, 0 output buffers swapped out

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Увеличьте буферы rx, максимум вроде как 4096 для этой карты

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

mpstat -P ALL 1

проверьте, не упирается ли одно из ядер по нагрузке

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 23.09.2019 в 17:13, jffulcrum сказал:

Увеличьте буферы rx, максимум вроде как 4096 для этой карты

увеличил, месяц без ошибок

как увеличение до 4096 повлияло?

и что было причиной?

 

ядро процессора медленное и не успевает разгребать пакеты?  Ставить процессор погорячее?

буфер размером 2048  переполнялся   микроберстами?

 

В 27.09.2019 в 03:22, nuclearcat сказал:

mpstat -P ALL 1

проверьте, не упирается ли одно из ядер по нагрузке

с усреднением 1 сек Soft irq  максимальноая загрузка одного из ядер не превышает   5-6%, прерывания по всем ядрам размазаны(загрузка до 1-4%), но одно выпирает до 5-6%

Изменено пользователем QWE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Высокий PPS, скорее всего, буфер переполнялся. Кстати, заодно проверьте счетчик со стороны коммутатора, если 

В 23.09.2019 в 15:52, QWE сказал:

46154 overrun

вырос значительно, значит у вас с PPS уже и порт Cisco не справляется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

если у драйвера увеличить InterruptThrottleRate=10000,10000,10000,10000   помогло бы? учитывая что нагрузка на процессор  не высокая ?

или будут пропадения пакетов в трудно диагностируемом месте?

 

порт Cisco 10Гбит/с , счетчик overrun    не увеличился за месяц

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Прерывания никуда не деваются, он просто объединяются в пачки, чтобы на каждый фрейм не дергать. 

 

43 минуты назад, QWE сказал:

счетчик overrun    не увеличился за месяц

Радуемся жизни.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

44 минуты назад, jffulcrum сказал:

Прерывания никуда не деваются, он просто объединяются в пачки, чтобы на каждый фрейм не дергать.

Пачки поменьше сделать, чаще проц дергать прерываниями, чаще буфер очищать.

Изменено пользователем QWE

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В моем случае помогло отключение  FlowDirector-а  ethtool -K ethX ntuple on, решение нашел здесь https://sourceforge.net/p/e1000/bugs/383/. Точнее наоборот включение.

 

ethtool -C ethX rx-usecs 0 tx-usecs 0  уменьшение этих значений увеличивает загрузку на CPU, но снижает потери пакетов. Так же в новых драйверах есть глюк который не позволяет использовать количество очередей карты равное количеству ядер на процессорах. Такое поведение было допустимо на ядрах 3.2. Уже на 3.13 количество очередей должно быть равно количеству ядер одного процессора. Даже если карта не привязана к конкретной NUMA-е.

Изменено пользователем big-town

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Увеличилась нагрузка и снова появились   rx_missed_errors. 

 

Обе сетевые карты  X520-DA2  включены к NUMA0(CPU0)

 

# cat /sys/class/net/eth5/device/numa_node
0
#  cat /sys/class/net/eth2/device/numa_node
0

 

Вылечилось так

вместо  /usr/src/ixgbe-5.1.3/scripts/set_irq_affinity 4-7 eth2

стало    /usr/src/ixgbe-5.1.3/scripts/set_irq_affinity 0-3 eth2

Пакеты с сетевух X520-DA2 стали обрабатываться одним процессором, второй (CPU1) стоит в сторонке.

 

Есть способ  как eth2 прибить к numa1?  

или это есть  проблема многопроцессорных систем для использования в качестве роутера?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 07.12.2022 в 23:11, QWE сказал:

Есть способ  как eth2 прибить к numa1 и перекинуть прерывания на CPU1?  

или это есть  проблема многопроцессорных систем для использования в качестве роутера?

дык переткните сетевуху в pci-слот, висящий на CPU1, и всех делов... (ну если такой слот распаян на плате. а то есть у меня печальный DL160 Gen8, у которого все слоты на CPU0 повешены)

 

upd: модель материнки напишите.

Изменено пользователем nixx

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 08.12.2022 в 00:20, nixx сказал:

дык переткните сетевуху в pci-слот, висящий на CPU1, и всех делов... (ну если такой слот распаян на плате. а то есть у меня печальный DL160 Gen8, у которого все слоты на CPU0 повешены)

понятно, надо смотреть спеку на мать и шасси.

такой еще вопрос.

допустим переткну сетевушку в слот который разведен на CPU1 и прерывания с нее перевешу на него. В планках памяти какого CPU (будет) храниться таблица маршрутизации для выполнения route lookup (поиск наилучшего маршрута)  ?   

или linux умный - он хранит две одинаковые таблицы маршрутизации (ТМ) и размещает  ТМ  в планках памяти каждого CPU? (чтобы процы не мешали друг другу)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Цитата

или linux умный - он хранит две одинаковые таблицы маршрутизации (ТМ) и размещает  ТМ  в планках памяти каждого CPU? (чтобы процы не мешали друг другу)

Таблица хранится в одном месте, и в многопроцессорных системах обращение к ней из другой NUMA будет связано с соответствующими накладными расходами. Там же еще будет веселье, когда данные надо перекидывать с сетевухи на одном процессоре на сетевуху на другом процессоре, тут все ништяки от больших процессорных кэшей пойдут гулять лесом. Потому для маршрутизаторов и BRAS оптимальнее ставить однопроцессорные сервера. И уже в рамках одного процессора выбирать баланс между количеством ядер/размерами кэшей/частоте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

блин. это же 1366 сокет. был неправ, не получится такого.

 

ps: может, есть смысл проапгрейдиться хотя бы до 2011 сокета?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что лучше для роутинга - процессор 4 ядра с частотой 3,6ГГц или 6 ядер с частотой 3,46ГГц   для имеющегося сокета 1366 двухпроцессорной материнки?

на какой лучше проапгрейдиться? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Лучше для роутинга большие кэши и много ядер и всё на одном проце + быстрая память и шины. i7 и i9 последних поколений в "максималочке".

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кстати, на амд кто нить роутит у себя? Там и частоты, и ядра, и кеши вроде как завезли, ну и ценник сответственно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

 

"ps: может, есть смысл проапгрейдиться хотя бы до 2011 сокета? "   

  что   в нем будет  лучше чем то что есть у меня сейчас? ddr4 ? и производительные процы? 

 

Недостатки архитектуры в системе на 2011 сокете  с двумя NUMA так же остаются?

 

 

форум наг сломался - не нажимается  "Ответить с цитированием",

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Как понять сколько процессор при маршрутизации ждет оперативную память?

фулл вью в КЭШ ни какого процессора не влезет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.