NG_NETFLOW производительность на высоких нагрузках.

Технические вопросы по UTM 5.0
Ответить
Kristian
Сообщения: 95
Зарегистрирован: Ср мар 04, 2009 21:32

NG_NETFLOW производительность на высоких нагрузках.

Сообщение Kristian »

Давайте делиться инфой, удачного опыта съема статистики при росте нагрузки на NAS.
Допустим у меня :
Corei7 + Freebsd 64х + ng_nat + ng_netflow

При росте pps более 250k один из процессов ng_queue удачно гасит idle одного из ядер процессора - и все :). Растут задержки и т.д.

Есть у кого то понимание, как можно влиять на распараллеливание нагрузки которую генерируют потоки netflow ?

А то получается, что одно ядро просело, а остальные курят бамбук.

Сейчас у меня:
Что касается заворота в нетграф

Код: Выделить всё

02200 netgraph 201 ip from table(71) to any in
02300 netgraph 202 ip from table(72) to any in
02400 netgraph 203 ip from table(73) to any in
02500 netgraph 204 ip from table(74) to any in
02600 netgraph 205 ip from table(75) to any in
02700 netgraph 206 ip from table(76) to any in
02800 netgraph 207 ip from table(77) to any in
02900 netgraph 208 ip from table(78) to any in
03000 netgraph 209 ip from table(79) to any in
03100 netgraph 210 ip from table(80) to any in
03200 netgraph 211 ip from table(81) to any in
03300 netgraph 212 ip from table(82) to any in
03400 netgraph 213 ip from table(83) to any in
03500 netgraph 214 ip from table(84) to any in
03600 netgraph 215 ip from table(85) to any in
03700 netgraph 216 ip from table(86) to any in
03800 netgraph 217 ip from table(87) to any in
03900 netgraph 218 ip from table(88) to any in

## НАТ несколькими внешними IP
04000 netgraph tablearg ip4 from table(50) to not table(100) out via vlan123

04200 netgraph 11 ip4 from not table(100) to Х.Х.Х.101 in via vlan123
04300 netgraph 21 ip4 from not table(100) to Х.Х.Х.102 in via vlan123
04400 netgraph 31 ip4 from not table(100) to Х.Х.Х.103 in via vlan123
04500 netgraph 41 ip4 from not table(100) to Х.Х.Х.104 in via vlan123
04600 netgraph 51 ip4 from not table(100) to Х.Х.Х.105 in via vlan123
04700 netgraph 61 ip4 from not table(100) to Х.Х.Х.106 in via vlan123
04800 netgraph 71 ip4 from not table(100) to Х.Х.Х.107 in via vlan123
04900 netgraph 81 ip4 from not table(100) to Х.Х.Х.108 in via vlan123
05000 netgraph 91 ip4 from not table(100) to Х.Х.Х.109 in via vlan123
05100 netgraph 101 ip4 from not table(100) to Х.Х.Х.110 in via vlan123
05200 netgraph 111 ip4 from not table(100) to Х.Х.Х.111 in via vlan123
05300 netgraph 121 ip4 from not table(100) to Х.Х.Х.112 in via vlan123
05400 netgraph 131 ip4 from not table(100) to Х.Х.Х.113 in via vlan123
05500 netgraph 141 ip4 from not table(100) to Х.Х.Х.114 in via vlan123
05600 netgraph 151 ip4 from not table(100) to Х.Х.Х.115 in via vlan123
05700 netgraph 161 ip4 from not table(100) to Х.Х.Х.116 in via vlan123
05800 netgraph 171 ip4 from not table(100) to Х.Х.Х.117 in via vlan123
05900 netgraph 201 ip from any to table(71) in
06000 netgraph 202 ip from any to table(72) in
06100 netgraph 203 ip from any to table(73) in
06200 netgraph 204 ip from any to table(74) in
06300 netgraph 205 ip from any to table(75) in
06400 netgraph 206 ip from any to table(76) in
06500 netgraph 207 ip from any to table(77) in
06600 netgraph 208 ip from any to table(78) in
06700 netgraph 209 ip from any to table(79) in
06800 netgraph 210 ip from any to table(80) in
06900 netgraph 211 ip from any to table(81) in
07000 netgraph 212 ip from any to table(82) in
07100 netgraph 213 ip from any to table(83) in
07200 netgraph 214 ip from any to table(84) in
07300 netgraph 215 ip from any to table(85) in
07400 netgraph 216 ip from any to table(86) in
07500 netgraph 217 ip from any to table(87) in
07600 netgraph 218 ip from any to table(88) in
Что касается netflow:

Код: Выделить всё

#!/usr/local/bin/bash
ipfw='/sbin/ipfw -q'

z=0
for &#40;&#40;i=0; i<=68; i=i+4&#41;&#41;;

do

z=$&#40;&#40;z+1&#41;&#41;
n=$&#40;&#40;$z+200&#41;&#41;
l=$&#40;&#40;$z+70&#41;&#41;
k=$&#40;&#40;$z+300&#41;&#41;
$&#123;ipfw&#125; table $l add 10.0.$i.0/22

/usr/sbin/ngctl mkpeer ipfw&#58; netflow $n iface0
/usr/sbin/ngctl name ipfw&#58;$n netflow$z
/usr/sbin/ngctl connect ipfw&#58; netflow$z&#58; $k out0
/usr/sbin/ngctl msg netflow$z&#58; settimeouts &#123; inactive=30 active=600 &#125;
/usr/sbin/ngctl mkpeer netflow$z&#58; ksocket export inet/dgram/udp
/usr/sbin/ngctl msg netflow$z&#58;export connect inet/Y.Y.Y.Y&#58;9996
/usr/sbin/ngctl msg netflow$z&#58; setdlt &#123; iface=0 dlt=12 &#125;
/usr/sbin/ngctl msg netflow$z&#58; setifindex &#123; iface=0 index=5 &#125;

done

/sbin/ipfw -q table 87 add Х.Х.Х.1/24
/sbin/ipfw -q table 87 add Х.Х.Х.2/24
/sbin/ipfw -q table 87 add Х.Х.Х.3/24
/sbin/ipfw -q table 87 add Х.Х.Х.4/24
/sbin/ipfw -q table 87 add Х.Х.Х.5/24
/sbin/ipfw -q table 87 add Х.Х.Х.6/24
/sbin/ipfw -q table 87 add Х.Х.Х.7/24
/sbin/ipfw -q table 87 add Х.Х.Х.8/24
По сути распихал подсети в разные таблицы и завернул трафик из каждого кусочка в нетграф.
Думал поделил потоки - будет мне многопроцессорная обработка.

Ткните в ошибку подхода .... Может я что то не верно понимаю.

Ответить