AlKov Опубликовано 9 июля, 2010 · Жалоба ОС - CentOS 5.5, ядро 2.6.34, проц. - 2 х Intel Xeon E5503 2.00GHz, сетевая - двухпортовая Intel на 82576, драйвер - от Intel 2.2.9. На сетевых настроены по две очереди. Есть желание раскидать их по ядрам процессоров с помощью smp-affinity. Собственно, как это сделать понятно, но есть пара вопросов: 1. нужно ли при этом отключать irqbalance? Не появится ли проблем по прерываниям у других устройств? 2. cat /proc/interrupts для eth выводит такую инфу CPU0 CPU1 CPU2 CPU3 70: 1 0 0 0 PCI-MSI-edge eth2 71: 505259 0 508813 0 PCI-MSI-edge eth2-TxRx-0 72: 445438 5 441560 0 PCI-MSI-edge eth2-TxRx-1 73: 1 0 0 0 PCI-MSI-edge eth3 74: 727340 0 711455 0 PCI-MSI-edge eth3-TxRx-0 75: 646528 0 646928 5 PCI-MSI-edge eth3-TxRx-1 т.о. получается, что каждая из сетевых карт юзает по 3 прерывания. Отсюда собственно вопрос - как распределить 6 прерываний между 4 ядрами? P.S. Еще один вопрос не совсем по сабж - насколько я понял из readme драйвера, сетевые 82576 умеют MSI-X, но только в режиме одной очереди IntMode ------- Valid Range: 0-2 Default Value: 2 0 - Legacy Interrupts, single queue 1 - MSI interrupts, single queue 2 - MSI-X interrupts, single queue (default) , т.е. при 2-х и более очередях MSI-X не поддерживается. Вопрос собственно такой - может есть смысл юзать MSI-X, вместо "многоочерёдности"? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
stelsik Опубликовано 9 июля, 2010 (изменено) · Жалоба service irqbalance stop RSS вместо VMDQ MSI-X вместо MSI Изменено 9 июля, 2010 пользователем stelsik Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 9 июля, 2010 · Жалоба service irqbalance stopНу это понятно.RSS вместо VMDQКак бы так оно и есть. В modprobe.confoptions igb IntMode=2,2,2,2 RSS=2,2,2,2 InterruptThrottleRate=3000,3000,3000,3000 QueuePairs=1,1 MSI-X вместо MSIА это как определить? P.S. Может быть это в rc.local /sbin/ethtool -K eth2 tso off tx off sg off /sbin/ethtool -G eth2 rx 2048 /sbin/ethtool -G eth2 tx 2048 # /sbin/ethtool -K eth3 tso off tx off sg off /sbin/ethtool -G eth3 rx 2048 /sbin/ethtool -G eth3 tx 2048 # переводит сетевые в этот "странный" режим? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 9 июля, 2010 · Жалоба MSI-X прерывания должны поддерживаться материнкой, возможно есть выбор в биосе, посмотри dmesg на предмет выбора механизма прерываний для сетевух. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ilya Evseev Опубликовано 10 июля, 2010 · Жалоба 2. cat /proc/interrupts для eth выводит такую инфу CPU0 CPU1 CPU2 CPU3 70: 1 0 0 0 PCI-MSI-edge eth2 71: 505259 0 508813 0 PCI-MSI-edge eth2-TxRx-0 72: 445438 5 441560 0 PCI-MSI-edge eth2-TxRx-1 73: 1 0 0 0 PCI-MSI-edge eth3 74: 727340 0 711455 0 PCI-MSI-edge eth3-TxRx-0 75: 646528 0 646928 5 PCI-MSI-edge eth3-TxRx-1 т.о. получается, что каждая из сетевых карт юзает по 3 прерывания. Отсюда собственно вопрос - как распределить 6 прерываний между 4 ядрами? На количество вызовов не пробовали смотреть?70 и 73 вызываются только до перехода в MSI-X. Остальные 4 прекрасно раскладываются на 4 ядра. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
stelsik Опубликовано 11 июля, 2010 (изменено) · Жалоба TxRx это VMDQ они немного не то что вам нужно, больше для виртуалок options igb IntMode=2,2,2,2 RSS=2,2,2,2 InterruptThrottleRate=3000,3000,3000,3000 QueuePairs=1,1У вас 4 сетевые карты а не 2, и лучше пары в 0 ставить options igb IntMode=2,2,2,2 RSS=2,2,2,2 InterruptThrottleRate=3000,3000,3000,3000 QueuePairs=0,0,0,0 У дров под CentOS есть еще очень неприятная особенность, смотря как соберете или откуда возьмете Скорость TCP сессии непонятно почему режется до 100кбит, не разбирался почему, проще было собрать igb Получиться должно быть, примерно такое 130: 3 6 0 0 0 0 0 0 PCI-MSI-X eth0 131: 330901 0 1021290396 0 70617 0 0 0 PCI-MSI-X eth2-rx-3 138: 774246 2741506 0 0 0 0 2139532 1976379765 PCI-MSI-X eth0-TxRx-0 139: 387601 1005720580 0 112112 0 0 0 0 PCI-MSI-X eth2-rx-4 140: 1 0 0 0 0 0 0 0 PCI-MSI-X eth5 146: 250279 456089 1166090 434912 0 0 2731124521 0 PCI-MSI-X eth0-rx-1 147: 1003952848 0 106302 0 0 0 0 0 PCI-MSI-X eth2-rx-5 148: 1427207 0 1753071539 0 0 0 0 884090 PCI-MSI-X eth5-TxRx-0 154: 248233 0 458374 1148042 445996 2706861336 0 0 PCI-MSI-X eth0-rx-2 155: 340427 77606 0 0 0 0 0 989280882 PCI-MSI-X eth2-rx-6 156: 421623 1908224441 0 0 0 0 141982 0 PCI-MSI-X eth5-rx-1 162: 249869 0 0 461667 2694544396 438318 0 0 PCI-MSI-X eth0-rx-3 163: 408907 0 0 0 0 0 1003755349 0 PCI-MSI-X eth2-rx-7 164: 1884949873 0 0 0 0 176345 0 0 PCI-MSI-X eth5-rx-2 170: 246556 0 0 2733331243 458068 1126965 429233 0 PCI-MSI-X eth0-rx-4 172: 504005 0 0 0 150672 0 0 1894188489 PCI-MSI-X eth5-rx-3 178: 248885 0 2711796864 0 0 478788 1143013 428856 PCI-MSI-X eth0-rx-5 179: 1 0 0 0 0 0 0 0 PCI-MSI-X eth3 180: 546157 0 0 154875 0 0 1893736485 0 PCI-MSI-X eth5-rx-4 186: 716416 2790238402 0 0 0 0 463488 1145473 PCI-MSI-X eth0-rx-6 187: 1428067 0 0 0 1759836985 0 0 751958 PCI-MSI-X eth3-TxRx-0 188: 499689 0 197166 0 0 1900212012 0 0 PCI-MSI-X eth5-rx-5 194: 2711386871 1467628 0 0 0 0 0 418487 PCI-MSI-X eth0-rx-7 195: 372123 0 0 987484072 0 0 102653 0 PCI-MSI-X eth3-rx-1 196: 537564 189322 0 0 1896669015 0 0 0 PCI-MSI-X eth5-rx-6 203: 398385 0 1003659107 0 0 117844 0 0 PCI-MSI-X eth3-rx-2 204: 765693 0 0 1881102524 0 0 0 0 PCI-MSI-X eth5-rx-7 Если нужен разброс и исходящих очередей, тогда за новым ядром Изменено 11 июля, 2010 пользователем stelsik Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
AlKov Опубликовано 12 июля, 2010 (изменено) · Жалоба На количество вызовов не пробовали смотреть?70 и 73 вызываются только до перехода в MSI-X. Остальные 4 прекрасно раскладываются на 4 ядра. Ну да, действительно, проглядел.. TxRx это VMDQ они немного не то что вам нужно, больше для виртуалокЕсли это так, то чем конкретно(какой опцией) я умудрился включить VMDQ? В modprobe.conf нет у меня включения этого режима..Не этим случайно? /sbin/ethtool -G eth2 rx 2048 /sbin/ethtool -G eth2 tx 2048 options igb IntMode=2,2,2,2 RSS=2,2,2,2 InterruptThrottleRate=3000,3000,3000,3000 QueuePairs=1,1У вас 4 сетевые карты а не 2,Да, всего 4, но 2 из них (он-боард) отключены. Или в этом случае параметры для отключенных сетевых не нужно устанавливать?и лучше пары в 0 ставить options igb IntMode=2,2,2,2 RSS=2,2,2,2 InterruptThrottleRate=3000,3000,3000,3000 QueuePairs=0,0,0,0 Если возможно, вкратце, можете пояснить, в чем тут смысл?У дров под CentOS есть еще очень неприятная особенность, смотря как соберете или откуда возьметеСкорость TCP сессии непонятно почему режется до 100кбит, не разбирался почему, проще было собрать igb Драйвера брал с сайта Intel.Получиться должно быть, примерно такое 130: 3 6 0 0 0 0 0 0 PCI-MSI-X eth0 131: 330901 0 1021290396 0 70617 0 0 0 PCI-MSI-X eth2-rx-3 138: 774246 2741506 0 0 0 0 2139532 1976379765 PCI-MSI-X eth0-TxRx-0 .... Ну как бы примерно такое (с MSI-X) и было изначально, до манипуляций с modprobe.conf и ethtool. Скорее всего последним я и отключил MSI-X.Кстати, возможно как-то без ребута (машина уже в продакшен, часто не в кайф ребутать) изменять режимы сетевых? Если нужен разброс и исходящих очередей, тогда за новым ядромКуда уж новее! ;) И так уже 2.6.34 стоИт..Да, и еще один вопрос - что подразумевается под "single queue" в IntMode-2? Только один тип очереди (несколько только rx, или несколько только tx), или вообще только одна очередь (одна rx, или одна tx)? Изменено 12 июля, 2010 пользователем AlKov Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
stelsik Опубликовано 13 июля, 2010 · Жалоба Там README есть вместе с igb, достаточно все подробно расписано Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Jugernault Опубликовано 13 июля, 2010 · Жалоба Собственно, как это сделать понятно, но есть пара вопросов:Уважаемый, мы вроде бы с Вам этоти вопросы уже обсуждали.Чего же Вы все не угомонитесь? :) 1. нужно ли при этом отключать irqbalance? Не появится ли проблем по прерываниям у других устройств?Нужно. Обычно с другими устройствами проблем нет. Прерывания от них обычно на первом процессоре кучкуются.Их тоже можно развести руками. Однако никто Вам не мешает попробовать оставить irqbalance включенным но сконфигурировать его так, что бы он не трогал прерывания с 70-го по 75-е. 2. cat /proc/interrupts для eth выводит такую инфу CPU0 CPU1 CPU2 CPU3 70: 1 0 0 0 PCI-MSI-edge eth2 71: 505259 0 508813 0 PCI-MSI-edge eth2-TxRx-0 72: 445438 5 441560 0 PCI-MSI-edge eth2-TxRx-1 73: 1 0 0 0 PCI-MSI-edge eth3 74: 727340 0 711455 0 PCI-MSI-edge eth3-TxRx-0 75: 646528 0 646928 5 PCI-MSI-edge eth3-TxRx-1 т.о. получается, что каждая из сетевых карт юзает по 3 прерывания. Отсюда собственно вопрос - как распределить 6 прерываний между 4 ядрами? Нет - каждая использует два. 70 и 73 не тикают.Вот и разнесите каждую пару TxRx на отдельное ядро. P.S. Еще один вопрос не совсем по сабж - насколько я понял из readme драйвера, сетевые 82576 умеют MSI-X, но только в режиме одной очередиIntMode ------- Valid Range: 0-2 Default Value: 2 0 - Legacy Interrupts, single queue 1 - MSI interrupts, single queue 2 - MSI-X interrupts, single queue (default) , т.е. при 2-х и более очередях MSI-X не поддерживается. Вопрос собственно такой - может есть смысл юзать MSI-X, вместо "многоочерёдности"? Все поддерживается.И вообще успокойтесь, у Вас MSI-X включилось нормально. Если бы не включилось, то хрен бы Вы очередей увидели. Отвечая на нижеследующие вопросы: 1. Менять параметры igb на ходу практически нельзя. Несколько можно рулить interrupt moderation, и еще кое чем по немногу, но не более. 2. Параметр -G у ethtools регулирует размер кольцевого буфера сетевого интерфейса. Это никак VMQD включить не может. Да и вообще не включено оно у Вас - так что забейте Вы на него. Вы лучше скажите что Вас сподвигло опять похожую тему создать? - Ведь работает оно у Вас, что не нравиться или в чем проблемы наблюдаете? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 26 августа, 2010 · Жалоба Есть ли смысл таймер прибивать к определенному ядру? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...