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

Freebsd бордер с IGB загружен прерываниями А через него только полгигабита траффика и NAT

Товарищи, помогите пожалуйста, у меня вот такая херня

last pid: 11241;  load averages:  0.67,  0.64,  0.54    up 0+20:11:21  23:13:39
131 processes: 8 running, 95 sleeping, 28 waiting
CPU 0:  0.0% user,  0.0% nice,  5.6% system, 78.2% interrupt, 16.2% idle
CPU 1:  0.0% user,  0.0% nice,  4.5% system, 73.7% interrupt, 21.8% idle
CPU 2:  0.0% user,  0.0% nice,  6.4% system, 78.9% interrupt, 14.7% idle
CPU 3:  0.0% user,  0.0% nice,  9.7% system, 69.7% interrupt, 20.6% idle
Mem: 20M Active, 11M Inact, 415M Wired, 316K Cache, 60M Buf, 3475M Free
Swap: 4096M Total, 4096M Free

 PID USERNAME PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  12 root     -68    -     0K   496K RUN     0 483:16 63.96% {irq261: igb1:que
  12 root     -68    -     0K   496K CPU2    2 483:42 62.89% {irq263: igb1:que
  12 root     -68    -     0K   496K WAIT    1 483:54 61.67% {irq262: igb1:que
  12 root     -68    -     0K   496K WAIT    3 476:37 56.98% {irq264: igb1:que
  11 root     171 ki31     0K    64K CPU3    3 576:08 20.07% {idle: cpu3}
  11 root     171 ki31     0K    64K RUN     1 566:03 19.48% {idle: cpu1}
  12 root     -68    -     0K   496K WAIT    2 129:11 17.97% {irq258: igb0:que
  12 root     -68    -     0K   496K CPU0    0 130:58 17.87% {irq256: igb0:que
  11 root     171 ki31     0K    64K RUN     0 563:33 17.68% {idle: cpu0}
  12 root     -68    -     0K   496K WAIT    3 130:37 17.68% {irq259: igb0:que
  12 root     -68    -     0K   496K WAIT    1 129:46 16.99% {irq257: igb0:que
  11 root     171 ki31     0K    64K RUN     2 569:06 15.09% {idle: cpu2}
   0 root     -68    0     0K   240K -       3  24:04  5.08% {igb1 que}
   0 root     -68    0     0K   240K -       2  22:42  4.39% {igb1 que}

 

 

vmstat -i
interrupt                          total       rate
irq16: uhci0                          23          0
irq18: ehci0 uhci3                     2          0
cpu0: timer                    144455907       1996
irq256: igb0:que 0             369696108       5108
irq257: igb0:que 1             369610287       5107
irq258: igb0:que 2             365567412       5051
irq259: igb0:que 3             374841568       5179
irq260: igb0:link                      2          0
irq261: igb1:que 0             557984856       7710
irq262: igb1:que 1             555943757       7682
irq263: igb1:que 2             552856413       7639
irq264: igb1:que 3             560408816       7744
irq265: igb1:link                      2          0
irq266: ciss0                      14732          0
cpu3: timer                    144448006       1996
cpu1: timer                    144447838       1996
cpu2: timer                    144448274       1996
Total                         4284724003      59210

 

uname -a
FreeBSD jess.pip.ru 8.2-RELEASE FreeBSD 8.2-RELEASE

 

 

В лоадере добавили, по ощущениям стало чючють легче:

hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000

 

netstat -hw 1
           input        (Total)           output
  packets  errs idrops      bytes    packets  errs      bytes colls
     273K     0     0       125M       267K     0        90M     0
     272K     0     0       128M       264K     0        90M     0

Пробовали выключать fastforwarding и включать isr.direct = та же фигня.

 

Поллинга в ядре нет.

 

Подскажите, пожалуйста, что поглядеть?

 

Ещё пока не пробовал сделать net.isr.maxthreads больше 1, но нет ощущения, что это порулит.

 

ipfw на таблицах (21,31,41 - статичные ипы, 71,81,91 - подсети):

 

ipfw show
00005    25659864    7094216826 setfib 2 ip from table(31) to any
00006    17917798    3541253724 setfib 3 ip from table(41) to any
00007   340510902   89433216442 setfib 2 ip from table(91) to any
00008    14860465    4030475562 setfib 3 ip from table(71) to any
00010    29846103   15861650913 nat tablearg ip from table(21) to any out xmit vlan134
00020    29857577   15862069322 allow ip from table(22) to any out xmit vlan134
00030    33358322   28264773715 nat tablearg ip from any to table(22) in recv vlan134
00040    33343775   28263878508 allow ip from any to table(21) in recv vlan134
00050      643317     170596538 skipto 65530 ip from table(8) to any
00060      658721     575247295 skipto 65530 ip from any to table(8)
00230    88245329   45708936841 nat tablearg ip from table(31) to any out xmit vlan136
00260   102687671   21610082612 nat tablearg ip from table(41) to any out xmit igb1
00290    88238572   45707959389 allow ip from table(32) to any out xmit vlan136
00300   102774570   21613712575 allow ip from table(42) to any out xmit igb1
00310    93655769   81256875770 nat tablearg ip from any to table(32) in recv vlan136
00320   156888038  177335165522 nat tablearg ip from any to table(42) in recv igb1
00330    93627383   81254802174 allow ip from any to table(31) in recv vlan136
00340   156714140  177319877409 allow ip from any to table(41) in recv igb1
00342    64820729   13283688136 allow ip from table(41) to any
00350   720287796  296433096756 nat tablearg ip from table(81) to any out xmit vlan134
00360   722862466  296529896939 allow ip from table(82) to any out xmit vlan134
00370  2387229138 1097892487727 nat tablearg ip from any to table(82) in recv vlan134
00380   911669614 1002197997380 allow ip from any to table(81) in recv vlan134
00390  1245852384  462324723560 nat tablearg ip from table(91) to any out xmit vlan136
00392     7607962    2061357118 nat tablearg ip from table(71) to any out xmit igb1
00420  1243190743  462091960356 allow ip from table(92) to any out xmit vlan136
00422     7610974    2061479898 allow ip from table(72) to any out xmit igb1
00430  3965086606 1783534933380 nat tablearg ip from any to table(92) in recv vlan136
00432     9149348    8467936025 nat tablearg ip from any to table(72) in recv igb1
00440  1528601003 1625227881323 allow ip from any to table(91) in recv vlan136
00442     8711489    8436739198 allow ip from any to table(71) in recv igb1
65535 12696225668 4261249216809 allow ip from any to any

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


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

Навскидку самое страшное тут - это куча правил в файрволле, которые проходит пакет.

Делите на in/out для каждого интерфейса через skipto.

Надо, чтобы основной трафик проходил минимум правил. 10 - предел.

 

Далее, релиз - точно не самая лучше идея. Надо прыгать на STABLE.

И еще чего сделать - убедиться, что очереди прибиты к ядрам.

Ну и кстати, при наличии вланов держать еще и нетегированный трафик на igb - моветон

 

Ииии. net.inet.ip.fw.one_pass то кстати выключен, да?

 

PPS. в -STABLE есть setfib tablearg, например

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


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

И еще чего сделать - убедиться, что очереди прибиты к ядрам.

Ну и кстати, при наличии вланов держать еще и нетегированный трафик на igb - моветон

очереди прибивать пробовал - толку нет

вланы на igb - это нам так сложно аплинк приходит - часть через нетегируемое, часть по двум вланам

 

 

Ииии. net.inet.ip.fw.one_pass то кстати выключен, да?

да. Поди можно включить и не потребуется allow после каждого ната, ага?

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


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

00005    46368725   13993965679 setfib 2 ip from table(31) to any
00006    31717007    6766501440 setfib 3 ip from table(41) to any
00007   639925374  184462611780 setfib 2 ip from table(91) to any
00008    49582398   14425737191 setfib 3 ip from table(71) to any
00100       34525      13624121 nat tablearg ip from any to table(22) in recv vlan134
00110      421269     398346782 nat tablearg ip from any to table(32) in recv vlan136
00120        1701        104173 nat tablearg ip from any to table(42) in recv igb1
00130      739419     665839692 nat tablearg ip from any to table(72) in recv igb1
00140     4245292    2191123296 nat tablearg ip from any to table(82) in recv vlan134
00150     9955923    4645520197 nat tablearg ip from any to table(92) in recv vlan136
00200       42120      31356466 nat tablearg ip from table(21) to any out xmit vlan134
00230    98601505   49159270669 nat tablearg ip from table(31) to any out xmit vlan136
00260   102687671   21610082612 nat tablearg ip from table(41) to any out xmit igb1
00350   773026470  314666428535 nat tablearg ip from table(81) to any out xmit vlan134
00390  1368199194  501269066955 nat tablearg ip from table(91) to any out xmit vlan136
00392    24968123    7259824672 nat tablearg ip from table(71) to any out xmit igb1
65535 13530831206 4589033479931 allow ip from any to any

 

это изменение в фаерволле добавило примерно 10% на ядра:

 

last pid: 11819;  load averages:  0.36,  0.30,  0.34    up 0+21:19:36  00:21:54
131 processes: 9 running, 94 sleeping, 28 waiting
CPU 0:  0.0% user,  0.0% nice,  2.3% system, 59.8% interrupt, 38.0% idle
CPU 1:  0.0% user,  0.0% nice,  2.2% system, 65.5% interrupt, 32.2% idle
CPU 2:  0.0% user,  0.0% nice,  0.8% system, 62.4% interrupt, 36.8% idle
CPU 3:  0.0% user,  0.0% nice,  3.0% system, 66.2% interrupt, 30.8% idle
Mem: 20M Active, 11M Inact, 418M Wired, 324K Cache, 61M Buf, 3472M Free
Swap: 4096M Total, 4096M Free

 PID USERNAME PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  12 root     -68    -     0K   496K WAIT    2 521:56 48.00% {irq263: igb1:que
  12 root     -68    -     0K   496K CPU1    1 521:58 47.07% {irq262: igb1:que
  12 root     -68    -     0K   496K WAIT    3 514:28 46.58% {irq264: igb1:que
  12 root     -68    -     0K   496K RUN     0 522:17 46.48% {irq261: igb1:que
  11 root     171 ki31     0K    64K RUN     3 591:11 38.87% {idle: cpu3}
  11 root     171 ki31     0K    64K RUN     0 577:32 37.79% {idle: cpu0}
  11 root     171 ki31     0K    64K CPU2    2 583:27 36.57% {idle: cpu2}
  11 root     171 ki31     0K    64K RUN     1 580:47 34.86% {idle: cpu1}
  12 root     -68    -     0K   496K WAIT    2 141:28 16.16% {irq258: igb0:que
  12 root     -68    -     0K   496K WAIT    0 142:45 15.58% {irq256: igb0:que
  12 root     -68    -     0K   496K RUN     1 141:38 15.38% {irq257: igb0:que
  12 root     -68    -     0K   496K WAIT    3 142:31 14.70% {irq259: igb0:que
   0 root     -68    0     0K   240K -       2  25:29  1.46% {igb1 que}
   0 root     -68    0     0K   240K CPU0    2  27:03  1.27% {igb1 que}

Изменено пользователем В Густелёв

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


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

Вполне может быть. Оно даже на вид не очень лучше.

Еще раз: надо добиваться того, чтобы общая масса трафика ходила через 5 например правил на IN и 5 на out.

Вот нельзя таблички с натами на IN обьединить в одну, например (опционально включив потом verrevpath) ? И с out так же поступить?

Да и первые четыре правило даже с текущей версией системы можно смешать в два, если сделать 2 общие таблицы.

 

Судя по конфигурации, one_pass выключенный тут совершенно незачем

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


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

очереди прибивать пробовал - толку нет

Модель CPU какая?

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


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

Вот нельзя таблички с натами на IN обьединить в одну, например (опционально включив потом verrevpath) ? И с out так же поступить?

посмотри, я обновил правила файрволла, отсортировав их по in и out

 

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

 

Модель CPU какая?

hw.machine: amd64

hw.model: Intel® Xeon® CPU E5504 @ 2.00GHz

hw.ncpu: 4

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


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

очереди прибивать пробовал - толку нет

Тут надо понимать, что примерно процентов 80 сейчас жрет фиреволл, в первую очередь имеет смысл оптимизировать его.

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

 

 

По поводу ната:

Во-первых ipfw умеет recv vlanX.

 

Но я говорю про вещь попроще:

 

Нельзя например

00120 1701 104173 nat tablearg ip from any to table(42) in recv igb1

00130 739419 665839692 nat tablearg ip from any to table(72) in recv igb1

обьединить в одно правило?

 

00100 34525 13624121 nat tablearg ip from any to table(22) in recv vlan134

00110 421269 398346782 nat tablearg ip from any to table(32) in recv vlan136

00140 4245292 2191123296 nat tablearg ip from any to table(82) in recv vlan134

00150 9955923 4645520197 nat tablearg ip from any to table(92) in recv vlan136

тоже. Ну или хотя бы два.

 

Тут же ведь не надо все же два раза натить, ведь правда?

 

 

Я, честно говоря, не очень понимаю еще всю конструкцию в целом:

Можно описать, что из этого что?

 

То есть вот, igb1 - аплинк. vlan134/136 - тоже?

А клиенты где?

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


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

bird_of_Luck

а клиенты на igb0

 

таблицу 41 и 71 не объединяем, потому что в 41 - статичный нат (с опцией redirect ip, для тех кому нужны выделенные ip), а в 71 - нат для сетей с маской 24. Таким образом в 21, 31 и 41 там примерно по 100 ip-адресов, а вот в 71,81 и 91 - все-все сети.

Соответственно, вот пример:

таблица 41

10.1.4.32/32 1000

таблица 71

10.1.4.0/24 2000

 

правильно ли он сортирует сети в таблице?, если она будет выглядеть так:

10.1.4.0/24 2000

10.1.4.32/32 1000

 

не обломается человек со статичным ip?

 

вот таблицы 42 и 72 можно объединить, согласен. Там содержатся внешние айпи-адреса, и с учетом того что входящего трафика больше - их объединение может дать заметный результат

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


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

bird_of_Luck

а клиенты на igb0

 

таблицу 41 и 71 не объединяем, потому что в 41 - статичный нат (с опцией redirect ip, для тех кому нужны выделенные ip), а в 71 - нат для сетей с маской 24. Таким образом в 21, 31 и 41 там примерно по 100 ip-адресов, а вот в 71,81 и 91 - все-все сети.

Соответственно, вот пример:

таблица 41

10.1.4.32/32 1000

таблица 71

10.1.4.0/24 2000

 

правильно ли он сортирует сети в таблице?, если она будет выглядеть так:

10.1.4.0/24 2000

10.1.4.32/32 1000

1) Там дерево.

От того, что ты добавишь туда еще 1000 записей к 100 - даст тебе еще 1 ступенькю люкапа (т.к. он делается за логарифм), а так - ты делаешь 2 записи в фиреволле с двумя деревьями. Это дороже

2) Опять же, там дерево, там most specific match

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


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

00007 143928863  49229232396 setfib 2 ip from table(91) to any
00008  16410435   5024164499 setfib 3 ip from table(71) to any
00110 176067271  85046336428 nat tablearg ip from any to table(92) in recv vlan136
00130  10275850   9414368266 nat tablearg ip from any to table(72) in recv igb1
00140  91971055  40780631803 nat tablearg ip from any to table(82) in recv vlan134
00350  33536343  12997457095 nat tablearg ip from table(81) to any out xmit vlan134
00390  58437065  20594511126 nat tablearg ip from table(91) to any out xmit vlan136
00392   8203108   2512191916 nat tablearg ip from table(71) to any out xmit igb1
65535 387265807 175454005095 allow ip from any to any

действительно, стало значительно лучше:

 

last pid: 15698;  load averages:  0.24,  0.21,  0.22    up 0+22:57:34  01:59:52
131 processes: 7 running, 95 sleeping, 29 waiting
CPU 0:  0.0% user,  0.0% nice,  1.1% system, 52.1% interrupt, 46.8% idle
CPU 1:  0.0% user,  0.0% nice,  0.4% system, 57.3% interrupt, 42.3% idle
CPU 2:  0.0% user,  0.0% nice,  0.4% system, 59.0% interrupt, 40.6% idle
CPU 3:  0.0% user,  0.0% nice,  0.8% system, 52.6% interrupt, 46.6% idle
Mem: 21M Active, 11M Inact, 418M Wired, 324K Cache, 61M Buf, 3472M Free
Swap: 4096M Total, 4096M Free

 PID USERNAME PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  11 root     171 ki31     0K    64K CPU1    1 617:58 46.39% {idle: cpu1}
  11 root     171 ki31     0K    64K RUN     2 620:27 46.00% {idle: cpu2}
  11 root     171 ki31     0K    64K RUN     0 614:27 45.90% {idle: cpu0}
  11 root     171 ki31     0K    64K RUN     3 628:45 45.46% {idle: cpu3}
  12 root     -68    -     0K   496K CPU0    0 566:34 44.29% {irq261: igb1:que
  12 root     -68    -     0K   496K CPU3    3 558:13 43.55% {irq264: igb1:que
  12 root     -68    -     0K   496K WAIT    2 566:15 42.29% {irq263: igb1:que
  12 root     -68    -     0K   496K WAIT    1 565:53 42.09% {irq262: igb1:que
  12 root     -68    -     0K   496K WAIT    1 155:50 14.06% {irq257: igb0:que
  12 root     -68    -     0K   496K WAIT    3 156:54 13.87% {irq259: igb0:que
  12 root     -68    -     0K   496K WAIT    2 155:40 13.18% {irq258: igb0:que
  12 root     -68    -     0K   496K WAIT    0 156:36 12.99% {irq256: igb0:que
   0 root     -68    0     0K   240K -       0  28:56  0.88% {igb1 que}
   0 root     -68    0     0K   240K -       1  27:16  0.78% {igb1 que}

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


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

По-моему это предел для данного процессора.

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


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

DobroFenix

посмотрим после апдейта

драйвера на сетевку, например, не самый свежак

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


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

Ага, уже лучше.

Тут еще можно поделить-таки на in-out вот так:

 

skipto 500 ip from any to any out
00007 143928863  49229232396 setfib 2 ip from table(91) to any
00008  16410435   5024164499 setfib 3 ip from table(71) to any
00110 176067271  85046336428 nat tablearg ip from any to table(92) recv vlan136
00130  10275850   9414368266 nat tablearg ip from any to table(72) recv igb1
00140  91971055  40780631803 nat tablearg ip from any to table(82) recv vlan134
allow ip from any to any

00550  33536343  12997457095 nat tablearg ip from table(81) to any xmit vlan134
00590  58437065  20594511126 nat tablearg ip from table(91) to any xmit vlan136
00592   8203108   2512191916 nat tablearg ip from table(71) to any xmit igb1
65535 387265807 175454005095 allow ip from any to any

 

А если клиенты реально только за igb0 и там нет вланов - то еще проще, например как-то так:

 

allow ip from any to any via igb0 (на входе от клиента мы не натим, на выходе в него - тоже)

skipto 500 ip from any to any out
00007 143928863  49229232396 setfib 2 ip from table(91) to any
00008  16410435   5024164499 setfib 3 ip from table(71) to any
00110 176067271  85046336428 nat tablearg ip from any to table(X)
allow ip from any to any
00550  33536343  12997457095 nat tablearg ip from table(X+1) to any
65535 387265807 175454005095 allow ip from any to any

 

(Ну и помним еще про setfib tablearg в STABLE)

 

P.S. и one_pass включаем, разумеется, если еще не

 

P.P.S. Точнее все даже еще проще - в STABLE вот такое есть:

 

vlan262: flags=808943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 fib 13

description: CLIENT: XXXX

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

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


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

Карточка на чипе 82598 или 82599 ?

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


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

IGB это 82575 и 82576.

 

Карточка на чипе 82598 или 82599 ?

А это ix.

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

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


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

IGB это 82575 и 82576.

 

Карточка на чипе 82598 или 82599 ?

А это ix.

 

Пардон, невнимательно посмотрел.

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


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

2 DobroFenix - это ты на основе твоих мук с микротиком и старючим ксеоном вывод сделал ? )) Я тебя разочарую - на таком же ксеоне и карточках у меня 4 гигабита идет.

А по теме, попробуй выключить правила фаервола по максимуму, хоть на некоторое время - увидим в чем именно проблема, если все взлетит, то проблема в количестве правил

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


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

2 DobroFenix - это ты на основе твоих мук с микротиком и старючим ксеоном вывод сделал ? )) Я тебя разочарую - на таком же ксеоне и карточках у меня 4 гигабита идет.

А по теме, попробуй выключить правила фаервола по максимуму, хоть на некоторое время - увидим в чем именно проблема, если все взлетит, то проблема в количестве правил

ИМХО нат грузит, если отключить его можно валить трафика пока в скорости портов не упрешься, затраты на проверку правил ipfw по сравнению с libalias не имеют значения.

 

А, да, если вы в количество правил упираетесь

 

ipfw add 65534 allow all from any to any in recv \{vlan4000, vlan4001\}

65534 allow ip from any to any in recv {vlan4000,vlan4

 

позволит экономить еще строчек

 

В мейл-листах проходило что-то поро мэппинг имен интерфейсов в таблицах с использованием radix tree, что-то такое, не пробовал, должно быть феерически круто

Изменено пользователем make.kernel

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


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

В мейл-листах проходило что-то поро мэппинг имен интерфейсов в таблицах с использованием radix tree, что-то такое, не пробовал, должно быть феерически круто

Через недельку будет в -STABLE, можно пробовать. Оно немного хуже, чем skipto XXXX via iface-name, потому что skipto tablearg работает за логарифм от количества правил, но все равно лучше, чем 5-6 skipto подряд.

Поэтому лучше комбинировать - если есть интерфейс, где бегает куча трафика - указать его явным skipto, а для остальных - делать skipto tablearg.

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


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

Товарищи, помогите пожалуйста, у меня вот такая херня

last pid: 11241;  load averages:  0.67,  0.64,  0.54    up 0+20:11:21  23:13:39
131 processes: 8 running, 95 sleeping, 28 waiting
CPU 0:  0.0% user,  0.0% nice,  5.6% system, 78.2% interrupt, 16.2% idle
CPU 1:  0.0% user,  0.0% nice,  4.5% system, 73.7% interrupt, 21.8% idle
CPU 2:  0.0% user,  0.0% nice,  6.4% system, 78.9% interrupt, 14.7% idle
CPU 3:  0.0% user,  0.0% nice,  9.7% system, 69.7% interrupt, 20.6% idle
Mem: 20M Active, 11M Inact, 415M Wired, 316K Cache, 60M Buf, 3475M Free
Swap: 4096M Total, 4096M Free

 PID USERNAME PRI NICE   SIZE    RES STATE   C   TIME   WCPU COMMAND
  12 root     -68    -     0K   496K RUN     0 483:16 63.96% {irq261: igb1:que
  12 root     -68    -     0K   496K CPU2    2 483:42 62.89% {irq263: igb1:que
  12 root     -68    -     0K   496K WAIT    1 483:54 61.67% {irq262: igb1:que
  12 root     -68    -     0K   496K WAIT    3 476:37 56.98% {irq264: igb1:que
  11 root     171 ki31     0K    64K CPU3    3 576:08 20.07% {idle: cpu3}
  11 root     171 ki31     0K    64K RUN     1 566:03 19.48% {idle: cpu1}
  12 root     -68    -     0K   496K WAIT    2 129:11 17.97% {irq258: igb0:que
  12 root     -68    -     0K   496K CPU0    0 130:58 17.87% {irq256: igb0:que
  11 root     171 ki31     0K    64K RUN     0 563:33 17.68% {idle: cpu0}
  12 root     -68    -     0K   496K WAIT    3 130:37 17.68% {irq259: igb0:que
  12 root     -68    -     0K   496K WAIT    1 129:46 16.99% {irq257: igb0:que
  11 root     171 ki31     0K    64K RUN     2 569:06 15.09% {idle: cpu2}
   0 root     -68    0     0K   240K -       3  24:04  5.08% {igb1 que}
   0 root     -68    0     0K   240K -       2  22:42  4.39% {igb1 que}

 

 

vmstat -i
interrupt                          total       rate
irq16: uhci0                          23          0
irq18: ehci0 uhci3                     2          0
cpu0: timer                    144455907       1996
irq256: igb0:que 0             369696108       5108
irq257: igb0:que 1             369610287       5107
irq258: igb0:que 2             365567412       5051
irq259: igb0:que 3             374841568       5179
irq260: igb0:link                      2          0
irq261: igb1:que 0             557984856       7710
irq262: igb1:que 1             555943757       7682
irq263: igb1:que 2             552856413       7639
irq264: igb1:que 3             560408816       7744
irq265: igb1:link                      2          0
irq266: ciss0                      14732          0
cpu3: timer                    144448006       1996
cpu1: timer                    144447838       1996
cpu2: timer                    144448274       1996
Total                         4284724003      59210

 

uname -a
FreeBSD jess.pip.ru 8.2-RELEASE FreeBSD 8.2-RELEASE

 

 

В лоадере добавили, по ощущениям стало чючють легче:

hw.igb.rxd=4096
hw.igb.txd=4096
hw.igb.max_interrupt_rate=32000

 

netstat -hw 1
           input        (Total)           output
  packets  errs idrops      bytes    packets  errs      bytes colls
     273K     0     0       125M       267K     0        90M     0
     272K     0     0       128M       264K     0        90M     0

Пробовали выключать fastforwarding и включать isr.direct = та же фигня.

 

Поллинга в ядре нет.

 

Подскажите, пожалуйста, что поглядеть?

 

Ещё пока не пробовал сделать net.isr.maxthreads больше 1, но нет ощущения, что это порулит.

 

ipfw на таблицах (21,31,41 - статичные ипы, 71,81,91 - подсети):

 

ipfw show
00005    25659864    7094216826 setfib 2 ip from table(31) to any
00006    17917798    3541253724 setfib 3 ip from table(41) to any
00007   340510902   89433216442 setfib 2 ip from table(91) to any
00008    14860465    4030475562 setfib 3 ip from table(71) to any
00010    29846103   15861650913 nat tablearg ip from table(21) to any out xmit vlan134
00020    29857577   15862069322 allow ip from table(22) to any out xmit vlan134
00030    33358322   28264773715 nat tablearg ip from any to table(22) in recv vlan134
00040    33343775   28263878508 allow ip from any to table(21) in recv vlan134
00050      643317     170596538 skipto 65530 ip from table(8) to any
00060      658721     575247295 skipto 65530 ip from any to table(8)
00230    88245329   45708936841 nat tablearg ip from table(31) to any out xmit vlan136
00260   102687671   21610082612 nat tablearg ip from table(41) to any out xmit igb1
00290    88238572   45707959389 allow ip from table(32) to any out xmit vlan136
00300   102774570   21613712575 allow ip from table(42) to any out xmit igb1
00310    93655769   81256875770 nat tablearg ip from any to table(32) in recv vlan136
00320   156888038  177335165522 nat tablearg ip from any to table(42) in recv igb1
00330    93627383   81254802174 allow ip from any to table(31) in recv vlan136
00340   156714140  177319877409 allow ip from any to table(41) in recv igb1
00342    64820729   13283688136 allow ip from table(41) to any
00350   720287796  296433096756 nat tablearg ip from table(81) to any out xmit vlan134
00360   722862466  296529896939 allow ip from table(82) to any out xmit vlan134
00370  2387229138 1097892487727 nat tablearg ip from any to table(82) in recv vlan134
00380   911669614 1002197997380 allow ip from any to table(81) in recv vlan134
00390  1245852384  462324723560 nat tablearg ip from table(91) to any out xmit vlan136
00392     7607962    2061357118 nat tablearg ip from table(71) to any out xmit igb1
00420  1243190743  462091960356 allow ip from table(92) to any out xmit vlan136
00422     7610974    2061479898 allow ip from table(72) to any out xmit igb1
00430  3965086606 1783534933380 nat tablearg ip from any to table(92) in recv vlan136
00432     9149348    8467936025 nat tablearg ip from any to table(72) in recv igb1
00440  1528601003 1625227881323 allow ip from any to table(91) in recv vlan136
00442     8711489    8436739198 allow ip from any to table(71) in recv igb1
65535 12696225668 4261249216809 allow ip from any to any

Такая же фигня, сейчас отказались от igb (freebsd 9.0), купили специально карточку под em драйвер, откатываемся на 7.3

3 сервера работают под 7.3 карточки на Intel 82571 без проблем

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


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

Такая же фигня, сейчас отказались от igb (freebsd 9.0), купили специально карточку под em драйвер, откатываемся на 7.3

3 сервера работают под 7.3 карточки на Intel 82571 без проблем

Вообще довольно странно звучит. Тем более, что у человека проблема в файрволле, а не в карточках.

Во-первых, igb igb'у рознь, а em - вообще legacy, через который трафик-то особо и не погонять.

Ну а во-вторых, фиреволлинг - это процентов 30, а в случаях, как выше - и все 80. Грешить на карточки стоит далеко не всегда.

Если есть возможность посетапить еще коробку, указать конфигурацию, подать трафик и тюнить - то могу попробовать полечить по фотографии.

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


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

Такая же фигня, сейчас отказались от igb (freebsd 9.0), купили специально карточку под em драйвер, откатываемся на 7.3

3 сервера работают под 7.3 карточки на Intel 82571 без проблем

Вообще довольно странно звучит. Тем более, что у человека проблема в файрволле, а не в карточках.

Во-первых, igb igb'у рознь, а em - вообще legacy, через который трафик-то особо и не погонять.

Ну а во-вторых, фиреволлинг - это процентов 30, а в случаях, как выше - и все 80. Грешить на карточки стоит далеко не всегда.

Если есть возможность посетапить еще коробку, указать конфигурацию, подать трафик и тюнить - то могу попробовать полечить по фотографии.

Ситуация такая - в наличии 3 сервера доступа типа IBM system x3650 M2/M3 (CPU: Intel® Xeon® CPU E5504 @ 2.00GHz ),

freeBSD 7.3, в каждом, как показывает syctrl, по две двухпортовых 'HP NC360T PCIe DP Gigabit Server Adapter (n1e5132)',

собранных в lagg0/lagg1. Проработали без проблем 2 года.

Пришло время расширяться заказали еще один подобный сервер, с карточкой промахнулись - под Intel PRO/1000

приехала на чипсете 82580EB типа такой http://www.shopping.com/ibm-ibm-49y4232-2-port-network-interface-card-nic-networking/info

поставили freebsd 9.0, lagg не собирали, вобщем система стала как у топикстартера сидеть в прерываниях, по количеству сессий сервер так

с первыми тремя и не выравнялся. Игра с настройками тоже ничего не дала, сейчас заказали http://www.nix.ru/autocatalog/networking_intel/Intel_EXPI9402PT_1000_PT_Dual_PCIE_x4_1000Mbps_51176.html

на 82571EB, будем пробовать запуститься и на 9-ке и на 7.3

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


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

Ситуация такая - в наличии 3 сервера доступа типа IBM system x3650 M2/M3 (CPU: Intel® Xeon® CPU E5504 @ 2.00GHz ),

freeBSD 7.3, в каждом, как показывает syctrl, по две двухпортовых 'HP NC360T PCIe DP Gigabit Server Adapter (n1e5132)',

А это кто с т.з. интелевых драйверов? em? igb?

собранных в lagg0/lagg1. Проработали без проблем 2 года.

Пришло время расширяться заказали еще один подобный сервер, с карточкой промахнулись - под Intel PRO/1000

приехала на чипсете 82580EB типа такой http://www.shopping.com/ibm-ibm-49y4232-2-port-network-interface-card-nic-networking/info

поставили freebsd 9.0, lagg не собирали, вобщем система стала как у топикстартера сидеть в прерываниях, по количеству сессий сервер так

Вообще это 4хпортовый вариант 82576, примерно этим же кодом и поддерживается.

А как при этом трафик ходит, опишите? (роутинг, или нетграф, есть ли шейпинг, etc, чего с фиреволлом, в общем хочется услышать путь прохождения пакета).

Есть идея, которая легко реализуется и скорее всего поможет.

с первыми тремя и не выравнялся. Игра с настройками тоже ничего не дала, сейчас заказали http://www.nix.ru/autocatalog/networking_intel/Intel_EXPI9402PT_1000_PT_Dual_PCIE_x4_1000Mbps_51176.html

на 82571EB, будем пробовать запуститься и на 9-ке и на 7.3

С 71EB лучше не будет, тут дело не в карте вовсе.

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


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

Ситуация такая - в наличии 3 сервера доступа типа IBM system x3650 M2/M3 (CPU: Intel® Xeon® CPU E5504 @ 2.00GHz ),

freeBSD 7.3, в каждом, как показывает syctrl, по две двухпортовых 'HP NC360T PCIe DP Gigabit Server Adapter (n1e5132)',

А это кто с т.з. интелевых драйверов? em? igb?

em

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


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

Join the conversation

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

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

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

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

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

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

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