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

странное поведение irq на intel 10G intel 10G

Добрый день.

Осваиваю сервер по нужды маршрутизации: 4* 6 cores X7542. Поставил 2 Intel 82599EB NICs.

1) Когда я задал RSS 12 и разгружал нагрузку на 1 сетевухе между 12 ядрами (1 и 2 процессор), то на 3,5 Gib/s получал загрузку все 12 процов в 100 % и перезагруз сервера.

2) Эмпирическим путем выяснил, что загрузка процессоров тем больше, чем больше ядер я использую для обрабоки прерываний (тест на 12, 8 и 6 ядрах), видимо ему тяжело получать информацию с других процессоров, а на 1 процессоре на разных ядрах-ОК.

3) В итоге сейчас 1 Сетевуху обслуживает 1 процессор, те 6 ядер, в 5Gib/s в пике потерь нет, загрузка около 50%(потихоньку увеличиваю трафик), включил 2-ю сетевуху и 5Гигов распределил между ними, полет нормлаьный, только вот чего не понимаю.

RSS=6.

 

cat /proc/interrupts показывает 24 TxRx очереди с 0 по 23 (24 очереди видны всегда, какой бы RSS не задавать, на ixgb дровах такого не было).

 

Далее я распределяю первых 6 irg (RSS=6)на 6 ядер:

echo "1000" > /proc/irq/113/smp_affinity (CPU12)

echo "2000" > /proc/irq/114/smp_affinity (CPU13)

echo "4000" > /proc/irq/115/smp_affinity (CPU14)

echo "8000" > /proc/irq/116/smp_affinity (CPU15)

echo "10000" > /proc/irq/117/smp_affinity (CPU16)

echo "20000" > /proc/irq/118/smp_affinity (CPU17)

 

И вижу как увеличиваются счетчики прерываний на 0 ядре, от irq соответсвующим 6-23 очереди.

 

Подскажите плз, как попадают прерывания на NIC в очереди значение которых больше значения RSS?

 

 

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


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

Ты уверен, что используется интеловский драйвер? Проверь.

А вобще у остальных же все единички в маске, т.е. прерывание может обрабатываться любым процессором. Остается вопрос почему вместо 6 очередей сделал 24.

Посмотри в динамике где тикает на остальных очередях:

watch cat /proc/interrupts

 

Кстати раскидывать прерывания удобно моим скриптом: http://forum.nag.ru/forum/index.php?showtopic=60392

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


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

Без вар-в :)

ethtool -i eth3

driver: ixgbe

version: 3.2.10-NAPI

firmware-version: 0.9-3

bus-info: 0000:02:00.0

Скачен с сайта intel.com

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


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

Так-то лучше смотреть modinfo ixgbe, но если уверен, что используется правильный драйвер, то пиши багрепорт.

Покажи еще полностью параметры для драйвера которые используются.

 

P.S.: 5Gbit это только роутинг или что-то еще?

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

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


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

у нее 16 каналов

у меня правда 3.2.9-NAPI, но не думаю что это важно

man ixgbe :

RSS - Receive Side Scaling (or multiple queues for receives)

Valid Range: 0 - 16

 

проверял на 24х ядрах

прерывания назначаются на 24

раскидаю на 24 ядра - пашут только 16

на остальных нагрузка по нулям и счетчики /proc/interupts не клацают.

Назначать пару RxTx с одной сетевухи надо на один физический проц, если раскидывать на разные - резкие тормоза.

Это и понятно - или обмен внутри проца и его л3 кеша или межпроцесорное взаимодействие.

А железка у вас зачетная :) Но результаты не впечатляют.

Тюнить и тюнить.

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


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

На моих серваках HP так и не удалось заставить работать DCA

У кого получилось - поделитесь - прирост есть?

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


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

to SokolovS :

modinfo, как modinfo, вроде ничего сверхъестественного, 3.2.9 driver и 3.2.10 - никаких изменений.

 

5Gbit-да, роутинг крутиться.

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


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

to drv_sevstar:

В моем понимании сетевуха должна работать, как вы описали и мои тесты подтвердили.

Но к сожалению на xeon 7542 все работате совершенно не так как на X5650- тут я проблем не знаю, а там грабли в каждом действии. Например сегодня сервак перегрузился, после того как я эти 5Гигов раскидал на 2 отдельные NICS, по 2,5 примерно на каждый шло.

 

По поводу tunning, все что мог уже подчерпнул на форуме, может вы своими ссылками поделитесь? или даже конфигом ядра, я уже не знаю куда копать, видимо это действительно bugs, связанные с недоработками ПО для нового железа.

 

По поводу DCA, работает на другом серваке, при загрузке int в 5Гигабит/с 12 cores загружена процентов на 30, не больше, ну думаю там при пороге 6-7 гигов тоже начнутся танцы между процессорами, буду все на 1 проц скидывать.

 

PS

А на моем 7500 chipset DCA оказывается не поддерживается :(

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


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

У нас несколько другая задача, я делаю шейпер, а для роутинга с BGP используются циски.

Но в ходе эксперементов, когда снимал все правила tc под нагрузкой, 1 Xeon E5504 с 82599EB легко давал 4 Gbit , с нагрузкой в 10-15% цпу - больше просто не было трафика.

Думаю дал бы и 5 и 6.

И еще - после долгого тюнинга правил tc, на разных процах интел(2 Е5504 - 8 ядер в сумме, 2 Х5660 - 24 ядра в сумме) и амд( оптерон 6128 - 12 ядер ) с NIC 82599EB ну никак не удавалось продавить больше 256-300 kpps / 2-2,5 Gbit

Щейпер на хешах, 2 сетки /18 и /19

16000 классов

Попробовали новые процы от интел Sandy Bridge 2600к, мать десктопная оверлокерская.

Сразу же получили 4 Gbit 0,5Mpps ,без лагов и потерь и с нагрузкой в 4--50% цпу.

Снижали частоту у 2600к до 2 ггц как у E5504, стало немного хуже (совсем не много), но все равно - намного лучше чем у всех остальных Е5504, Х5660

К сожалению новые ксеоны на санди бридж будут только осенью и стоить будут немеряно.

Повод подумать о десктопном железе в продакшн серверах :)

 

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


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

to drv_sevstar

У меня 1 млн pps forwarding делает.

А с tc проде же проблемы на скоростях больше 1Gbit/s, что-то такое читал... но могу ошибаться.

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


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

Здравствуйте,

 

мы используем сервер с 24 ядрами, Vyatta 6.4 и сетвую карту 10Г Intel X520-DA2 (используем два порта в карте) и драйвер этой карты раскидывает прерывания в 16 ядер, подскажите, как драйверу в Vyatta сказать что бы раскидывал на 12 ядер, а не на 16. Что бы мы могли каждый порт карточки в отдельный проц всунуть. А так получается 16 прерываний мы суем в 16 ядер и получается, что 4 ядра загружены на 100%, а 8 ядер на 50% (((

 

Спасибо.

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


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

И еще - после долгого тюнинга правил tc, на разных процах интел(2 Е5504 - 8 ядер в сумме, 2 Х5660 - 24 ядра в сумме) и амд( оптерон 6128 - 12 ядер ) с NIC 82599EB ну никак не удавалось продавить больше 256-300 kpps / 2-2,5 Gbit

Надо гибертрейдинг отключать. Количество ядер на 2-ух 5660 упадет с 24 до 12))))

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


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

Join the conversation

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

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

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

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

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

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

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