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

FreeBSD 9.1 роутер, шейпер, без ната на 1 гиг

Доброе время суток!

Есть система:

# uname -a
FreeBSD ipn-gw-11 9.1-STABLE FreeBSD 9.1-STABLE #0: Wed Jan 30 01:51:13 VLAT 2013     root@ipn-gw-mgr.xxx.ru:/usr/obj/usr/src/sys/GATEWAY_KERNEL_9  amd64

 

# sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'
hw.machine: amd64
hw.model: Intel(R) Core(TM) i5 CPU         750  @ 2.67GHz
hw.ncpu: 4
hw.machine_arch: amd64

 

 

Сетевые:

# pciconf -lv | grep -A4 em[12] 
em1@pci0:1:0:1: class=0x020000 card=0x125f8086 chip=0x105f8086 rev=0x06 hdr=0x00
   vendor     = 'Intel Corporation'
   device     = '82571EB Gigabit Ethernet Controller'
   class      = network
   subclass   = ethernet
em2@pci0:5:0:0: class=0x020000 card=0x83691043 chip=0x10d38086 rev=0x00 hdr=0x00
   vendor     = 'Intel Corporation'
   device     = '82574L Gigabit Network Connection'
   class      = network
   subclass   = ethernet

 

# cat /boot/loader.conf 
net.isr.maxthreads=4
net.isr.dispatch=deferred
net.isr.bindthreads=0

net.graph.maxalloc=65536
net.graph.maxdata=65536

hw.em.rxd=4096
hw.em.txd=4096
hw.em.rx_int_delay=200
hw.em.tx_int_delay=200
hw.em.rx_abs_int_delay=4000
hw.em.tx_abs_int_delay=4000
hw.em.rx_process_limit=4096

 

# cat /etc/sysctl.conf
net.inet.ip.dummynet.io_fast=1
net.inet.ip.fw.one_pass=1
net.inet.ip.dummynet.pipe_slot_limit=1000
net.inet.icmp.icmplim=20000
net.inet.ip.dummynet.hash_size=65535
net.inet.ip.dummynet.expire=0
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=0
net.link.ether.inet.proxyall=1

dev.em.1.rx_int_delay=200
dev.em.1.tx_int_delay=200
dev.em.1.rx_abs_int_delay=4000
dev.em.1.tx_abs_int_delay=4000
dev.em.1.rx_processing_limit=4096

dev.em.2.rx_int_delay=200
dev.em.2.tx_int_delay=200
dev.em.2.rx_abs_int_delay=4000
dev.em.2.tx_abs_int_delay=4000
dev.em.2.rx_processing_limit=4096

kern.ipc.nmbclusters=128000
kern.ipc.maxsockbuf=16000000
net.graph.maxdgram=8388608
net.graph.recvspace=8388608

 

# top -aSCHIP
last pid: 42464;  load averages:  0.77,  0.78,  0.74       up 0+19:50:32  14:56:13
105 processes: 8 running, 75 sleeping, 22 waiting
CPU 0:  0.0% user,  0.0% nice,  3.5% system, 13.0% interrupt, 83.5% idle
CPU 1:  0.0% user,  0.0% nice,  0.4% system, 17.7% interrupt, 81.9% idle
CPU 2:  0.0% user,  0.0% nice,  0.0% system, 23.6% interrupt, 76.4% idle
CPU 3:  0.0% user,  0.0% nice, 15.0% system,  4.7% interrupt, 80.3% idle
Mem: 44M Active, 27M Inact, 243M Wired, 224K Cache, 21M Buf, 3601M Free
Swap: 

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    CPU COMMAND
  11 root       155 ki31     0K    64K RUN     3  17.8H 89.45% [idle{idle: cpu3}]
  11 root       155 ki31     0K    64K CPU0    0  17.6H 87.79% [idle{idle: cpu0}]
  11 root       155 ki31     0K    64K CPU2    2  17.1H 85.64% [idle{idle: cpu2}]
  11 root       155 ki31     0K    64K CPU1    1  17.3H 81.30% [idle{idle: cpu1}]
  12 root       -72    -     0K   384K CPU2    3 217:34 35.16% [intr{swi1: netisr 1}]
   0 root       -92    0     0K   288K CPU0    3  89:07 11.43% [kernel{em1 que}]
  12 root       -72    -     0K   384K WAIT    2  50:50  7.18% [intr{swi1: netisr 0}]
  12 root       -92    -     0K   384K WAIT    0  44:35  6.15% [intr{irq266: em2:rx 0}]
  12 root       -72    -     0K   384K CPU1    2  53:21  6.05% [intr{swi1: netisr 3}]
  12 root       -72    -     0K   384K WAIT    1  45:00  5.42% [intr{swi1: netisr 2}]
  12 root       -92    -     0K   384K WAIT    2  11:07  1.03% [intr{irq267: em2:tx 0}]

 

# netstat -hdw1
           input        (Total)           output
  packets  errs idrops      bytes    packets  errs      bytes colls drops
     136k     0     0       125M       136k     0       125M     0     0 
     136k     0     0       124M       136k     0       123M     0     0 
     142k     0     0       130M       142k     0       131M     0     0 
     139k     0     0       129M       139k     0       128M     0     0 
     141k     0     0       128M       140k     0       127M     0     0 
     140k     0     0       128M       140k     0       129M     0     0 
     130k     0     0       119M       129k     0       119M     0     0 
     139k     0     0       128M       139k     0       127M     0     0 
     140k     0     0       127M       139k     0       127M     0     0 

 

Система производит форвардинг из и в ng_vlan (порядка 1000 шт), между двумя сетевыми em1 в сторону абонентов, em2 в сторону ядра. Шейпинг через dummynet (прибит к 0 ядру). Немного фильрации через ipfw. Слив Netflow через ng_netflow. Ната нет. Ожидаемая скорость от системы - переваривать весь гиг туда-обратно.

 

В ЧНН процесс [intr{swi1: netisr 1}] начинает отжирать 100% По графикам где-то не более 200-300 мегабит в сторону абонентов. Если включить net.inet.ip.fastforwarding=1, нагрузка падает, но на выходе netstat -hdw1 начинает массово появляться дропы. В поиске где именно дропы появляются, обнаружено, что дропается на vlan11 (основной vlan, куда уходит юзерский трафик в сторону ядра. прибит через netgraph в сторону em2). Абоненты начинают жаловаться на недостаточную скорость, особенно от них.

 

Может что-то еще подкрутить? Хотя я больше грешу на чип 82571EB у em1... Судя по всему он на ядра плохо параллелится. В принципе можно сменить сетевку на 82576EB, но их нужно покупать, а целесообразность еще не так очевидна. Ваши мысли?

Спасибо за внимание.

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


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

net.isr.bindthreads=1 можно для начала попробовать.

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

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


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

net.isr.bindthreads=1 можно для начала попробовать.

Забыл сказать, что пробовал... Разницы никакой

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


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

netstat -Q

 

 

# netstat -Q
Configuration:
Setting                        Current        Limit
Thread count                         4            4
Default queue limit                256        10240
Dispatch policy               deferred          n/a
Threads bound to CPUs         disabled          n/a

Protocols:
Name   Proto QLimit Policy Dispatch Flags
ip         1    256   flow  default   ---
igmp       2    256 source  default   ---
rtsock     3    256 source  default   ---
arp        7    256 source  default   ---
ether      9    256 source   direct   ---
ip6       10    256   flow  default   ---

Workstreams:
WSID CPU   Name     Len WMark   Disp'd  HDisp'd   QDrops   Queued  Handled
  0   0   ip         0   256        0        0     3462 351659696 351659696
  0   0   igmp       0     0        0        0        0        0        0
  0   0   rtsock     0    10        0        0        0    11931    11931
  0   0   arp        0     7        0        0        0   688192   688192
  0   0   ether      0     0 2658124270        0        0        0 2658124270
  0   0   ip6        0     0        0        0        0        0        0
  1   1   ip         0   256        0        0   511869 1538699253 1538699253
  1   1   igmp       0     0        0        0        0        0        0
  1   1   rtsock     0     0        0        0        0        0        0
  1   1   arp        0    50        0        0        0   530532   530532
  1   1   ether      0     0 130478825        0        0        0 130478825
  1   1   ip6        0     0        0        0        0        0        0
  2   2   ip         0   256        0        0        1 295363775 295363775
  2   2   igmp       0     0        0        0        0        0        0
  2   2   rtsock     0     0        0        0        0        0        0
  2   2   arp        0     9        0        0        0   699123   699123
  2   2   ether      0     0 130666723        0        0        0 130666723
  2   2   ip6        0     0        0        0        0        0        0
  3   3   ip         0   256        0        0     1378 374002067 374002067
  3   3   igmp       0     0        0        0        0        0        0
  3   3   rtsock     0     0        0        0        0        0        0
  3   3   arp        0     8        0        0        0  1414854  1414854
  3   3   ether      0     0 2657009018        0        0        0 2657009018
  3   3   ip6        0     0        0        0        0        0        0

Но конкретно эти дропы имхо капля в море

 

Более интересно выглядит:

# netstat -idbhWn
Name      Mtu Network       Address              Ipkts Ierrs Idrop     Ibytes    Opkts Oerrs     Obytes  Coll Drop
em0      1500 <Link#1>      00:16:31:fe:75:7c        0     0     0          0        0     0          0     0    0 
em0      1500 fe80::216:31f fe80::216:31ff:fe        0     -     -          0        0     -          0     -    - 
em1      1500 <Link#2>      00:16:31:fe:75:7d     1.4G   395     0       1.0T     1.6G     0       1.6T     0    0 
em1      1500 fe80::216:31f fe80::216:31ff:fe        0     -     -          0        0     -          0     -    - 
usbus0      0 <Link#3>                               0     0     0          0        0     0          0     0    0 
em2      1500 <Link#4>      90:e6:ba:a6:56:11     1.6G     0     0       1.6T     1.4G     0       1.0T     0    0 
em2      1500 fe80::92e6:ba fe80::92e6:baff:f        0     -     -          0        1     -         76     -    - 
em3      1500 <Link#5>      90:e6:ba:a6:57:16     715k     0     0       155M     736k     0       113M     0    0 
em3      1500 192.168.20.0/ 192.168.20.11         713k     -     -       146M     736k     -       103M     -    - 
em3      1500 fe80::92e6:ba fe80::92e6:baff:f        0     -     -          0        1     -         76     -    - 
usbus1      0 <Link#6>                               0     0     0          0        0     0          0     0    0 
ipfw0   65536 <Link#7>                               0     0     0          0        0     0          0     0    0 
lo0     16384 <Link#8>                             124     0     0       504k      124     0       504k     0    0 
lo0     16384 ::1/128       ::1                      0     -     -          0        0     -          0     -    - 
lo0     16384 fe80::1%lo0/6 fe80::1                  0     -     -          0        0     -          0     -    - 
lo0     16384 127.0.0.0/8   127.0.0.1              124     -     -       504k      124     -       504k     -    - 
vlan11   1500 <Link#9>      90:e6:ba:a6:56:11     1.2G     0     0       1.1T     1.1G     0       808G     0 9.4k 
vlan11   1500 xx.yy.64.0/24 xx.yy.64.12              0     -     -          0     3.4M     -       4.0G     -    - 
vlan1    1500 <Link#10>     00:16:31:fe:75:7d       1M     0     0       489M     463k     0        82M     0    0 
vlan1    1500 192.168.128.0 192.168.129.50         31k     -     -       2.5M     2.8k     -       227k     -    - 
em1.100  1500 <Link#11>     00:16:31:fe:75:7d     287k     0     0        33M     421k     0       502M     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        0     -          0     -    - 
em1.100  1500 <Link#12>     00:16:31:fe:75:7d     382k     0     0        48M     537k     0       608M     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        0     -          0     -    - 
em1.100  1500 <Link#13>     00:16:31:fe:75:7d        0     0     0          0        1     0         42     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        0     -          0     -    - 
em1.100  1500 <Link#14>     00:16:31:fe:75:7d     4.9M     0     0       3.9G     5.1M     0       5.1G     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        4     -        240     -    - 
em1.100  1500 <Link#15>     00:16:31:fe:75:7d      56M     0     0        73G      30M     0       2.4G     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        0     -          0     -    - 
em1.100  1500 <Link#16>     00:16:31:fe:75:7d     226k     0     0        25M     347k     0       438M     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        0     -          0     -    - 
em1.100  1500 <Link#17>     00:16:31:fe:75:7d     1.4M     0     0        99M     2.3M     0       3.2G     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        0     -          0     -    - 
em1.100  1500 <Link#18>     00:16:31:fe:75:7d     5.3k     0     0       852k     5.8k     0       4.4M     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        1     -         33     -    - 
em1.100  1500 <Link#19>     00:16:31:fe:75:7d     2.0M     0     0       1.3G     2.2M     0       2.5G     0    0 
em1.100  1500 xx.yy.64.12/3 xx.yy.64.12              0     -     -          0        0     -          0     -    - 
em1.101  1500 <Link#20>     00:16:31:fe:75:7d     253k     0     0        28M     337k     0       378M     0    0 
...

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


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

речь не о дропах. у вас ip по ниткам isr плохо параллелится. судя по netstat, основную работу берет на себя isr 1.

 

для восьмерки мне помогли патчи eugene grosbein: http://www.grosbein.net/freebsd/patches/netisr_ip_flowid.diff и http://www.grosbein.net/freebsd/patches/netisr-aff.diff. после этого все нитки грузятся равномерно.

 

ну и наверное надо сделать net.isr.dispatch=hybrid

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

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


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

ну и наверное надо сделать net.isr.dispatch=hybrid

это в 9.х оно гибрид, а в 8.х оно форсе=0

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


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

ну и наверное надо сделать net.isr.dispatch=hybrid

это в 9.х оно гибрид, а в 8.х оно форсе=0

но ведь у топикстартера как раз 9.1 =)

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


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

речь не о дропах. у вас ip по ниткам isr плохо параллелится. судя по netstat, основную работу берет на себя isr 1.

 

для восьмерки мне помогли патчи eugene grosbein: http://www.grosbein.net/freebsd/patches/netisr_ip_flowid.diff и http://www.grosbein.net/freebsd/patches/netisr-aff.diff. после этого все нитки грузятся равномерно.

 

ну и наверное надо сделать net.isr.dispatch=hybrid

Для девятки патчи актуальны?

Поставил hybrid и bindthreads=1, понаблюдаю как оно сегодня

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


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

Для девятки патчи актуальны?

ну... по крайней мере накладываются =)

 

по top -SHPI в выводе должны быть все нитки isr с примерно равной нагрузкой. ну и netstat -Q

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


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

патчи eugene grosbein

Справедливости ради: это патчи melifaro@. Оригинал http://static.ipfw.ru/patches/netisr_ip_flowid.diff

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


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

Поставил hybrid и bindthreads=1, понаблюдаю как оно сегодня

 

Так уже лучше:

last pid:  4371;  load averages:  1.20,  1.02,  0.91       up 0+02:16:29  22:07:41
106 processes: 6 running, 77 sleeping, 23 waiting
CPU 0:  0.0% user,  0.0% nice,  4.7% system, 15.7% interrupt, 79.6% idle
CPU 1:  0.0% user,  0.0% nice,  0.0% system, 40.8% interrupt, 59.2% idle
CPU 2:  0.0% user,  0.0% nice,  1.6% system,  6.7% interrupt, 91.8% idle
CPU 3:  0.0% user,  0.0% nice, 24.7% system,  1.6% interrupt, 73.7% idle
Mem: 41M Active, 24M Inact, 223M Wired, 15M Buf, 3628M Free
Swap: 

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    CPU COMMAND
  11 root       155 ki31     0K    64K RUN     2 126:11 96.00% [idle{idle: cpu2}]
  11 root       155 ki31     0K    64K CPU0    0 107:19 86.87% [idle{idle: cpu0}]
  11 root       155 ki31     0K    64K CPU3    3 106:36 79.79% [idle{idle: cpu3}]
  11 root       155 ki31     0K    64K RUN     1  91:57 62.16% [idle{idle: cpu1}]
  12 root       -72    -     0K   384K CPU1    1  40:36 39.40% [intr{swi1: netisr 1}]
   0 root       -92    0     0K   288K -       3  26:47 24.76% [kernel{em1 que}]
  12 root       -72    -     0K   384K WAIT    0  13:30 10.40% [intr{swi1: netisr 0}]
  12 root       -92    -     0K   384K WAIT    1   9:17  6.79% [intr{irq266: em2:rx 0}]
  12 root       -72    -     0K   384K WAIT    2   7:15  4.79% [intr{swi1: netisr 2}]
  12 root       -92    -     0K   384K WAIT    3   2:04  1.42% [intr{irq267: em2:tx 0}]

            input        (Total)           output
  packets  errs idrops      bytes    packets  errs      bytes colls drops
     157k     0     0       129M       157k     0       128M     0     0 
     158k     0     0       129M       158k     0       129M     0     0 
     155k     0     0       128M       155k     0       128M     0     0 
     158k     0     0       127M       158k     0       128M     0     0 
     158k     0     0       131M       158k     0       132M     0     0 
     160k     0     0       130M       160k     0       131M     0     0 
     155k     0     0       127M       155k     0       127M     0     0 
     146k     0     0       121M       145k     0       120M     0     0 
     160k     0     0       128M       160k     0       128M     0     0 
     150k     0     0       120M       150k     0       120M     0     0 
     161k     0     0       133M       161k     0       133M     0     0 
     140k     0     0       117M       140k     0       117M     0     0 

Но неравномерно :(

Буду патчи пробовать

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


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

Хрень какая-то... ничего не трогал...

 

last pid:  6000;  load averages:  1.25,  1.30,  1.22        up 0+03:57:44  23:48:56
103 processes: 6 running, 74 sleeping, 23 waiting
CPU 0:  0.0% user,  0.0% nice,  3.9% system,  9.1% interrupt, 87.0% idle
CPU 1:  0.0% user,  0.0% nice,  0.4% system, 85.0% interrupt, 14.6% idle
CPU 2:  0.0% user,  0.0% nice,  2.4% system,  4.3% interrupt, 93.3% idle
CPU 3:  0.0% user,  0.0% nice, 24.4% system, 20.1% interrupt, 55.5% idle
Mem: 41M Active, 24M Inact, 223M Wired, 16M Buf, 3628M Free
Swap: 

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    CPU COMMAND
  11 root       155 ki31     0K    64K CPU2    2 218:49 96.53% [idle{idle: cpu2}]
  11 root       155 ki31     0K    64K RUN     0 190:20 96.04% [idle{idle: cpu0}]
  12 root       -72    -     0K   384K CPU1    1  89:20 79.79% [intr{swi1: netisr 1}]
  11 root       155 ki31     0K    64K RUN     3 185:47 63.53% [idle{idle: cpu3}]
   0 root       -92    0     0K   288K -       3  45:47 22.56% [kernel{em1 que}]
  11 root       155 ki31     0K    64K RUN     1 142:12 19.24% [idle{idle: cpu1}]
  12 root       -72    -     0K   384K WAIT    3   4:45 18.99% [intr{swi1: netisr 3}]
  12 root       -72    -     0K   384K WAIT    0  21:25  5.96% [intr{swi1: netisr 0}]
  12 root       -72    -     0K   384K WAIT    2  14:10  5.03% [intr{swi1: netisr 2}]
  12 root       -92    -     0K   384K WAIT    3  15:02  3.03% [intr{irq266: em2:rx 0}]
  12 root       -92    -     0K   384K WAIT    1   3:34  0.73% [intr{irq267: em2:tx 0}]

 

            input        (Total)           output
  packets  errs idrops      bytes    packets  errs      bytes colls drops
     107k     0     0        87M       107k     0        87M     0     0 
     110k     0     0        91M       110k     0        91M     0     0 
     112k     0     0        92M       113k     0        92M     0     0 
     108k     0     0        85M       108k     0        85M     0     1 
     114k     0     0        90M       113k     0        90M     0     0 
     119k     0     0        97M       119k     0        97M     0     0 
     112k     0     0        90M       111k     0        90M     0     0 
     111k     0     0        90M       112k     0        90M     0    15 
     107k     0     0        85M       106k     0        85M     0    51 
      99k     0     0        78M        98k     0        78M     0   326 
     110k     0     0        86M       109k     0        86M     0     0 
     102k     0     0        81M       102k     0        81M     0     0 
     108k     0     0        86M       108k     0        86M     0     0 
     117k     0     0        93M       116k     0        93M     0     0 
     108k     0     0        86M       108k     0        86M     0     0 

 

Походу на какой-то баг в ядре или дровах наткнулся? :-/

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


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

патчи eugene grosbein

Справедливости ради: это патчи melifaro@. Оригинал http://static.ipfw.ru/patches/netisr_ip_flowid.diff

прошу прощения у melifaro@. =) а вы не в курсе, может в каком-нибудь виде это таки войдет в мэйнстрим? потому что так как сейчас это же порнография =(

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


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

в каком-нибудь виде это таки войдет в мэйнстрим?

 

Как я понимаю, могут быть некоторые проблемы с не транзитным трафиком TCP, но это лучше у него самого уточнить. Правда, он тут нечасто пишет.

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


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

Ну вот, с патчиками много лучше. boco отдельное спасибо, что тыкнул носом :)

 

# top -aSCHIP
last pid: 15009;  load averages:  1.21,  0.93,  0.77               up 0+12:23:12  17:19:47
103 processes: 6 running, 73 sleeping, 24 waiting
CPU 0:  0.0% user,  0.0% nice,  5.9% system, 23.2% interrupt, 70.9% idle
CPU 1:  0.0% user,  0.0% nice,  2.4% system, 15.4% interrupt, 82.3% idle
CPU 2:  0.0% user,  0.0% nice,  1.6% system, 14.6% interrupt, 83.9% idle
CPU 3:  0.4% user,  0.0% nice, 19.3% system,  3.9% interrupt, 76.4% idle
Mem: 41M Active, 24M Inact, 223M Wired, 52K Cache, 15M Buf, 3627M Free
Swap: 

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    CPU COMMAND
  11 root       155 ki31     0K    64K CPU2    2 648:53 86.96% [idle{idle: cpu2}]
  11 root       155 ki31     0K    64K RUN     1 651:33 83.59% [idle{idle: cpu1}]
  11 root       155 ki31     0K    64K CPU0    0 609:08 76.56% [idle{idle: cpu0}]
  11 root       155 ki31     0K    64K RUN     3 597:10 73.19% [idle{idle: cpu3}]
   0 root       -92    0     0K   288K CPU3    3  87:13 21.00% [kernel{em1 que}]
  12 root       -72    -     0K   384K WAIT    0  49:52 17.82% [intr{swi1: netisr 0}]
  12 root       -92    -     0K   384K WAIT    0  56:40 12.79% [intr{irq266: em2:rx 0}]
  12 root       -72    -     0K   384K WAIT    1  73:27 12.70% [intr{swi1: netisr 1}]
  12 root       -72    -     0K   384K WAIT    2  81:04 11.52% [intr{swi1: netisr 2}]
  12 root       -72    -     0K   384K WAIT    3  59:37  5.96% [intr{swi1: netisr 3}]
  12 root       -92    -     0K   384K WAIT    1   6:44  1.12% [intr{irq267: em2:tx 0}]

 

# netstat -hdw1
           input        (Total)           output
  packets  errs idrops      bytes    packets  errs      bytes colls drops
     130k     0     0       114M       130k     0       114M     0     0 
     156k     0     0       138M       156k     0       138M     0     0 
     149k     0     0       131M       148k     0       131M     0    36 
     149k     0     0       131M       149k     0       131M     0     0 
     150k     0     0       132M       150k     0       132M     0     0 
     141k     0     0       125M       141k     0       124M     0     0 
     143k     0     0       127M       143k     0       127M     0     0 
     143k     0     0       126M       142k     0       125M     0     0 
     138k     0     0       120M       138k     0       120M     0     0 
     152k     0     0       136M       151k     0       136M     0     0 
     161k     0     0       145M       161k     0       144M     0     0 
     159k     0     0       140M       158k     0       140M     0     0 
     143k     0     0       128M       143k     0       128M     0     0 
     145k     0     0       129M       145k     0       129M     0     0 
     155k     0     0       139M       155k     0       138M     0     0 

 

# netstat -Q
Configuration:
Setting                        Current        Limit
Thread count                         4            4
Default queue limit                256        10240
Dispatch policy                 hybrid          n/a
Threads bound to CPUs          enabled          n/a

Protocols:
Name   Proto QLimit Policy Dispatch Flags
ip         1    256   flow  default   --F
igmp       2    256 source  default   ---
rtsock     3    256 source  default   ---
arp        7    256 source  default   ---
ether      9    256 source   direct   ---
ip6       10    256   flow  default   ---

Workstreams:
WSID CPU   Name     Len WMark   Disp'd  HDisp'd   QDrops   Queued  Handled
  0   0   ip         0   256        0 185019378     1586 237426182 422445560
  0   0   igmp       0     0        0        0        0        0        0
  0   0   rtsock     0    24        0        0        0     3287     3287
  0   0   arp        0    11        0    11747        0   405686   417433
  0   0   ether      0     0 1606570585        0        0        0 1606570585
  0   0   ip6        0     0        0        0        0        0        0
  1   1   ip         0   256        0 17664596     9096 366446884 384111480
  1   1   igmp       0     0        0        0        0        0        0
  1   1   rtsock     0     0        0        0        0        0        0
  1   1   arp        0    19        0    16301        0   460088   476389
  1   1   ether      0     0 163775687        0        0        0 163775687
  1   1   ip6        0     0        0        0        0        0        0
  2   2   ip         0   256        0 19565116    14100 389728052 409293168
  2   2   igmp       0     0        0        0        0        0        0
  2   2   rtsock     0     0        0        0        0        0        0
  2   2   arp        0    13        0     7839        0   299026   306865
  2   2   ether      0     0 160597787        0        0        0 160597787
  2   2   ip6        0     0        0        0        0        0        0
  3   3   ip         0   256        0 164668947    29577 239438408 404107355
  3   3   igmp       0     0        0        0        0        0        0
  3   3   rtsock     0     0        0        0        0        0        0
  3   3   arp        0    44        0   279436        0    58181   337617
  3   3   ether      0     0 1487020041        0        0        0 1487020041
  3   3   ip6        0     0        0        0        0        0        0

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

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


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

наверное есть смысл увеличить net.link.ifqmaxlen в /boot/loader.conf. по умолчанию там 50 пакетов. поставьте, например, 10240

 

и еще для снижения нагрузки на cpu в sysctl.conf:

net.inet.ip.redirect=0

kern.random.sys.harvest.ethernet=0

kern.random.sys.harvest.point_to_point=0

kern.random.sys.harvest.interrupt=0

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


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

Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :)

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


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

Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :)

Добрый день!

Хотел поинтересоваться, как система показала себя в плане стабильности?

 

Мы тут у себя попробовали выставить net.isr.dispatch=hybrid, так система на следующий же день ушла в ребут. А когда стоит значение deffered (по умолчанию), то не перегружается, но при этом очередь прерываний от сетевой (драйвер em) сильно грузит одно ядро. Наш BRAS терминирует PPPoE, потому использование сетевых с драйвером igb не помогает, так как igb параллелит только чистый IP.

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


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

Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :)

 

Здравствуйте.

А можете показать конфиги какие у Вас в итоге вышли sysctl.conf loader.conf ?

И желательно вывод top -aSCHIP

 

Спасибо!

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


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

Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :)

 

Здравствуйте.

А можете показать конфиги какие у Вас в итоге вышли sysctl.conf loader.conf ?

И желательно вывод top -aSCHIP

 

Спасибо!

 

# cat /etc/sysctl.conf 
security.bsd.see_other_uids=0
net.inet.ip.dummynet.io_fast=1
net.inet.ip.fw.one_pass=1
net.inet.ip.dummynet.pipe_slot_limit=1000
net.inet.icmp.icmplim=20000
net.inet.ip.dummynet.hash_size=65535
net.inet.ip.dummynet.expire=0
net.inet.ip.forwarding=1
net.inet.ip.fastforwarding=0
net.link.ether.inet.proxyall=1

dev.em.0.rx_int_delay=200
dev.em.0.tx_int_delay=200
dev.em.0.rx_abs_int_delay=4000
dev.em.0.tx_abs_int_delay=4000
dev.em.0.rx_processing_limit=4096

dev.em.1.rx_int_delay=200
dev.em.1.tx_int_delay=200
dev.em.1.rx_abs_int_delay=4000
dev.em.1.tx_abs_int_delay=4000
dev.em.1.rx_processing_limit=4096

dev.em.2.rx_int_delay=200
dev.em.2.tx_int_delay=200
dev.em.2.rx_abs_int_delay=4000
dev.em.2.tx_abs_int_delay=4000
dev.em.2.rx_processing_limit=4096

dev.em.3.rx_int_delay=200
dev.em.3.tx_int_delay=200
dev.em.3.rx_abs_int_delay=4000
dev.em.3.tx_abs_int_delay=4000
dev.em.3.rx_processing_limit=4096

kern.ipc.nmbclusters=128000
kern.ipc.maxsockbuf=16000000
net.graph.maxdgram=8388608
net.graph.recvspace=8388608

net.inet.ip.redirect=0
kern.random.sys.harvest.ethernet=0
kern.random.sys.harvest.point_to_point=0
kern.random.sys.harvest.interrupt=0 

 

# cat /boot/loader.conf 
net.isr.maxthreads=4
net.isr.dispatch=hybrid
net.isr.bindthreads=1

net.graph.maxalloc=65536
net.graph.maxdata=65536

hw.em.rxd=4096
hw.em.txd=4096
hw.em.rx_int_delay=200
hw.em.tx_int_delay=200
hw.em.rx_abs_int_delay=4000
hw.em.tx_abs_int_delay=4000
hw.em.rx_process_limit=4096

net.link.ifqmaxlen=10240

ipdivert_load="YES"

 

last pid: 33653;  load averages:  1.48,  1.53,  1.40                                                                                                                                     up 15+15:33:19  21:35:33
107 processes: 6 running, 77 sleeping, 24 waiting
CPU 0:  0.0% user,  0.0% nice,  7.9% system, 27.6% interrupt, 64.6% idle
CPU 1:  0.0% user,  0.0% nice,  2.4% system, 25.6% interrupt, 72.0% idle
CPU 2:  0.0% user,  0.0% nice,  0.8% system, 18.5% interrupt, 80.7% idle
CPU 3:  0.0% user,  0.0% nice, 30.7% system, 11.8% interrupt, 57.5% idle
Mem: 63M Active, 25M Inact, 325M Wired, 47M Buf, 3503M Free
Swap: 

 PID USERNAME   PRI NICE   SIZE    RES STATE   C   TIME    CPU COMMAND
  11 root       155 ki31     0K    64K RUN     2 326.5H 83.50% [idle{idle: cpu2}]
  11 root       155 ki31     0K    64K RUN     1 321.7H 74.41% [idle{idle: cpu1}]
  11 root       155 ki31     0K    64K CPU0    0 284.8H 68.51% [idle{idle: cpu0}]
  11 root       155 ki31     0K    64K CPU3    3 294.1H 65.53% [idle{idle: cpu3}]
   0 root       -92    0     0K   288K CPU2    3  55.2H 26.03% [kernel{em1 que}]
  12 root       -72    -     0K   384K WAIT    1  43.2H 21.29% [intr{swi1: netisr 1}]
  12 root       -72    -     0K   384K WAIT    2  41.5H 17.77% [intr{swi1: netisr 2}]
  12 root       -72    -     0K   384K WAIT    0  29.6H 14.94% [intr{swi1: netisr 0}]
  12 root       -92    -     0K   384K WAIT    1  41.4H 14.84% [intr{irq266: em2:rx 0}]
  12 root       -72    -     0K   384K WAIT    3  27.0H 12.35% [intr{swi1: netisr 3}]
   0 root       -16    0     0K   288K sched   1   2:06  4.69% [kernel{swapper}]
33642 root       -16    -     0K    16K -       3   0:00  4.64% [newnfs 0]
  12 root       -92    -     0K   384K WAIT    1 256:55  1.56% [intr{irq267: em2:tx 0}]
  13 root       -16    -     0K    64K sleep   1  81:17  0.49% [ng_queue{ng_queue0}]
  13 root       -16    -     0K    64K sleep   1  80:24  0.49% [ng_queue{ng_queue3}]
  13 root       -16    -     0K    64K sleep   0  80:47  0.39% [ng_queue{ng_queue1}]
  13 root       -16    -     0K    64K sleep   3  80:46  0.39% [ng_queue{ng_queue2}]
  12 root       -60    -     0K   384K WAIT    1 367:25  0.05% [intr{swi4: clock}]

Сейчас как-раз ЧНН, данные взял с самого нагруженного шлюза. 650 мегабит, 700 пользователей....

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


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

Join the conversation

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

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

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

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

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

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

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