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

уважаемые, а вот что скажете про идею софтроутера виртуалкой?

для меня эта идея звучит дико, но слышал как сатанисты молотят за неё в плане отказоустойчивости (кластер на vmware - HA, FT) в случае более одной площадки (гео разнесённой) + серьезное железо на хостах....

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


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

Зависит от объёмов трафика, если до гига, почему бы и не пуркуа па? Скоро предстоит поднять рутер на 100мбит, думаю сделать это на kvm.

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


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

а почему до 1 гига думаете?

или просто так?

 

я кстати тоже соглашусь, что 100 мБит я бы тоже без риска поднял...

...есть для виртуальной среды cisco nexus v1000

там виртуальные интерфейсы по 10Г

правдо оно коммутирует... а не роутер, но %)

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


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

IMHO мудрость про "виртуалки до гига" сильно устарела.

С современным могучим железом на хостах, повальной аппаратной поддержке виртуализации и паравиртуальных сетевках, накладные расходы на маршрутизацию минимальны. Вполне можно и BRASы виртуальные поднимать, и 10ки роутить.

 

P.S. роутер локалки уже несколько лет живет на виртуальной машине, каких-либо изменений не заметил. До гига трафика с НАТом бегает с околонулевой загрузкой под KVM.

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


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

роутер локалки уже несколько лет живет на виртуальной машине, каких-либо изменений не заметил. До гига трафика с НАТом бегает с околонулевой загрузкой под KVM.

а как именно настроена сеть в kvm?

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


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

а как именно настроена сеть в kvm?

Классически, virtio драйвера для гостя и бриджи виртуальных машин с нужными сетевками на хосте.

Если прокидывать сетевку гостю накладные расходы вообще околонулевые будут.

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


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

Приветствую всех.

Помогите найти в чём проблема.

 

Сервер:

-Мать Supermicro

-Xeon E5-2600v4 (2шт)

-16Gb оперативки

-Сетевая карта X520-DA2 (2шт)

 

Стоит Debian 7

Карты собраны в bond 2x10

Прерывания прибиты к ядрам вручную через smp_affinity

 

Задачи сервера: Шейпинг + NAT

Сервер новый, перед вводам в эксплуатацию нужно проверить сколько он сможет переработать.

 

Для начала на время теста NAT и шейпер отключили. Фактически сервер работает как L3 коммутатор, перекладывая пакеты с интерфейса на интерфейс.

Тестируем с помощью https://trex-tgn.cisco.com/trex/doc/trex_manual.html

к примеру t-rex-64 -f avl/sfr_delay_10_1g_no_bundeling.yaml -c 4 -l 10 -d 100000 -m 15

 

Первая проблема:

При распределении прерываний через smp_affinity нагрузка более менее равномерно распределяется только при раскладе

Core0 eth2-TxRx-0 eth3-TxRx-0 eth4-TxRx-0 eth5-TxRx-0

Core1 eth2-TxRx-1 eth3-TxRx-1 eth4-TxRx-1 eth5-TxRx-1

Core2 eth2-TxRx-2 eth3-TxRx-2 eth4-TxRx-2 eth5-TxRx-2

...

т.е. Очереди Х всех карт должны быть на одном и том же ядре

Причём начинать раздавать ядра нужно именно с первого CPU Core0

 

Во всех остальных комбинациях идёт резкий дисбаланс нагрузки.

Не удаётся каждой очереди карты дать отдельное ядро.

По ethtool видно что TX пакеты перестают распределятся по очередям и весь TX прёт в одну очередь.

 

Примечательно что на работающих серверах такого не происходит.

Может ли это быть из за двух процессорности.

 

 

Вторая проблема:

В тестовом сервере стоит одна X520-DA2 карта 10G так что больше 10 проверить не получится.

Запускаем тест. Трафик начинает ходить, растёт число nf_conntrack_count Загрузка ядер копеечная 5-10%

НО как только sysctl net.netfilter.nf_conntrack_count доходит до 1 миллиона записей загрузка CPU резко вырастает до 40%

Хотя размер таблиц

echo 33554432 > /proc/sys/net/ipv4/netfilter/ip_conntrack_max

echo 16777216 > /sys/module/nf_conntrack/parameters/hashsize

 

На первый план выходит do_raw_spin_lock

perf top

8.19% [kernel] [k] do_raw_spin_lock

7.70% [kernel] [k] irq_entries_start

7.53% [ixgbe] [k] ixgbe_poll

5.18% [kernel] [k] ip_route_input_common

4.07% [ip_tables] [k] ipt_do_table

2.52% [kernel] [k] arch_read_lock

 

В логах тишина.

Если очистить conntrack -F то загрузка резко падает, пока снова не набежит около 1 миллиона записей.

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


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

Вирутализация отключена?? НТ тоже???

 

Гипертрейдинг отключен в BIOS

 

Карты запускаю так (драйвер 5.0.4)

modprobe ixgbe RSS=10,10,10,10 IntMode=2,2,2,2 MQ=1,1,1,1 VMDQ=0,0,0,0

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


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

А зачем hashsize 16 миллионов? Действительно столько будет сессий? В тесте у вас только 1M.

Потом, ничего страшного если в бакете хеша будет две записи.

 

А сколько t-rex выдает pps? какой размер пакета в тестах? ведь 10 гиг это может быть и 14Mpps и 2, в зависимости от размера пакета.

t-rex dpdk тулза и лего выдаст почти любую скорость в пакетах.

 

Т.е. я к тому, что он быстрее линукса c включенным conntrack как его не тюнь.

 

Я бы начал с небольшого packet rate, постепенно его увеличивая до тех пор, пока принимающая сторона t-rex не начнет рапортавать, что пошли потери.

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


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

Потом, не очень понятно как будет себя вести connection tracking механизм netfilter'а. Ведь t-rex, насколько я знаю, stateless, т.е. он шлет просто пакеты и не умеет tcp/udp сессии. Поэтому,

как будет вести себя netfilter, не будет ли он создавать "лишние" сессии? т.к. фактически нет tcp/udp, а есть просто пакеты, не связные друг с другом.

 

Для тестов connection tracking'а, я бы взял warp17. он поддерживает tcp сессии и тоже дает огромную нагрузку в pps.

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


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

Вынимайте один проц.

 

Какие плюсы это даст?

 

Для тестов connection tracking'а, я бы взял warp17. он поддерживает tcp сессии и тоже дает огромную нагрузку в pps.

 

Попробую

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


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

Задачи сервера: Шейпинг + NAT

 

Может кто посоветует какую ОС лучше ставить для данных задач. Какое ядро и т.п.

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


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

Задачи сервера: Шейпинг + NAT

 

Может кто посоветует какую ОС лучше ставить для данных задач. Какое ядро и т.п.

Ядро: 4.12

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


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

может кто то вникал в вопрос

ixgbe-5.1.3 дравер и карточка intel 82599ES 10-Gigabit SFI/SFP+ каким образом прилепляют один "поток" к одной очереди.

тестируем ipef-ом сервер с двух компов и грузится только одно ядро CPU, в принципе это как бы нормально. Вот и вопрос - на основании srcIP,dstIP к очереди трафик прибивается или сетевуха глубже лезет до TCP|UDP и портов?

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

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


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

может кто то вникал в вопрос

ixgbe-5.1.3 дравер и карточка intel 82599ES 10-Gigabit SFI/SFP+ каким образом прилепляют один "поток" к одной очереди.

тестируем ipef-ом сервер с двух компов и грузится только одно ядро CPU, в принципе это как бы нормально. Вот и вопрос - на основании srcIP,dstIP к очереди трафик прибивается или сетевуха глубже лезет до TCP|UDP и портов?

Вам нужно с разных IP это делать. Балансировка идет по IP SRC DST

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

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


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

Тут конечно круто все нарисовано

https://www.intel.ru/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf

видимо в драйвере нужно разбираться как он карту инициализирует

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


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

может кто то вникал в вопрос

ixgbe-5.1.3 дравер и карточка intel 82599ES 10-Gigabit SFI/SFP+ каким образом прилепляют один "поток" к одной очереди.

тестируем ipef-ом сервер с двух компов и грузится только одно ядро CPU, в принципе это как бы нормально. Вот и вопрос - на основании srcIP,dstIP к очереди трафик прибивается или сетевуха глубже лезет до TCP|UDP и портов?

за распределение по очередям отвечает RSS. Для каждого пакета рассчитываешься хэш и в зависимости от его значения пакет попадает в нужную очередь.

Хэш можно настроить так, чтобы он рассчитывался на основе только сетевого уровня (ip src, ip dst), а можно и включить учет портов.

Никогда не настраивал рассчет RSS в линуксе, но вроде это можно сделать с помощью ethtool. Ключевое слово для ethtool rx-flow-hash.

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


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

Кто-нибудь тестировал VPP в качестве NAT Box`a ?

https://wiki.fd.io/view/VPP/SNAT

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


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

оно ж еще альфа, и вяжется с ospf/bgp демонами через жутий анус... + вроде как тот самый анус, именуемый vpp sandbox, у них сейчас разорван разломан и со свежим vpp не собирается/не работает.

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


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

оно ж еще альфа, и вяжется с ospf/bgp демонами через жутий анус... + вроде как тот самый анус, именуемый vpp sandbox, у них сейчас разорван разломан и со свежим vpp не собирается/не работает.

ну вроде как для НАТа не нужны OSPF/BGP.

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


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

оно ж еще альфа, и вяжется с ospf/bgp демонами через жутий анус... + вроде как тот самый анус, именуемый vpp sandbox, у них сейчас разорван разломан и со свежим vpp не собирается/не работает.

Я мучался с этим sandbox, даже писал в рассылку...

Попробуйте это решение: https://github.com/FRRouting/frr/wiki/Alternate-forwarding-planes:-VPP

Сейчас тестирую роутер на DPDK, по результатам автор напишет статью)

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


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

какой прирост в pps даст задействование трех каналов памяти CPU вместо двух?

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


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

какой прирост в pps даст задействование трех каналов памяти CPU вместо двух?

Околонулевой, или отрицательный. Пропускная способность растет минимально, латентность растет ощутимо.

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


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

Join the conversation

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

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

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

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

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

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

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