Vicus Posted February 1, 2013 Posted February 1, 2013 Доброе время суток! Есть система: # 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, но их нужно покупать, а целесообразность еще не так очевидна. Ваши мысли? Спасибо за внимание. Вставить ник Quote
Hawk128 Posted February 1, 2013 Posted February 1, 2013 (edited) net.isr.bindthreads=1 можно для начала попробовать. Edited February 1, 2013 by Hawk128 Вставить ник Quote
Vicus Posted February 1, 2013 Author Posted February 1, 2013 net.isr.bindthreads=1 можно для начала попробовать. Забыл сказать, что пробовал... Разницы никакой Вставить ник Quote
Vicus Posted February 1, 2013 Author Posted February 1, 2013 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 ... Вставить ник Quote
boco Posted February 1, 2013 Posted February 1, 2013 (edited) речь не о дропах. у вас 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 Edited February 1, 2013 by boco Вставить ник Quote
Ivan_83 Posted February 1, 2013 Posted February 1, 2013 ну и наверное надо сделать net.isr.dispatch=hybrid это в 9.х оно гибрид, а в 8.х оно форсе=0 Вставить ник Quote
boco Posted February 1, 2013 Posted February 1, 2013 ну и наверное надо сделать net.isr.dispatch=hybrid это в 9.х оно гибрид, а в 8.х оно форсе=0 но ведь у топикстартера как раз 9.1 =) Вставить ник Quote
Vicus Posted February 1, 2013 Author Posted February 1, 2013 речь не о дропах. у вас 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, понаблюдаю как оно сегодня Вставить ник Quote
boco Posted February 1, 2013 Posted February 1, 2013 Для девятки патчи актуальны? ну... по крайней мере накладываются =) по top -SHPI в выводе должны быть все нитки isr с примерно равной нагрузкой. ну и netstat -Q Вставить ник Quote
Сильвер Posted February 1, 2013 Posted February 1, 2013 патчи eugene grosbein Справедливости ради: это патчи melifaro@. Оригинал http://static.ipfw.ru/patches/netisr_ip_flowid.diff Вставить ник Quote
Vicus Posted February 1, 2013 Author Posted February 1, 2013 Поставил 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 Но неравномерно :( Буду патчи пробовать Вставить ник Quote
Vicus Posted February 1, 2013 Author Posted February 1, 2013 Хрень какая-то... ничего не трогал... 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 Походу на какой-то баг в ядре или дровах наткнулся? :-/ Вставить ник Quote
boco Posted February 1, 2013 Posted February 1, 2013 патчи eugene grosbein Справедливости ради: это патчи melifaro@. Оригинал http://static.ipfw.ru/patches/netisr_ip_flowid.diff прошу прощения у melifaro@. =) а вы не в курсе, может в каком-нибудь виде это таки войдет в мэйнстрим? потому что так как сейчас это же порнография =( Вставить ник Quote
Сильвер Posted February 1, 2013 Posted February 1, 2013 в каком-нибудь виде это таки войдет в мэйнстрим? Как я понимаю, могут быть некоторые проблемы с не транзитным трафиком TCP, но это лучше у него самого уточнить. Правда, он тут нечасто пишет. Вставить ник Quote
Vicus Posted February 2, 2013 Author Posted February 2, 2013 (edited) Ну вот, с патчиками много лучше. 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 Edited February 2, 2013 by Vicus Вставить ник Quote
boco Posted February 2, 2013 Posted February 2, 2013 наверное есть смысл увеличить 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 Вставить ник Quote
Vicus Posted February 6, 2013 Author Posted February 6, 2013 Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :) Вставить ник Quote
fenix-vt Posted March 13, 2013 Posted March 13, 2013 Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :) Добрый день! Хотел поинтересоваться, как система показала себя в плане стабильности? Мы тут у себя попробовали выставить net.isr.dispatch=hybrid, так система на следующий же день ушла в ребут. А когда стоит значение deffered (по умолчанию), то не перегружается, но при этом очередь прерываний от сетевой (драйвер em) сильно грузит одно ядро. Наш BRAS терминирует PPPoE, потому использование сетевых с драйвером igb не помогает, так как igb параллелит только чистый IP. Вставить ник Quote
ISPHOST Posted September 28, 2013 Posted September 28, 2013 Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :) Здравствуйте. А можете показать конфиги какие у Вас в итоге вышли sysctl.conf loader.conf ? И желательно вывод top -aSCHIP Спасибо! Вставить ник Quote
Vicus Posted September 30, 2013 Author Posted September 30, 2013 Выставил буфер и другие опции. Несколько дней, полет нормальный, нагрузка радует. Еще раз спасибо :) Здравствуйте. А можете показать конфиги какие у Вас в итоге вышли 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 пользователей.... Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.