t0ly Posted February 20, 2009 Posted February 20, 2009 # netstat -w1 -I em1 input (em1) output packets errs bytes packets errs bytes colls 295650 0 115891006 295693 0 115559474 0 294464 0 115423958 294387 0 115159194 0 298744 0 117103070 298753 0 116784426 0 298291 0 116925946 298333 0 116604106 0 293423 0 115013258 293380 0 114689186 0 295892 0 115981618 295989 0 115614698 0 297295 0 116531094 297216 0 116139586 0 297884 0 116760494 297940 0 116372826 0 это на чистом роутинге без ipfw ? Вставить ник Quote
IvanI Posted February 20, 2009 Author Posted February 20, 2009 (edited) # netstat -w1 -I em1input (em1) output packets errs bytes packets errs bytes colls 295650 0 115891006 295693 0 115559474 0 294464 0 115423958 294387 0 115159194 0 а какая карта? Edited February 20, 2009 by IvanI Вставить ник Quote
IvanI Posted February 20, 2009 Author Posted February 20, 2009 на встроенных примерно также работает input (em1) output packets errs bytes packets errs bytes colls 297282 0 116511193 296155 0 116504360 0 297310 0 116523885 296178 0 116255440 0 297249 0 116500420 296149 0 116093936 0 295577 0 115670805 295742 0 115281712 0 297241 0 116497944 296192 0 116492600 0 297279 0 116513154 296140 0 116340504 0 297264 0 116505487 296186 0 116099816 0 Вставить ник Quote
jab Posted February 20, 2009 Posted February 20, 2009 # netstat -w1 -I em1 input (em1) output packets errs bytes packets errs bytes colls 295650 0 115891006 295693 0 115559474 0 294464 0 115423958 294387 0 115159194 0 а какая карта? Сказал же, внешняя 1000/PT Dual. У меня все такие. Core2Quad Q8200 без разгона, Asus P5E-VM. это на чистом роутинге без ipfw ? Все идет через первое правило: 00010 129045332 26581763417 allow ip from 192.168.0.0/16 to 192.168.0.0/16 На самом деле у меня генератор трафика затыкается быстрее, а стенд собирать лень. Но ошибок на rx нет. На следующей неделе попробую повторить с polling + HZ=4000 PS: Да и не нужны мне в жизни такие pps'ы. Вставить ник Quote
IvanI Posted February 20, 2009 Author Posted February 20, 2009 В воскресенье или понедельник привезут чето подобное, попробую и отпишусь, что я уже понял - это тюнить сеть безполезно, единственное при гигабите мелкими пакетами можно дескрипторов по 1к поставить. Вставить ник Quote
jab Posted February 20, 2009 Posted February 20, 2009 В воскресенье или понедельник привезут чето подобное, попробую и отпишусь, что я уже понял - это тюнить сеть безполезно, единственное при гигабите мелкими пакетами можно дескрипторов по 1к поставить. loader.conf: hw_em_txd/rxd=4096 sysctl net.inet.ip.intr_queue_maxlen=1000 dev.em.1.rx_kthreads: 4 dev.em.1.rx_int_delay: 600 dev.em.1.tx_int_delay: 600 dev.em.1.rx_abs_int_delay: 1000 dev.em.1.tx_abs_int_delay: 1000 Это навскидку, там еще что-то в ядре подтюнено. dev.em.1.%desc: Intel® PRO/1000 Network Connection Version - 6.7.3.Yandex[$Revision: 1.40 $] dev.em.1.%driver: em dev.em.1.%location: slot=0 function=1 dev.em.1.%pnpinfo: vendor=0x8086 device=0x105e subvendor=0x8086 subdevice=0x125e class=0x020000 Вставить ник Quote
IvanI Posted February 22, 2009 Author Posted February 22, 2009 Ну так значительно лучше :) input (em0) output packets errs bytes packets errs bytes colls 201134 0 119019678 201058 0 119013120 0 199703 0 118163879 199589 0 118154176 0 201204 0 119037568 201005 0 119026442 0 201858 0 119075306 201088 0 119025770 0 201331 0 119130649 201254 0 119122048 0 200876 0 118864791 200778 0 118857050 0 1195778 0 707646989 1195227 0 707611958 0 1199401 0 708870988 1197256 0 708722506 0 1186625 0 701477342 1184685 0 701357386 0 1191346 0 705072123 1191035 0 705043936 0 input (Total) output packets errs bytes packets errs bytes colls 1195327 0 707397978 1194823 0 707358752 0 1191702 0 705173311 1191183 0 705185770 0 1193539 0 704893173 1190300 0 704632762 0 2 порта на PCI-e 4х работает без дропов Вставить ник Quote
ingress Posted February 22, 2009 Posted February 22, 2009 2 порта на PCI-e 4х работает без дропов а теперь включите pf+ipfw и убедитесь что счастье продолжалось не долго. Вставить ник Quote
IvanI Posted February 22, 2009 Author Posted February 22, 2009 (edited) 6 потоков, 600 байт пакет, по 2 потока на 1 карту, роутинг, 1 правило в фаерволе iperf -u -c 10.189.1.10 -i 10 -l 550 -t 300 -b 450M тюнинг лоадер.конф hw.em.rxd=1024 hw.em.txd=1024 sysctl dev.em.0.rx_int_delay=250 sysctl dev.em.1.rx_int_delay=250 sysctl dev.em.2.rx_int_delay=250 sysctl dev.em.0.tx_int_delay=250 sysctl dev.em.1.tx_int_delay=250 sysctl dev.em.2.tx_int_delay=250 sysctl dev.em.0.rx_abs_int_delay=250 sysctl dev.em.1.rx_abs_int_delay=250 sysctl dev.em.2.rx_abs_int_delay=250 sysctl dev.em.0.tx_abs_int_delay=250 sysctl dev.em.1.tx_abs_int_delay=250 sysctl dev.em.2.tx_abs_int_delay=250 sysctl dev.em.0.rx_processing_limit=400 sysctl dev.em.1.rx_processing_limit=400 sysctl dev.em.2.rx_processing_limit=400 топ last pid: 1305; load averages: 1.55, 0.63, 0.27 up 0+01:12:17 14:59:31 79 processes: 5 running, 62 sleeping, 12 waiting CPU 0: 0.0% user, 0.0% nice, 47.6% system, 0.0% interrupt, 52.4% idle CPU 1: 0.0% user, 0.0% nice, 0.5% system, 0.0% interrupt, 99.5% idle CPU 2: 0.0% user, 0.0% nice, 46.0% system, 0.0% interrupt, 54.0% idle CPU 3: 0.0% user, 0.0% nice, 42.9% system, 0.0% interrupt, 57.1% idle Mem: 16M Active, 7816K Inact, 36M Wired, 9424K Buf, 1942M Free Swap: 4096M Total, 4096M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 13 root 1 171 ki31 0K 8K CPU1 1 71:38 100.00% idle: cpu1 11 root 1 171 ki31 0K 8K RUN 3 70:21 56.49% idle: cpu3 12 root 1 171 ki31 0K 8K CPU2 2 70:21 54.59% idle: cpu2 14 root 1 171 ki31 0K 8K RUN 0 70:09 50.20% idle: cpu0 25 root 1 -68 - 0K 8K - 0 1:30 53.66% em2 taskq 24 root 1 -68 - 0K 8K - 3 1:21 50.68% em1 taskq 23 root 1 -68 - 0K 8K - 2 1:20 50.49% em0 taskq 15 root 1 -32 - 0K 8K WAIT 1 0:07 0.00% swi4: clock 33 root 1 -68 - 0K 8K - 1 0:04 0.00% dummynet Edited February 22, 2009 by IvanI Вставить ник Quote
IvanI Posted February 22, 2009 Author Posted February 22, 2009 50 таких "ipfw add 100 skipto 200 udp from 192.168.20.1 to 10.0.0.1" правил на все (3 ин + 3 оут) дают last pid: 1424; load averages: 1.24, 0.62, 0.38 up 0+01:28:54 15:16:08 79 processes: 8 running, 59 sleeping, 12 waiting CPU 0: 0.0% user, 0.0% nice, 98.4% system, 0.0% interrupt, 1.6% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 2: 0.0% user, 0.0% nice, 93.6% system, 0.0% interrupt, 6.4% idle CPU 3: 0.0% user, 0.0% nice, 94.0% system, 0.0% interrupt, 6.0% idle Mem: 18M Active, 7960K Inact, 38M Wired, 9920K Buf, 1939M Free Swap: 4096M Total, 4096M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 13 root 1 171 ki31 0K 8K RUN 1 88:13 100.00% idle: cpu1 14 root 1 171 ki31 0K 8K RUN 0 84:55 6.49% idle: cpu0 12 root 1 171 ki31 0K 8K RUN 2 84:48 15.87% idle: cpu2 11 root 1 171 ki31 0K 8K RUN 3 84:28 10.35% idle: cpu3 24 root 1 -68 - 0K 8K CPU3 3 3:51 88.67% em1 taskq 23 root 1 -68 - 0K 8K CPU2 2 3:31 88.28% em0 taskq 25 root 1 -68 - 0K 8K CPU0 0 3:20 96.00% em2 taskq 1182138 701 698681211 1180374 0 698546016 0 1186016 3874 701817934 1185788 0 701768736 0 1184495 4728 701050043 1183652 0 701021760 0 1186188 6301 702061995 1186095 0 702032672 0 1117753 4849 660628000 1115556 0 660489296 0 1170420 907 692726736 1170467 0 692702208 0 1178328 2716 697386236 1177411 0 697356096 0 1185776 4185 701821737 1185421 0 701795904 0 1177690 6079 696374490 1176675 0 696272144 0 я доволен такими показателями :) 50 таких "ipfw add 100 skipto 200 all from 192.168.20.1 to 10.0.0.1" правил на все (3 ин + 3 оут) дают last pid: 1489; load averages: 1.56, 0.67, 0.43 up 0+01:34:17 15:21:31 78 processes: 8 running, 58 sleeping, 12 waiting CPU 0: 0.0% user, 0.0% nice, 85.0% system, 0.0% interrupt, 15.0% idle CPU 1: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 2: 0.0% user, 0.0% nice, 83.4% system, 0.0% interrupt, 16.6% idle CPU 3: 0.0% user, 0.0% nice, 78.1% system, 0.0% interrupt, 21.9% idle Mem: 18M Active, 7956K Inact, 39M Wired, 9920K Buf, 1939M Free Swap: 4096M Total, 4096M Free PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 13 root 1 171 ki31 0K 8K RUN 1 93:36 100.00% idle: cpu1 14 root 1 171 ki31 0K 8K RUN 0 89:20 16.06% idle: cpu0 12 root 1 171 ki31 0K 8K RUN 2 89:16 23.97% idle: cpu2 11 root 1 171 ki31 0K 8K RUN 3 89:00 20.07% idle: cpu3 24 root 1 -68 - 0K 8K CPU3 3 4:43 82.76% em1 taskq 23 root 1 -68 - 0K 8K CPU2 2 4:26 82.86% em0 taskq 25 root 1 -68 - 0K 8K CPU0 0 4:19 92.19% em2 taskq 15 root 1 -32 - 0K 8K WAIT 1 0:09 0.00% swi4: clock input (Total) output packets errs bytes packets errs bytes colls 1200290 0 709434087 1198575 0 709286720 0 1201112 0 710424430 1199630 0 710338698 0 1169544 0 692176739 1168915 0 692143536 0 1201369 0 710972622 1201457 0 710929360 0 1198146 0 709103618 1197745 0 709055370 0 1201416 0 710193663 1199327 0 710047840 0 Вставить ник Quote
IvanI Posted February 22, 2009 Author Posted February 22, 2009 em0: Excessive collisions = 0 em0: Sequence errors = 0 em0: Defer count = 0 em0: Missed Packets = 0 em0: Receive No Buffers = 0 em0: Receive Length Errors = 0 em0: Receive errors = 0 em0: Crc errors = 0 em0: Alignment errors = 0 em0: Collision/Carrier extension errors = 0 em0: RX overruns = 0 em0: watchdog timeouts = 0 em0: RX MSIX IRQ = 0 TX MSIX IRQ = 0 LINK MSIX IRQ = 0 em0: XON Rcvd = 0 em0: XON Xmtd = 0 em0: XOFF Rcvd = 0 em0: XOFF Xmtd = 0 em0: Good Packets Rcvd = 86530845 em0: Good Packets Xmtd = 84913790 em0: TSO Contexts Xmtd = 35 em0: TSO Contexts Failed = 0 em0: Adapter hardware address = 0x84dfb218 em0: CTRL = 0x400c0241 RCTL = 0x8002 em0: Packet buffer = Tx=16k Rx=32k em0: Flow control watermarks high = 30720 low = 29220 em0: tx_int_delay = 244, tx_abs_int_delay = 244 em0: rx_int_delay = 244, rx_abs_int_delay = 244 em0: fifo workaround = 0, fifo_reset_count = 0 em0: hw tdh = 607, hw tdt = 607 em0: hw rdh = 728, hw rdt = 727 em0: Num Tx descriptors avail = 1024 em0: Tx Descriptors not avail1 = 0 em0: Tx Descriptors not avail2 = 0 em0: Std mbuf failed = 0 em0: Std mbuf cluster failed = 0 em0: Driver dropped packets = 0 em0: Driver tx dma failure in encap = 0 em1: Excessive collisions = 0 em1: Sequence errors = 0 em1: Defer count = 0 em1: Missed Packets = 0 em1: Receive No Buffers = 0 em1: Receive Length Errors = 0 em1: Receive errors = 0 em1: Crc errors = 0 em1: Alignment errors = 0 em1: Collision/Carrier extension errors = 0 em1: RX overruns = 0 em1: watchdog timeouts = 0 em1: RX MSIX IRQ = 0 TX MSIX IRQ = 0 LINK MSIX IRQ = 0 em1: XON Rcvd = 0 em1: XON Xmtd = 0 em1: XOFF Rcvd = 0 em1: XOFF Xmtd = 0 em1: Good Packets Rcvd = 92178835 em1: Good Packets Xmtd = 90985175 em1: TSO Contexts Xmtd = 0 em1: TSO Contexts Failed = 0 em1: Adapter hardware address = 0x84e06218 em1: CTRL = 0x480c0241 RCTL = 0x8002 em1: Packet buffer = Tx=16k Rx=32k em1: Flow control watermarks high = 30720 low = 29220 em1: tx_int_delay = 244, tx_abs_int_delay = 244 em1: rx_int_delay = 244, rx_abs_int_delay = 244 em1: fifo workaround = 0, fifo_reset_count = 0 em1: hw tdh = 727, hw tdt = 727 em1: hw rdh = 939, hw rdt = 938 em1: Num Tx descriptors avail = 1024 em1: Tx Descriptors not avail1 = 0 em1: Tx Descriptors not avail2 = 0 em1: Std mbuf failed = 0 em1: Std mbuf cluster failed = 0 em1: Driver dropped packets = 0 em1: Driver tx dma failure in encap = 0 em2: Excessive collisions = 0 em2: Sequence errors = 0 em2: Defer count = 0 em2: Missed Packets = 54689 em2: Receive No Buffers = 3582 em2: Receive Length Errors = 0 em2: Receive errors = 0 em2: Crc errors = 0 em2: Alignment errors = 0 em2: Collision/Carrier extension errors = 0 em2: RX overruns = 2639 em2: watchdog timeouts = 0 em2: RX MSIX IRQ = 0 TX MSIX IRQ = 0 LINK MSIX IRQ = 0 em2: XON Rcvd = 0 em2: XON Xmtd = 0 em2: XOFF Rcvd = 0 em2: XOFF Xmtd = 0 em2: Good Packets Rcvd = 77091344 em2: Good Packets Xmtd = 75882617 em2: TSO Contexts Xmtd = 0 em2: TSO Contexts Failed = 0 em2: Adapter hardware address = 0x84e11218 em2: CTRL = 0x48100240 RCTL = 0x8002 em2: Packet buffer = Tx=14k Rx=10k em2: Flow control watermarks high = 8192 low = 6692 em2: tx_int_delay = 244, tx_abs_int_delay = 244 em2: rx_int_delay = 244, rx_abs_int_delay = 244 em2: fifo workaround = 0, fifo_reset_count = 0 em2: hw tdh = 121, hw tdt = 121 em2: hw rdh = 304, hw rdt = 303 em2: Num Tx descriptors avail = 1024 em2: Tx Descriptors not avail1 = 0 em2: Tx Descriptors not avail2 = 0 em2: Std mbuf failed = 0 em2: Std mbuf cluster failed = 0 em2: Driver dropped packets = 0 em2: Driver tx dma failure in encap = 0 gw1# gw1# sysctl -a | grep dev.em dev.em.0.%desc: Intel(R) PRO/1000 Network Connection 6.9.6 dev.em.0.%driver: em dev.em.0.%location: slot=0 function=0 dev.em.0.%pnpinfo: vendor=0x8086 device=0x105e subvendor=0x8086 subdevice=0x115e class=0x020000 dev.em.0.%parent: pci1 dev.em.0.debug: -1 dev.em.0.stats: -1 dev.em.0.rx_int_delay: 250 dev.em.0.tx_int_delay: 250 dev.em.0.rx_abs_int_delay: 250 dev.em.0.tx_abs_int_delay: 250 dev.em.0.rx_processing_limit: 400 dev.em.1.%desc: Intel(R) PRO/1000 Network Connection 6.9.6 dev.em.1.%driver: em dev.em.1.%location: slot=0 function=1 dev.em.1.%pnpinfo: vendor=0x8086 device=0x105e subvendor=0x8086 subdevice=0x115e class=0x020000 dev.em.1.%parent: pci1 dev.em.1.debug: -1 dev.em.1.stats: -1 dev.em.1.rx_int_delay: 250 dev.em.1.tx_int_delay: 250 dev.em.1.rx_abs_int_delay: 250 dev.em.1.tx_abs_int_delay: 250 dev.em.1.rx_processing_limit: 400 dev.em.2.%desc: Intel(R) PRO/1000 Network Connection 6.9.6 dev.em.2.%driver: em dev.em.2.%location: slot=25 function=0 handle=\_SB_.PCI0.GBE_ dev.em.2.%pnpinfo: vendor=0x8086 device=0x10bd subvendor=0x1462 subdevice=0x6560 class=0x020000 dev.em.2.%parent: pci0 dev.em.2.debug: -1 dev.em.2.stats: -1 dev.em.2.rx_int_delay: 250 dev.em.2.tx_int_delay: 250 dev.em.2.rx_abs_int_delay: 250 dev.em.2.tx_abs_int_delay: 250 dev.em.2.rx_processing_limit: 400 dev.em.2.wake: 0 Вставить ник Quote
jab Posted February 22, 2009 Posted February 22, 2009 Угу, а воплей-то было... "измена! во фре не работает PCI-E"... Потом взял и сходу Mpps выжрал... Вставить ник Quote
sid1333 Posted February 22, 2009 Posted February 22, 2009 Гм... Я наверно чего-то не понимаю, но как можно 3-мя гигабитными сетевухами выжать поток почти 11.5Гбит/с ?? Вставить ник Quote
jab Posted February 22, 2009 Posted February 22, 2009 Там нету 11.5, там везде в два раза меньше. Вставить ник Quote
sid1333 Posted February 22, 2009 Posted February 22, 2009 Там нету 11.5, там везде в два раза меньше. В сумме то 11.5 на вход и выход Вставить ник Quote
jab Posted February 22, 2009 Posted February 22, 2009 Там нету 11.5, там везде в два раза меньше.В сумме то 11.5 на вход и выход Нет, netstat -w1 считает суммарно вход и выход по всем интерфейсам в первых трех колонках. К примеру: # netstat -w1 input (Total) output packets errs bytes packets errs bytes colls 453601 0 305333342 451077 0 302955083 0 449225 0 301805930 446362 0 299207746 0 436775 0 289267404 434259 0 286819063 0 437126 0 293162132 433442 0 289437034 0 444993 0 301612742 441794 0 298387870 0 442402 0 297374696 439383 0 295021403 0 450041 0 306566266 447831 0 304550048 0 443171 0 300285904 440495 0 297919891 0 Означает 450kpps in+out, 2.4Gbit/s in+out Вставить ник Quote
[GP]Villi Posted February 23, 2009 Posted February 23, 2009 а первый тест где получилось 1++ mpps был с тюнеными характеристиками сетевок, или на нетронутых настройках? вот код pf, естественно немного надо под себя изменить int_if = "{em0, em1}" ext_if = "{em2}" set limit states 800000 set limit src-nodes 80000 set optimization aggressive set skip on $int_if table <LAN> const { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } nat pass on $ext_if from <LAN> to any -> 4.4.4.240/28 bitmask pass quick from any to any Вставить ник Quote
jab Posted February 23, 2009 Posted February 23, 2009 а первый тест где получилось 1++ mpps был с тюнеными характеристиками сетевок, или на нетронутых настройках? вот код pf, естественно немного надо под себя изменить int_if = "{em0, em1}" ext_if = "{em2}" set limit states 800000 set limit src-nodes 80000 set optimization aggressive set skip on $int_if table <LAN> const { 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 } nat pass on $ext_if from <LAN> to any -> 4.4.4.240/28 bitmask pass quick from any to any К этому еще надо нагенерить 800k сессий с 80000 src. Думаю что уже при 230kpps на 250k сессий либо em:tasq либо swi:net у него упрется в ядро и начнутся лаги. Вставить ник Quote
Kaban Posted February 23, 2009 Posted February 23, 2009 (edited) IvanI, если подвести итог, то на каком железе, операционке и при каких настройках удалось добится максимальной производительности ? Edited February 23, 2009 by Kaban Вставить ник Quote
ingress Posted February 23, 2009 Posted February 23, 2009 думаю IvanI реально расстроится когда слезет с синтетики на реальный кокс :) Вставить ник Quote
jab Posted February 23, 2009 Posted February 23, 2009 думаю IvanI реально расстроится когда слезет с синтетики на реальный кокс :) Это типа - включит BGP full-view ? На самом деле пока будет хватать L2 cache на ipfw/pf/radix сильных изменений не будет. Вставить ник Quote
ingress Posted February 23, 2009 Posted February 23, 2009 (edited) нет, это будет как у меня, всё тюнил(ну разве дрова от яндекса не ставил, потому что вешали систему намертво в прошлые разы), но моя вариация pf+ipfw убивало всё, причём ничего особенного в ней не было - скраббинг + шейпинг. в итоге плюнул, вывел основной траф мимо маршрутера через отдельный vrf ну не скрабится он теперь, ну и фиг с ним :) зато нет головной боли - где же мне покрутить на этот раз чтобы оно тянуло нагрузку. Edited February 23, 2009 by ingress Вставить ник Quote
jab Posted February 23, 2009 Posted February 23, 2009 нет, это будет как у меня, всё тюнил(ну разве дрова от яндекса не ставил, потому что вешали систему намертво в прошлые разы), но моя вариация pf+ipfw убивало всё, причём ничего особенного в ней не было - скраббинг + шейпинг. У мине шейпинг бриджованный в одном тазу, скраббинг с натом и BGP на других двух, пашет даже на поллинге. Сейчас запускаю на yandex драйверах все на четырехголовых тазах. К середине марта думаю закончить. И пойду покупать Core i7. :-) Вставить ник 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.