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

routing vs lro

Господа, требуется общественное мнение. Решил немного подебажить свой 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 в пике.

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


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

при включенном GRO (собирательный термин) на i82576 включается RSS (Recieve-Side Scaling)

В деталях про него можно почитать здесь

Если вкратце: по IPSRC:PORT:IPDST:PORT в железе вычисляется хеш, и по нему пакет ставится в определенную очередь обработки софту. Это позволяет процессам на локалхосте принимать данные без routing-decision от ядра на каждый пакет.

Для цепочки FORWARD оно никак не помогает.

При этом есть минус (и собсно, почему его просят выключать) используется недостаточно сильная хэш-функция (привет, мелкософт!) и поэтому при большом пуле разнообразных входящих IPSRC:PORT:IPDST:PORT оно может пакет, предназначавшийся для форвардинга отправить локалхосту. Ну и так как IPPROTO не используется вообще, то (worst-case scenario) оно может попасть например в очередь отработки ICMP-пингов и из-за несоответствия полей вызвать kernel panic.

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


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

при включенном 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?

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


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

ваши 1,2GBit/s это сколько в pps?

 

Приблизительно суммарно 350 kpps. На входных интерфейсах по 80 kpps (2 штуки), на одном выходном 100 kpps, на другом 50 kpps и на самом слабом 15 kpps. (везде речь идет о pps в одну сторону, то есть, например, на входном 80 kpps вход и 80 kpps на выход (траф симметричный))

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

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


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

сильно зависит от платформы мать/проц/память, могу ошибаться, но на E5450 сейчас максимум что-то около 600 kpps выжимают

тут было несколько тем, можете поискать по "kpps"

 

если нужно больше - то смотрите лучше в сторону ASR1002 и MX80-48T

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


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

Господа, требуется общественное мнение. Решил немного подебажить свой 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кппс для писюка уже норм, если вся таблица не нужна, то вполне можно попытаться найти сравнимое по стоимости с писюком бу решение для этих целей.

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

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


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

Join the conversation

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

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

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

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

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

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

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