tartila Posted August 29, 2011 · Report post Господа, требуется общественное мнение. Решил немного подебажить свой BGP, в данный момент он таскает приблизительно 1,2GBit/s симметрично на 5 1GBit портах, 4 из которых это Quad на чипе 82576 и один 80003ES2LAN набортный. 2 входящих с сетки и 3 исхода на разные пиры. Тот, что встроенный NIC - исход на слабо-нагруженный пир ~ 120-150 MBit/s. Решил к этой системе присобачить наблюдение за CPU (8 ядер = 2 ксеона E5450), так выяснил, что в моменты 1,2-1,3GBit/s система нагружена на 30%. Подумал и решил, что много. ;))) Вспоминалось, когда то тягал практически тоже на 4 ядернике беспородном с 45-50% загрузки. Систему собирал на RHEL6 и примечательно, беседовал при сборке с разработчиками Intel, которые сразу порекомендовали при роутинге отключать lro/gso... === Try using ethtool to turn off generic-receive-offload. It should be disabled in routing configurations as well. === Теперь у меня дико чешется попробовать включить gro и tso, что бы разгрузить систему. Собственно вопрос, кто нибудь юзает Linux 2.6.32 + igb + gro с роутингом? p.s. Большую часть процессора поедают si, собственно они и фигурируют в загрузке системы. Используется MSI, все параллелится прекрасно. Через машину идет суммарно где-то 400 kpps в пике. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zurz Posted August 29, 2011 · Report post при включенном GRO (собирательный термин) на i82576 включается RSS (Recieve-Side Scaling) В деталях про него можно почитать здесь Если вкратце: по IPSRC:PORT:IPDST:PORT в железе вычисляется хеш, и по нему пакет ставится в определенную очередь обработки софту. Это позволяет процессам на локалхосте принимать данные без routing-decision от ядра на каждый пакет. Для цепочки FORWARD оно никак не помогает. При этом есть минус (и собсно, почему его просят выключать) используется недостаточно сильная хэш-функция (привет, мелкософт!) и поэтому при большом пуле разнообразных входящих IPSRC:PORT:IPDST:PORT оно может пакет, предназначавшийся для форвардинга отправить локалхосту. Ну и так как IPPROTO не используется вообще, то (worst-case scenario) оно может попасть например в очередь отработки ICMP-пингов и из-за несоответствия полей вызвать kernel panic. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tartila Posted August 29, 2011 · Report post при включенном GRO (собирательный термин) на i82576 включается RSS (Recieve-Side Scaling) В деталях про него можно почитать здесь Если вкратце: по IPSRC:PORT:IPDST:PORT в железе вычисляется хеш, и по нему пакет ставится в определенную очередь обработки софту. Это позволяет процессам на локалхосте принимать данные без routing-decision от ядра на каждый пакет. Для цепочки FORWARD оно никак не помогает. При этом есть минус (и собсно, почему его просят выключать) используется недостаточно сильная хэш-функция (привет, мелкософт!) и поэтому при большом пуле разнообразных входящих IPSRC:PORT:IPDST:PORT оно может пакет, предназначавшийся для форвардинга отправить локалхосту. Ну и так как IPPROTO не используется вообще, то (worst-case scenario) оно может попасть например в очередь отработки ICMP-пингов и из-за несоответствия полей вызвать kernel panic. Спасибо за развернутый ответ. Обязательно сейчас поштудирую datasheet. А может быть подскажите, что бы придумать, что бы на машине, занимающейся роутингом уменьшить si? Имхо очень много потребляет. Какие методы оптимизации есть для 82576? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zurz Posted August 29, 2011 · Report post ваши 1,2GBit/s это сколько в pps? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
tartila Posted August 29, 2011 (edited) · Report post ваши 1,2GBit/s это сколько в pps? Приблизительно суммарно 350 kpps. На входных интерфейсах по 80 kpps (2 штуки), на одном выходном 100 kpps, на другом 50 kpps и на самом слабом 15 kpps. (везде речь идет о pps в одну сторону, то есть, например, на входном 80 kpps вход и 80 kpps на выход (траф симметричный)) Edited August 29, 2011 by tartila Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
zurz Posted August 29, 2011 · Report post сильно зависит от платформы мать/проц/память, могу ошибаться, но на E5450 сейчас максимум что-то около 600 kpps выжимают тут было несколько тем, можете поискать по "kpps" если нужно больше - то смотрите лучше в сторону ASR1002 и MX80-48T Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Art1x Posted August 30, 2011 (edited) · Report post Господа, требуется общественное мнение. Решил немного подебажить свой BGP, в данный момент он таскает приблизительно 1,2GBit/s симметрично на 5 1GBit портах, 4 из которых это Quad на чипе 82576 и один 80003ES2LAN набортный. 2 входящих с сетки и 3 исхода на разные пиры. Тот, что встроенный NIC - исход на слабо-нагруженный пир ~ 120-150 MBit/s. Решил к этой системе присобачить наблюдение за CPU (8 ядер = 2 ксеона E5450), так выяснил, что в моменты 1,2-1,3GBit/s система нагружена на 30%. Подумал и решил, что много. ;))) Вспоминалось, когда то тягал практически тоже на 4 ядернике беспородном с 45-50% загрузки. Систему собирал на RHEL6 и примечательно, беседовал при сборке с разработчиками Intel, которые сразу порекомендовали при роутинге отключать lro/gso... === Try using ethtool to turn off generic-receive-offload. It should be disabled in routing configurations as well. === Теперь у меня дико чешется попробовать включить gro и tso, что бы разгрузить систему. Собственно вопрос, кто нибудь юзает Linux 2.6.32 + igb + gro с роутингом? p.s. Большую часть процессора поедают si, собственно они и фигурируют в загрузке системы. Используется MSI, все параллелится прекрасно. Через машину идет суммарно где-то 400 kpps в пике. oprofile погоняйте, может в других местах затыки также присутствуют, в любом случае более наглядная картинка что отъело процессор. 400кппс для писюка уже норм, если вся таблица не нужна, то вполне можно попытаться найти сравнимое по стоимости с писюком бу решение для этих целей. Edited August 30, 2011 by Art1x Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...