Jump to content

Recommended Posts

Posted (edited)

Мои выводы:

1 - на PCI-e 1х сетевухах на FREEBSD (и наверно нетолько на фре) дуплексный 2х гигабитный (1Гб/с ин + 1Гб/с оут) поток 600 байтными пакетами вызывает коллизии и дропы.

1а - встроеные сетевухи 82566 работают прекрасно, встроенные PCI-e сетевухи посажены на 1х шину и имеют все их недостатки, дуал порт на 4х шине работает нормально.

2 - тюнинг sysctl снижает нагрузку на проц ~ на 5%

3 - hw.em.rxd=1024 hw.em.txd=1024 в loader.conf позволяет принимать за 1 прерывание до 1024 пакетов, штатное значение 256 - 256 пакетов.

4 - таз с процом Q9650 способен перелопатить 3 гигабита локалки, думаю что еще сможет мегабит 200 инета раздать по PPTP

 

 

Тюнинг:

Ядро - выключено все ненужное, добавлено
options         KVA_PAGES=512
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL
options         DUMMYNET
#options                DEVICE_POLLING
options         IPDIVERT #     (NATD)
options         LIBALIAS
options         NETGRAPH
options         NETGRAPH_IPFW
options         NETGRAPH_NAT
options         NETGRAPH_NETFLOW
options         NETGRAPH_SPLIT
options         NETGRAPH_ETHER
options         NETGRAPH_KSOCKET
options         NETGRAPH_SOCKET
options         NETGRAPH_BPF
options         NETGRAPH_IFACE
options         NETGRAPH_MPPC_ENCRYPTION
options         NETGRAPH_PPP
options         NETGRAPH_PPTPGRE
options         NETGRAPH_TCPMSS
options         NETGRAPH_VJC

loader.conf
hw.em.rxd=1024
hw.em.txd=1024

sysctl
sysctl net.inet.ip.forwarding=1
sysctl net.inet.ip.fastforwarding=1
sysctl dev.em.0.rx_int_delay=250
sysctl dev.em.1.rx_int_delay=250
sysctl dev.em.2.rx_int_delay=250
sysctl dev.em.0.tx_int_delay=250
sysctl dev.em.1.tx_int_delay=250
sysctl dev.em.2.tx_int_delay=250
sysctl dev.em.0.rx_abs_int_delay=250
sysctl dev.em.1.rx_abs_int_delay=250
sysctl dev.em.2.rx_abs_int_delay=250
sysctl dev.em.0.tx_abs_int_delay=250
sysctl dev.em.1.tx_abs_int_delay=250
sysctl dev.em.2.tx_abs_int_delay=250
sysctl dev.em.0.rx_processing_limit=400
sysctl dev.em.1.rx_processing_limit=400
sysctl dev.em.2.rx_processing_limit=400

Edited by IvanI
  • Replies 296
  • Created
  • Last Reply

Top Posters In This Topic

Posted

 

Не закладывайтесь на один мощный тазик, лучше много средних. Это дает синергетический эффект. Во-первых, резервирование N+1 ( горячее или холодное ). Во-вторых, научившись разносить нагрузку, потом готовое решение можно масштабировать. В третьих - меняется подход к управлению

оборудованием, сохранению конфигов, мониторингу и т.п.

 

Posted (edited)
ну не скрабится он теперь, ну и фиг с ним :)
что имеется ввиду под словом "скрабится"?

ну допустим df флаг не убирается, сделал на серверах доступа adjust mss

keep state не делается, неправильные пакеты не убиваются etc.

 

ничего страшного в этом нет.

 

man pf.conf -> там раздел про Scrubbing есть.

Edited by ingress
Posted

Тюнинг где описан там есть, он тока снижает загрузку ядра на 5%

И если внимательно читать с начала то написано что тестовый траф бегает в ВЛАНах и соответственно считается ТОРом 2 раза

Posted (edited)
но моя вариация pf+ipfw убивало всё, причём ничего особенного в ней не было - скраббинг + шейпинг.

ну не скрабится он теперь, ну и фиг с ним

"скраббинг" (scrub, это в pf) убивает производительность. если цель - большой трафик, значит scrub использовать нельзя.

 

ЗЫЖ у него цели совсем другие

Edited by nessat
Posted (edited)

Иван, а какая модель материнки использовалась в тестах ? И на какой версии операционки остановили выбор ?

Edited by Kaban
Posted
но моя вариация pf+ipfw убивало всё, причём ничего особенного в ней не было - скраббинг + шейпинг.

ну не скрабится он теперь, ну и фиг с ним

"скраббинг" (scrub, это в pf) убивает производительность. если цель - большой трафик, значит scrub использовать нельзя.

 

ЗЫЖ у него цели совсем другие

без разницы было, что он включен что выключен.

мне нужен был только скраб.

Posted

 

Если pf включен, он все-равно будет жрать проц, со скрабом или без. У него default stateful behavior. ( Могли кстати в 7.1 и отключить уже, не смотрел) Иногда это хорошо, иногда не очень. Если включить в ipfw stateful, да нажраться коннектов - оно тоже весьма весело себя будет вести,

почти так же как на тысячах правил без ветвления. :-)

Posted
нет, это будет как у меня, всё тюнил(ну разве дрова от яндекса не ставил, потому что вешали систему намертво в прошлые разы),

но моя вариация pf+ipfw убивало всё, причём ничего особенного в ней не было - скраббинг + шейпинг.

У мине шейпинг бриджованный в одном тазу, скраббинг с натом и BGP на других двух, пашет даже на поллинге. Сейчас запускаю на yandex драйверах все на четырехголовых тазах. К середине марта

думаю закончить.

 

 

И пойду покупать Core i7. :-)

К Core i7 надо обязательно еще такие NIC - http://www.hifn.com/uploadedFiles/Products...B-DS4100-13.pdf . Преордер уже доступен ;-). 16 TX/RX queues - это не хухры-мухры.
Posted
К Core i7 надо обязательно еще такие NIC - http://www.hifn.com/uploadedFiles/Products...B-DS4100-13.pdf . Преордер уже доступен ;-). 16 TX/RX queues - это не хухры-мухры.

Нахрен они не нужны, у меня нет IPSec. Тем более там написано, что они в два раза понижают пропускную способность.

Posted
Хотелось потестить нат, соответственно вопрос - как создать 100 000 и более трансляций?
nmap -D <decoy1 [,decoy2][,ME],...> (Cloak a scan with decoys)

 

Posted
В воскресенье или понедельник привезут чето подобное, попробую и отпишусь, что я уже понял - это тюнить сеть безполезно, единственное при гигабите мелкими пакетами можно дескрипторов по 1к поставить.

loader.conf: hw_em_txd/rxd=4096

 

sysctl

 

net.inet.ip.intr_queue_maxlen=1000

dev.em.1.rx_kthreads: 4

dev.em.1.rx_int_delay: 600

dev.em.1.tx_int_delay: 600

dev.em.1.rx_abs_int_delay: 1000

dev.em.1.tx_abs_int_delay: 1000

 

Это навскидку, там еще что-то в ядре подтюнено.

 

dev.em.1.%desc: Intel® PRO/1000 Network Connection Version - 6.7.3.Yandex[$Revision: 1.40 $]

dev.em.1.%driver: em

dev.em.1.%location: slot=0 function=1

dev.em.1.%pnpinfo: vendor=0x8086 device=0x105e subvendor=0x8086 subdevice=0x125e class=0x020000

в яндексном драйвере по большому счёту используется только две ручки:

dev.em.N.rx_kthreads и dev.em.N.rx_kthread_priority - количество RX тредов и их runtime - приоритет

остальные параметры являются скорее пятыми ногами и атавизмами

 

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...