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

Linux NAT оптимизация для 10G+ трафика

Есть. но что в таком случае делать со стороны свитча?

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


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

А ничего не нужно делать, все так же остается.

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


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

Не поднимается LACP с другой стороны тогда, что в принципе логично.

Нагрузочное тестирование показало, что трафика в пике получилось протянуть 12,2 Гбит на драйвере teaming против 12.0 Гбит на драйвере bonding, что в принципе можно считать погрешностью измерений. В итоге вернулись назад на bonding из-за того, что не получилось равномерно распределять трафик, всегда был какой-нить перекос по портам

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


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

Коллеги, а кто как логирует NAT трансляции conntrack'а на таких скоростях?

Изучаю пока ulogd2. Может кто то просто парсит раз в какое то время conntrack -L , или может netflow (ipt_netflow)? еще варианты

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


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

Коллеги, а кто как логирует NAT трансляции conntrack'а на таких скоростях?

Изучаю пока ulogd2. Может кто то просто парсит раз в какое то время conntrack -L , или может netflow (ipt_netflow)? еще варианты

Насколько знаю только последнее.

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


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

Благодарю.

ipt_NETFLOW реагирует на изменения в conntrack (nat events), это же и логирует ulogd2. Только nfcapd я в top вообще не вижу, а ulogd все же слегка грузит ОС, хотя и не влияет сильно.

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


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

Логируем через ipt_NETFLOW. В принципе по нагрузке вообще не видно, если использовать только nat events

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


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

Не поднимается LACP с другой стороны тогда, что в принципе логично.

Нагрузочное тестирование показало, что трафика в пике получилось протянуть 12,2 Гбит на драйвере teaming против 12.0 Гбит на драйвере bonding, что в принципе можно считать погрешностью измерений. В итоге вернулись назад на bonding из-за того, что не получилось равномерно распределять трафик, всегда был какой-нить перекос по портам

 

Какие у вас bond-xmit-hash-policy и bond-ad_select (Aggregator selection policy) ?

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


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

Подниму темку. Посоветуйте CPU для NAT/шейпера. Не могу определиться.

 

Т.У.:

 

Трафик в ЧНН 5,5Гб / 2.5-3Гб (~800k / ~500k пакетов), сейчас бегает на нескольких НАТ-ах старых. Хочется уплотнить зоопарк и перейти на 10Г порты

 

Из сервисов:

nat 10.0.0.0/8 в диапазон реальников с persistent + правила nat адрес в адрес

Шейпер на tc htb (есть в планах перейти на полисер ipt-ratelimit, т.к. скорости от 50Мбит по тарифам, и буфферизировать и резать по линейке уже нет особого смысла)

ipt_NETFLOW

ipset с для блокировки трафика, редиректов на заглушку и прочий мелкий мусор не кушающий CPU

--------------------------------

Сетевая Intel x520 порт на вход, второй на выход

--------------------------------

 

Щупал ли кто новый Intel Xeon E3-1280V5 Skylake (3700MHz, LGA1151, L3 8192Kb) (есть ли толк в нем?)

 

Брать ли 1 или 2-х процессорную коробку?

4 или 6-8 ядер на камень соответственно

 

В наличии есть CPU E3-1270 V2 @ 3.50GHz -3.9, но "чет я очкую" с ним :)

 

 

Как вариант Intel Core i7 - 4960X Extreme Edition (Socket 2011, 6-ядерный, 3600 МГц, Turbo: 4000 МГц, Ivy Bridge-E, Кэш L2 - 1536 Кб, Кэш L3 - 15360 Кб, 22 нм, 130 Вт), но уж больно жаркий десктопный.

 

Либо Intel Xeon E5-2643 v2 (Socket 2011, 6-ядерный, 3500 МГц, Ivy Bridge-EP, Кэш L2 - 1536 Кб, Кэш L3 - 25600 Кб, 22 нм, 130 Вт) поставить в один сокет, если не хватить брать второй, дорого конечно для 6 ядер.

 

В общем запутался слегка в собственных доводах. Укажите вектор в котором работать.

Есть ли у кого подобные коробки в продакшене и на каком железе они?

 

По ядру чего порекомендуете может?

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

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


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

Трафик в ЧНН 5,5Гб / 2.5-3Гб (~800k / ~500k пакетов), сейчас бегает на нескольких НАТ-ах старых. Хочется уплотнить зоопарк и перейти на 10Г порты

$ ifstat -bzq -i eth0 -i eth1
      eth0                eth1
Kbps in  Kbps out   Kbps in  Kbps out
5.03e+06  939784.4  960744.5  5.04e+06
4.92e+06  913460.7  921677.1  4.92e+06
4.92e+06  945055.8  959849.0  4.94e+06
5.26e+06  937042.2  931078.1  5.25e+06
5.16e+06  896733.1  899364.8  5.16e+06
5.11e+06  956625.7  955257.6  5.11e+06
5.35e+06  932076.8  933578.2  5.35e+06
5.12e+06  927415.6  950411.1  5.14e+06

$ vmstat -n 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa
1  0      0 2489180 116596 398408    0    0     0     0    0    1  0 33 67  0
0  0      0 2488016 116600 398404    0    0     0    32 129083 4924  0 49 50  0
0  0      0 2487824 116600 398408    0    0     0     0 131395 4961  0 50 50  0
1  0      0 2487728 116600 398408    0    0     0     0 128273 4915  0 49 51  0
4  0      0 2487824 116600 398408    0    0     0     0 127194 5033  0 51 49  0
3  0      0 2487632 116600 398408    0    0     0     0 127095 5051  0 54 46  0
6  0      0 2487184 116600 398408    0    0     0     0 129901 4946  0 46 54  0
2  0      0 2487152 116600 398408    0    0     0     0 126140 4829  0 50 50  0
2  0      0 2487248 116600 398408    0    0     0   124 127302 4979  0 53 47  0
0  0      0 2487672 116600 398408    0    0     0     0 127363 5022  0 51 49  0
0  0      0 2488276 116600 398408    0    0     0     0 127580 4863  0 50 50  0
1  0      0 2488468 116600 398408    0    0     0     0 134626 4939  0 47 53  0

$ head /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 60
model name      : Intel(R) Xeon(R) CPU E3-1240 v3 @ 3.40GHz
stepping        : 3
microcode       : 0x1d
cpu MHz         : 1000.000
cache size      : 8192 KB
physical id     : 0

$ uname -a
Linux nat8 3.11.4-031104-generic #201310081221 SMP Tue Oct 8 16:21:57 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

такие дела (ц) =)

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


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

boco Какая обработка трафика ? Нат, шейпер или просто роутинг ??

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


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

такие дела (ц) =)

 

Это только NAT или с tc и зоопаком что расписал? PPS какой?

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

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


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

Это только NAT или с tc и зоопаком что расписал? PPS какой?

только nat и nat-logging (ipt-netflow). ппс можно посчитать, в среднем размер пакета около 1000 байт. если все же интересны точные цифры, могу вечером глянуть, в чнн.

 

по опыту, использование ipt-ratelimit не внесет существенную нагрузку.

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


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

Это только NAT или с tc и зоопаком что расписал? PPS какой?

только nat и nat-logging (ipt-netflow). ппс можно посчитать, в среднем размер пакета около 1000 байт. если все же интересны точные цифры, могу вечером глянуть, в чнн.

 

по опыту, использование ipt-ratelimit не внесет существенную нагрузку.

 

Понял, спасибо за опыт)

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


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

Подниму темку. Посоветуйте CPU для NAT/шейпера. Не могу определиться.

 

 

В наличии есть CPU E3-1270 V2 @ 3.50GHz -3.9, но "чет я очкую" с ним :)

Либо Intel Xeon E5-2643 v2 (Socket 2011, 6-ядерный, 3500 МГц, Ivy Bridge-EP, Кэш L2 - 1536 Кб, Кэш L3 - 25600 Кб, 22 нм, 130 Вт) поставить в один сокет, если не хватить брать второй, дорого конечно для 6 ядер.

 

 

Из сервисов - NAT, ipt_NETFLOW nat events, немного правил в ipset.

От Xeon E3-1270v3 отказались в пользу Xeon E5-1650 v2.

Сеть на машинах - Intel X520 - 2 порта в LACP, драйвер bonding

На Е3 пиковые значения - 12Гбит/с 1.5Mpps, при этом все ядра в 100% нагрузки и начинаются дропы на интерфейсах.

На Е5 получилось утилизировать оба порта практически в полку, по графикам 19.5 Гбит/с, 2.2Mpps загрузка 96-98% на всех ядрах, редкие незначительные дропы, но есть увеличение Latency, связанное с упиранием портов в полку по трафику.

Ядро Linux 4.1.23, немного подтюнено, драйвер 4.3.15, DCA работает, Flow Director отключен, LRO выпилен на этапе сборки, UDP хэшинг по портам включен, Flow control выключен

Эффективность двухпроцессороной системы под сомнением, т.к. контроллер PCI-Ex сейчас находится на процессоре, соответственно при использовании одной карты получается кросс-NUMA передача трафика и не самая эффективня обработка.

Если действительно не будет хватать процессора, то лучше рассмотреть вариант с большим количеством ядер в одном package.

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

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


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

попробуйте еще поиграться с coalescing / ethtool и если в вашем ядре есть sysctl net.ipv4.ip_early_demux=0

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


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

небольшой офф: а почему все используют только сетевые intel?

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


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

Оптимальный баланс - быстро, недорого и безглючно.

Броадкомы начинают сыпать ошибками на многих чипсетах при загрузке 60-65%, реалтеки жрут проц как не в себя, и крутилок по тюнингу почти ноль, marvel/atheros - сыроватые драйвера, Chelsio у меня умирали на 2-4 гигабитах. Кто там еще со вменяемой ценой?

Кроме того в Intel сидят живые люди в опенсурсе, на netdev, а у остальных вендоров - иностранные наемные работники(оутсорсенные программеры из азии), которым интересно лишь запихать говнокод в апстрим, а на вопросы чего не работает что-то или глючит - молчат.

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


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

Кто там еще со вменяемой ценой?

emulex еще вроде есть, но как с ними - хз.

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


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

Ну Mellanox тот тоже выпустил десятки, но тоже не пробовал.

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


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

Chelsio у меня умирали на 2-4 гигабитах.

вроде бы слышал, что это проблема прошлого поколения, в этом такой беды нет.

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


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

А свежее поколение стоит слишком дорого, есть альтернативы получше.

Просто сам факт, что выпустили дерьмецо которое не может достигнуть даже половины скорости на паттерне близком к imix или лучше - сильно настораживает.

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


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

Ребят а подскажите, никто не сталкивался с поведением когда после закрузки одного из ядер больше 30% по softirq происходит скачек по нагрузке вплоть до одного из ядер в полке? Я помню кто-то об этом говорил, но решения не нашлось на тот момент.

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


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

Там вроде как то ли кеш вымывается то ли растёт оверхэд от взаимных локов.

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


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

Там вроде как то ли кеш вымывается то ли растёт оверхэд от взаимных локов.

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

Кто может объяснить несколько вещей, много перечитал но не все нашел.

1. Сколько максимум выжимали pps на nat, выше писали 2.2mpps, это фуллдуплекс? есть где-нибудь тесты не 100 летней давности.

2. "UDP хэшинг по портам включен", это что и что дает? тыкните ссылкой если не сложно

3. nat events, я так понимаю берет эвенты с модуля контрэк, т.е. храним все сессии без направления трафика в netflow. а как же скачанные байты и пакеты, где их снимают? или я не так понимаю. И можно настройки модуля тоже в студию, у меня модуль в2.2 нагло жрет от 4% до 20%, фактически пики цпу он и делает

 

по своим экспериментам скажу, очереди вроди бы выравнивают лучше загрузку проца если отправлять по 2 очереди на ядро. При загрузке >5Gbp/s речи о буфере 2048 и меньше речи не идет, ставлю максимум.

я на продакшине экспериментальном приблизился к 0.9мппс, загрузка ни о чем 20% (и неравномерность). Хочу плюнуть еще 800мппс для теста, но так как продакшин не хочу уронить его.

после запуска в бой еще абонентов на новый серв графики и результаты выложу, до 1 мппс смысла нет.

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

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


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

Join the conversation

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

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

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

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

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

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

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