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

Все на лету меняется. Пример с 4-ядерным процессором.

 

#!/bin/sh

P=`find /proc/irq -name 'eno1-TxRx-0' -print | sed 's@/eno1-TxRx-0@@'`                                                                                                 
echo "1" > ${P}/smp_affinity                                                                                                                                           
P=`find /proc/irq -name 'eno1-TxRx-1' -print | sed 's@/eno1-TxRx-1@@'`                                                                                                 
echo "2" > ${P}/smp_affinity                                                                                                                                           
P=`find /proc/irq -name 'eno1-TxRx-2' -print | sed 's@/eno1-TxRx-2@@'`                                                                                                 
echo "4" > ${P}/smp_affinity                                                                                                                                           
P=`find /proc/irq -name 'eno1-TxRx-3' -print | sed 's@/eno1-TxRx-3@@'`                                                                                                 
echo "8" > ${P}/smp_affinity                                                                                                                                          

 

А вот для изменения количества очередей да, ребут (или хотябы выгрузка модуля сетевухи) нужен.

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


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

растет по немногу параметр ошибки rx_csum_offload_errors , rx_missed_errors не увеличивается

ethtool -S eth4|grep err
     rx_errors: 0
     tx_errors: 0
     rx_over_errors: 0
     rx_crc_errors: 0
     rx_frame_errors: 0
     rx_fifo_errors: 0
     rx_missed_errors: 293674
     tx_aborted_errors: 0
     tx_carrier_errors: 0
     tx_fifo_errors: 0
     tx_heartbeat_errors: 0
     rx_length_errors: 0
     rx_long_length_errors: 0
     rx_short_length_errors: 0
     rx_csum_offload_errors: 1037812

какие параметры для сетевушки отвечают за rx_csum_offload_errors?

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


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

В 12.12.2020 в 17:14, Mechanic сказал:

какие параметры для сетевушки отвечают за rx_csum_offload_errors?

патчкорд например...

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


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

15 часов назад, NiTr0 сказал:

патчкорд например...

это оптический порт 10Г, патч вроде нормальный, на интерфейсе свича ошибок нет

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


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

данный счетчик - кол-во ошибок КС пакетов, обработанных аппаратным оффлоадом. кто виноват - модуль, патчкорд или свич (если cut-through) - вам по месту виднее.

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


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

6 часов назад, NiTr0 сказал:

если cut-through

не работает при передаче one-to-many

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


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

В 11.12.2020 в 14:26, taf_321 сказал:

вот для изменения количества очередей да, ребут (или хотябы выгрузка модуля сетевухи) нужен.

Решилось через без ребута

ethtool -L eth0 combined 12

В результате получил такие данные по нагрузке:

 

6 очередей и все только на первом проце12 очередей: по 6 на каждом проце

 

Т.е. никакого отрицательного эффекта от переключений между numa нодами мы не заметили, даже наоборот.

 

lspci | grep -i network
06:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
06:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)

cat /sys/bus/pci/devices/0000\:06\:00.0/numa_node
0
cat /sys/bus/pci/devices/0000\:06\:00.1/numa_node
0

numactl --hardware | grep cpus
node 0 cpus: 1 2 3 4 5 6
node 1 cpus: 0 7 8 9 10 11

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


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

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


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

4 часа назад, h3ll1 сказал:

Очень интересно. Для скольких клиентов и на какой суммарной пропускной способности это все было реализовано?

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


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

Для 1200 хомяков+ сейчас. Трафик 2Г+. У меня деление для IX, IPtv, EX и намного усложняутся очереди, но работает хорошо. Есть там и burst трафик.

Для меня не очень приятно, что с кернел 5.Х сделали счиотчики на сеть, и взят их не так бистрее как /ipset list XXX/ 

 

  15.51%  [kernel]                   [k] hash_net4_test
   7.64%  [kernel]                   [k] nft_do_chain
   5.56%  [kernel]                   [k] __nft_rbtree_lookup
   4.09%  [kernel]                   [k] ipt_do_table
   3.95%  [kernel]                   [k] ixgbe_poll
   2.48%  [kernel]                   [k] memcmp
   2.42%  [kernel]                   [k] ip_set_test

 

ето iptables/ipset - успоредно с nftables - работают вместе.

 

nft list ruleset | wc
22725  355316 3313611

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

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


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

On 3/23/2018 at 5:52 AM, Antares said:

Так проверь, гуляет частота или нет

grep "Hz" /proc/cpuinfo

NOHZ=??

Мерили и так нет ответа чо хорошево ДЛЯ ДАННого трфика.

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


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

16 часов назад, h3ll1 сказал:

NOHZ=??

Мерили и так нет ответа чо хорошево ДЛЯ ДАННого трфика.

Не понял...Вы о чем?

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


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

Коллеги, изучал кто то , на сколько будет эффективнее как точки зрения цены, так и с точки зрения производительности строить linux softrouter на процессорах AMD Epyc? Интересует в роли border+NAT+ipt_netflow (для natevents). У нас работают 2 бордера в параллель, задумываюсь о третьем, чтобы разгрузить текущие, т.к. потихоньку растут дропы на in, а крутилки уже все выкручены (по крайней мере у меня уже нет идей, кроме как упираемся в максимальную производительность). Кому интересно, графики сейчас такие (ens6 40G - Intel XL710 (аплинки+downlink), ens3 - прямой линк до второго бордера), cpu E5-2690v4 * 2шт: 

2021-01-05_00-14-01.png

2021-01-05_00-15-45.png

2021-01-05_00-16-55.png

2021-01-05_00-17-37.png

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


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

3 часа назад, John_obn сказал:

ens3 - прямой линк до второго бордера

я не понял, что за трафик на нём в размере 1/5 от трафика на ens6?

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


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

12 часов назад, edo сказал:

я не понял, что за трафик на нём в размере 1/5 от трафика на ens6?

По этому линку бегает трафик либо , пришедший через аплинков другого бордера с dst адресом из NAT пула на первом бордере, либо исходящий от клиентов трафик, который сначала попал на первый бордер, но лучший исходящий маршрут указывает на аплинк, подключенный ко второму бордеру.

Надеюсь, это поможет раскрыть особенности работы с процессорами AMD в описанной задаче :)

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


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

эм... а может имеет смысл отделить мух от котлет, и отдельно поставить бордер(ы), а отдельно - натилки попроще, в кол-ве N штук с резервированием друг друга тем или иным образом, и их же например брасами сделать (для упрощения резервирования)?

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


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

16 часов назад, NiTr0 сказал:

эм... а может имеет смысл отделить мух от котлет, и отдельно поставить бордер(ы), а отдельно - натилки попроще, в кол-ве N штук с резервированием друг друга тем или иным образом, и их же например брасами сделать (для упрощения резервирования)?

отделить и разделить роли, это всегда хорошо. Но есть ли в этом смысл в данном случае? судя по perf top NAT не так уж и грузит машину. В целом, в выводе perf top на первое место выходит иногда: i40e_napi_poll, fib_table_lookup ... не больше 12%. 

BRAS - отдельные машины.

Что именно даст вынос NAT на отдельную машину и в каком виде(iptables conntrack, или router on dpdk или....)?

2021-01-09_16-49-42.png

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


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

26 минут назад, John_obn сказал:

судя по perf top NAT не так уж и грузит машину.

conntrack + ipables в топе. как минимум - notrack сильно ей бы облегчил жизнь, но отсохнет нат.

хотя можно конечно поиграться с xt_nat - ему коннтрак не нужен, должно снизить нагрузку. или с nftables (где реализован fastpath)

 

26 минут назад, John_obn сказал:

BRAS - отдельные машины.

так а почему нат не на них? зароутить на каждую /24 (или /25, /26...) - и пускай себе натят.

 

26 минут назад, John_obn сказал:

Что именно даст вынос NAT на отдельную машину

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

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


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

6 часов назад, NiTr0 сказал:

conntrack + ipables в топе. как минимум - notrack сильно ей бы облегчил жизнь, но отсохнет нат.

хотя можно конечно поиграться с xt_nat - ему коннтрак не нужен, должно снизить нагрузку. или с nftables (где реализован fastpath)

 

так а почему нат не на них? зароутить на каждую /24 (или /25, /26...) - и пускай себе натят.

 

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

Если вынести NAT на отдельную машину, разве conntrack+iptables не останутся в топе?

NOTRACK используется для всего трафика, кроме того, что нужно заNATить. То есть трафик с белыми IP не проходят conntrack

xt_nat - поизучаю, благодарю. Когда то смотрел на nftables - находил то ли исследование полноценное, то ли просто тесты и nftables оказался медленнее чистого iptables. Но не помню, в задачах NAT ли. Тоже поизучаю что там за fastpath в nftables для NAT.

Еще давно читал статью https://habr.com/ru/post/501234/ но не было возможности протестировать это решение, тоже хочу попробовать.

 

NAT не на BRAS потому, что СОРМ установлен на узле с бордерами. А бордер и BRASы в разных городах стоят. Иначе бы  пришлось тратиться на 2 СОРМа.

С брасами у нас так и есть, нужно больше - ставишь еще один, никакой глобальной перестройки.

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


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

15 часов назад, John_obn сказал:

Если вынести NAT на отдельную машину, разве conntrack+iptables не останутся в топе?

если коннтрак полностью вырубить (а без ната он нафиг не надо, stateful firewall вообще зло) - то да, в топе он не окажется.

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


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

12 минут назад, NiTr0 сказал:

если коннтрак полностью вырубить (а без ната он нафиг не надо, stateful firewall вообще зло) - то да, в топе он не окажется.

Из-за NAT без conntrack никак.

Что скажете по поводу AMD Epyc?

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


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

41 минуту назад, John_obn сказал:

Из-за NAT без conntrack никак.

Мы переехали на https://github.com/andrsharaev/xt_NAT, нагрузка упала до 10% на ядро в ЧНН(это с учётом нарезки скоростей) и трафика 6,5Гиг.

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


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

On 1/4/2021 at 11:24 PM, John_obn said:

оллеги, изучал кто то

Главное - работа RAM и ЦПУ. 

Смотрите на соотвествие для сколько процессоров и как разположите DIM.

 

Ето для мултипроц. машин.

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

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


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

22 hours ago, John_obn said:

fastpath в nftables

Ето не для нас. Нет там счотчики.

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


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

On 1/9/2021 at 11:11 PM, John_obn said:

Иначе бы  пришлось

mpls. У меня на бекап.

Quote

 

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

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


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

Join the conversation

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

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

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

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

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

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

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