Jump to content
Калькуляторы

странное поведение 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?

 

 

Share this post


Link to post
Share on other sites

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

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

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

watch cat /proc/interrupts

 

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

Share this post


Link to post
Share on other sites

Без вар-в :)

ethtool -i eth3

driver: ixgbe

version: 3.2.10-NAPI

firmware-version: 0.9-3

bus-info: 0000:02:00.0

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

Share this post


Link to post
Share on other sites

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

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

 

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

Edited by SokolovS

Share this post


Link to post
Share on other sites

у нее 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 кеша или межпроцесорное взаимодействие.

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

to SokolovS :

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

 

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

Share this post


Link to post
Share on other sites

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 оказывается не поддерживается :(

Share this post


Link to post
Share on other sites

У нас несколько другая задача, я делаю шейпер, а для роутинга с 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

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

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

 

Share this post


Link to post
Share on other sites

to drv_sevstar

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

Спасибо.

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this