Tygra Posted February 11, 2015 Posted February 11, 2015 (edited) Доброго дня. Дано: FreeBSD 10.1-RELEASE на 2х CPU: Intel® Xeon® CPU E5506 @ 2.13GHz (2133.45-MHz K8-class CPU) на сервере asus rs520ой серии. Сетевушка sfp+ на 82599 : ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15> port 0xc880-0xc89f mem 0xfbca0000-0xfbcbffff,0xfbc9c000-0xfbc9ffff irq 32 at device 0.0 on pci6 ix0: Using MSIX interrupts with 9 vectors ix0: Ethernet address: 00:e0:ed:2f:a4:ce ix0: PCI Express Bus: Speed 5.0GT/s Width x8 ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15> port 0xcc00-0xcc1f mem 0xfbce0000-0xfbcfffff,0xfbcdc000-0xfbcdffff irq 42 at device 0.1 on pci6 ix1: Using MSIX interrupts with 9 vectors ix1: Ethernet address: 00:e0:ed:2f:a4:cf ix1: PCI Express Bus: Speed 5.0GT/s Width x8 На данный момент используется только один порт ix1. Который sfp 10gb модулем cisco подключен на циску 4948. Через него проброшено порядка 50ти вланов. Что делает : Поднят Bridge, в него подключены все приходящие с ix1 вланы. Все интерфейсы без ипов. Работает IPFW, фильтрует l2 0х8864 и 0х8863. 0x8864 сразу проходом первой строчкой, 0х8863 фильтрация по маку, все остальное блок. Проблема: "Затыкается" на 300кpps. Около 1-1.5гб трафику. Растут задержки, скорость у людей падает. На текущий момент: input ix1 output packets errs idrops bytes packets errs bytes colls 215K 0 0 184M 214K 0 183M 0 213K 0 0 171M 211K 0 171M 0 212K 0 0 175M 210K 0 175M 0 220K 0 0 172M 218K 0 172M 0 221K 0 0 181M 219K 0 181M 0 215K 0 0 180M 213K 0 179M 0 231K 0 0 187M 230K 0 187M 0 last pid: 42278; load averages: 0.82, 0.79, 0.73 up 0+01:05:27 12:11:27 195 processes: 10 running, 124 sleeping, 61 waiting CPU 0: 0.0% user, 0.0% nice, 0.0% system, 71.0% interrupt, 29.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, 0.0% system, 0.0% interrupt, 100% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 4: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 5: 0.0% user, 0.0% nice, 3.3% system, 0.0% interrupt, 96.7% idle CPU 6: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 7: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle Mem: 30M Active, 44M Inact, 349M Wired, 66M Buf, 7501M Free Swap: 3656M Total, 3656M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 155 ki31 0K 128K CPU2 2 65:18 100.00% idle{idle: cpu2} 11 root 155 ki31 0K 128K CPU1 1 65:16 100.00% idle{idle: cpu1} 11 root 155 ki31 0K 128K CPU5 5 64:45 100.00% idle{idle: cpu5} 11 root 155 ki31 0K 128K RUN 4 64:41 100.00% idle{idle: cpu4} 11 root 155 ki31 0K 128K CPU7 7 64:39 100.00% idle{idle: cpu7} 11 root 155 ki31 0K 128K CPU3 3 65:18 99.76% idle{idle: cpu3} 11 root 155 ki31 0K 128K CPU6 6 64:47 99.37% idle{idle: cpu6} 12 root -92 - 0K 992K CPU0 0 41:12 76.95% intr{irq269: ix1:que 11 root 155 ki31 0K 128K RUN 0 24:08 24.76% idle{idle: cpu0} 0 root -92 0 0K 640K - 6 0:33 0.39% kernel{ix1 que} 14 root -16 - 0K 16K - 5 0:30 0.20% rand_harvestq 0 root -16 0 0K 640K swapin 3 3:02 0.00% kernel{swapper} 12 root -60 - 0K 992K WAIT 0 0:10 0.00% intr{swi4: clock} 12 root -92 - 0K 992K WAIT 1 0:02 0.00% intr{irq278: re0} 41633 root 29 0 47764K 11160K select 1 0:01 0.00% mc 12 root -92 - 0K 992K WAIT 1 0:01 0.00% intr{irq270: ix1:que 10097 root 20 0 49836K 12340K select 5 0:00 0.00% perl 12 root -92 - 0K 992K WAIT 7 0:00 0.00% intr{irq276: ix1:que 10252 www 20 0 241M 19680K lockf 4 0:00 0.00% httpd{httpd} 12 root -92 - 0K 992K WAIT 5 0:00 0.00% intr{irq274: ix1:que 12 root -92 - 0K 992K WAIT 2 0:00 0.00% intr{irq271: ix1:que 10191 root 20 0 240M 18812K select 4 0:00 0.00% httpd 10254 www 21 0 241M 19648K lockf 3 0:00 0.00% httpd{httpd} 10971 www 21 0 241M 19648K lockf 4 0:00 0.00% httpd{httpd} 10253 www 20 0 241M 19648K kqread 4 0:00 0.00% httpd{httpd} 10360 root 20 0 86472K 7244K select 7 0:00 0.00% sshd 10256 www 20 0 241M 19648K lockf 7 0:00 0.00% httpd{httpd} 10255 www 20 0 241M 19648K lockf 5 0:00 0.00% httpd{httpd} 31337 root 20 0 86472K 7264K select 7 0:00 0.00% sshd 12 root -92 - 0K 992K WAIT 4 0:00 0.00% intr{irq273: ix1:que 12 root -92 - 0K 992K WAIT 6 0:00 0.00% intr{irq275: ix1:que 12 root -92 - 0K 992K WAIT 3 0:00 0.00% intr{irq272: ix1:que На данный момент не особо понял систему привязки прерываний. Что "ковырять" ? Посоветуйте что полезного почитать в свете выше озвученной проблемы. P\S sysctl hw.ix hw.ix.enable_aim: 1 hw.ix.max_interrupt_rate: 31250 hw.ix.rx_process_limit: 512 hw.ix.tx_process_limit: 512 hw.ix.enable_msix: 1 hw.ix.num_queues: 8 hw.ix.txd: 4096 hw.ix.rxd: 4096 sysctl dev.ix.1 dev.ix.1.%desc: Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15 dev.ix.1.%driver: ix dev.ix.1.%location: slot=0 function=1 dev.ix.1.%pnpinfo: vendor=0x8086 device=0x10fb subvendor=0x8086 subdevice=0x000c class=0x020000 dev.ix.1.%parent: pci6 dev.ix.1.fc: 3 dev.ix.1.enable_aim: 1 dev.ix.1.advertise_speed: 0 dev.ix.1.dropped: 0 dev.ix.1.mbuf_defrag_failed: 0 dev.ix.1.watchdog_events: 0 dev.ix.1.link_irq: 1 dev.ix.1.queue0.interrupt_rate: 100000 dev.ix.1.queue0.irqs: 36905368 dev.ix.1.queue0.txd_head: 166 dev.ix.1.queue0.txd_tail: 172 dev.ix.1.queue0.tso_tx: 0 dev.ix.1.queue0.no_tx_dma_setup: 0 dev.ix.1.queue0.no_desc_avail: 0 dev.ix.1.queue0.tx_packets: 928839767 dev.ix.1.queue0.rxd_head: 1726 dev.ix.1.queue0.rxd_tail: 1713 dev.ix.1.queue0.rx_packets: 917927605 dev.ix.1.queue0.rx_bytes: 764768414168 dev.ix.1.queue0.rx_copies: 394147216 dev.ix.1.queue0.lro_queued: 3 dev.ix.1.queue0.lro_flushed: 3 dev.ix.1.queue1.interrupt_rate: 500000 dev.ix.1.queue1.irqs: 36840 dev.ix.1.queue1.txd_head: 284 dev.ix.1.queue1.txd_tail: 284 dev.ix.1.queue1.tso_tx: 0 dev.ix.1.queue1.no_tx_dma_setup: 0 dev.ix.1.queue1.no_desc_avail: 0 dev.ix.1.queue1.tx_packets: 49294 dev.ix.1.queue1.rxd_head: 3910 dev.ix.1.queue1.rxd_tail: 3909 dev.ix.1.queue1.rx_packets: 48966 dev.ix.1.queue1.rx_bytes: 5371044 dev.ix.1.queue1.rx_copies: 40345 dev.ix.1.queue1.lro_queued: 0 dev.ix.1.queue1.lro_flushed: 0 dev.ix.1.queue2.interrupt_rate: 500000 dev.ix.1.queue2.irqs: 46669 dev.ix.1.queue2.txd_head: 1754 dev.ix.1.queue2.txd_tail: 1754 dev.ix.1.queue2.tso_tx: 0 dev.ix.1.queue2.no_tx_dma_setup: 0 dev.ix.1.queue2.no_desc_avail: 0 dev.ix.1.queue2.tx_packets: 50029 dev.ix.1.queue2.rxd_head: 3001 dev.ix.1.queue2.rxd_tail: 3000 dev.ix.1.queue2.rx_packets: 76729 dev.ix.1.queue2.rx_bytes: 10673338 dev.ix.1.queue2.rx_copies: 62130 dev.ix.1.queue2.lro_queued: 0 dev.ix.1.queue2.lro_flushed: 0 dev.ix.1.queue3.interrupt_rate: 500000 dev.ix.1.queue3.irqs: 24113 dev.ix.1.queue3.txd_head: 312 dev.ix.1.queue3.txd_tail: 312 dev.ix.1.queue3.tso_tx: 0 dev.ix.1.queue3.no_tx_dma_setup: 0 dev.ix.1.queue3.no_desc_avail: 0 dev.ix.1.queue3.tx_packets: 116892 dev.ix.1.queue3.rxd_head: 2539 dev.ix.1.queue3.rxd_tail: 2538 dev.ix.1.queue3.rx_packets: 35307 dev.ix.1.queue3.rx_bytes: 3848444 dev.ix.1.queue3.rx_copies: 33040 dev.ix.1.queue3.lro_queued: 0 dev.ix.1.queue3.lro_flushed: 0 dev.ix.1.queue4.interrupt_rate: 500000 dev.ix.1.queue4.irqs: 23586 dev.ix.1.queue4.txd_head: 1270 dev.ix.1.queue4.txd_tail: 1270 dev.ix.1.queue4.tso_tx: 0 dev.ix.1.queue4.no_tx_dma_setup: 0 dev.ix.1.queue4.no_desc_avail: 0 dev.ix.1.queue4.tx_packets: 6392443 dev.ix.1.queue4.rxd_head: 2568 dev.ix.1.queue4.rxd_tail: 2567 dev.ix.1.queue4.rx_packets: 23048 dev.ix.1.queue4.rx_bytes: 2445445 dev.ix.1.queue4.rx_copies: 20022 dev.ix.1.queue4.lro_queued: 0 dev.ix.1.queue4.lro_flushed: 0 dev.ix.1.queue5.interrupt_rate: 500000 dev.ix.1.queue5.irqs: 34253 dev.ix.1.queue5.txd_head: 3926 dev.ix.1.queue5.txd_tail: 3926 dev.ix.1.queue5.tso_tx: 0 dev.ix.1.queue5.no_tx_dma_setup: 0 dev.ix.1.queue5.no_desc_avail: 0 dev.ix.1.queue5.tx_packets: 403371 dev.ix.1.queue5.rxd_head: 2365 dev.ix.1.queue5.rxd_tail: 2364 dev.ix.1.queue5.rx_packets: 35133 dev.ix.1.queue5.rx_bytes: 3658611 dev.ix.1.queue5.rx_copies: 32334 dev.ix.1.queue5.lro_queued: 0 dev.ix.1.queue5.lro_flushed: 0 dev.ix.1.queue6.interrupt_rate: 500000 dev.ix.1.queue6.irqs: 43714 dev.ix.1.queue6.txd_head: 1280 dev.ix.1.queue6.txd_tail: 1280 dev.ix.1.queue6.tso_tx: 0 dev.ix.1.queue6.no_tx_dma_setup: 0 dev.ix.1.queue6.no_desc_avail: 0 dev.ix.1.queue6.tx_packets: 640 dev.ix.1.queue6.rxd_head: 3177 dev.ix.1.queue6.rxd_tail: 3176 dev.ix.1.queue6.rx_packets: 44137 dev.ix.1.queue6.rx_bytes: 4262562 dev.ix.1.queue6.rx_copies: 41648 dev.ix.1.queue6.lro_queued: 0 dev.ix.1.queue6.lro_flushed: 0 dev.ix.1.queue7.interrupt_rate: 500000 dev.ix.1.queue7.irqs: 33431 dev.ix.1.queue7.txd_head: 3476 dev.ix.1.queue7.txd_tail: 3476 dev.ix.1.queue7.tso_tx: 0 dev.ix.1.queue7.no_tx_dma_setup: 0 dev.ix.1.queue7.no_desc_avail: 0 dev.ix.1.queue7.tx_packets: 12179146 dev.ix.1.queue7.rxd_head: 16 dev.ix.1.queue7.rxd_tail: 15 dev.ix.1.queue7.rx_packets: 32784 dev.ix.1.queue7.rx_bytes: 3520272 dev.ix.1.queue7.rx_copies: 29336 dev.ix.1.queue7.lro_queued: 2 dev.ix.1.queue7.lro_flushed: 2 dev.ix.1.mac_stats.crc_errs: 1026 dev.ix.1.mac_stats.ill_errs: 21 dev.ix.1.mac_stats.byte_errs: 24 dev.ix.1.mac_stats.short_discards: 0 dev.ix.1.mac_stats.local_faults: 2 dev.ix.1.mac_stats.remote_faults: 0 dev.ix.1.mac_stats.rec_len_errs: 0 dev.ix.1.mac_stats.xon_txd: 216 dev.ix.1.mac_stats.xon_recvd: 0 dev.ix.1.mac_stats.xoff_txd: 18070 dev.ix.1.mac_stats.xoff_recvd: 0 dev.ix.1.mac_stats.total_octets_rcvd: 772096703598 dev.ix.1.mac_stats.good_octets_rcvd: 772095237531 dev.ix.1.mac_stats.total_pkts_rcvd: 918163677 dev.ix.1.mac_stats.good_pkts_rcvd: 918162625 dev.ix.1.mac_stats.mcast_pkts_rcvd: 246769 dev.ix.1.mac_stats.bcast_pkts_rcvd: 8400731 dev.ix.1.mac_stats.rx_frames_64: 758753 dev.ix.1.mac_stats.rx_frames_65_127: 370090914 dev.ix.1.mac_stats.rx_frames_128_255: 34135531 dev.ix.1.mac_stats.rx_frames_256_511: 11750592 dev.ix.1.mac_stats.rx_frames_512_1023: 12259118 dev.ix.1.mac_stats.rx_frames_1024_1522: 489167718 dev.ix.1.mac_stats.recv_undersized: 0 dev.ix.1.mac_stats.recv_fragmented: 0 dev.ix.1.mac_stats.recv_oversized: 0 dev.ix.1.mac_stats.recv_jabberd: 3 dev.ix.1.mac_stats.management_pkts_rcvd: 0 dev.ix.1.mac_stats.management_pkts_drpd: 0 dev.ix.1.mac_stats.checksum_errs: 612 dev.ix.1.mac_stats.good_octets_txd: 774098549552 dev.ix.1.mac_stats.total_pkts_txd: 947988845 dev.ix.1.mac_stats.good_pkts_txd: 947970559 dev.ix.1.mac_stats.bcast_pkts_txd: 38558221 dev.ix.1.mac_stats.mcast_pkts_txd: 5586 dev.ix.1.mac_stats.management_pkts_txd: 0 dev.ix.1.mac_stats.tx_frames_64: 758581 dev.ix.1.mac_stats.tx_frames_65_127: 399957554 dev.ix.1.mac_stats.tx_frames_128_255: 34103274 dev.ix.1.mac_stats.tx_frames_256_511: 11733524 dev.ix.1.mac_stats.tx_frames_512_1023: 12254925 dev.ix.1.mac_stats.tx_frames_1024_1522: 489162701 Edited February 11, 2015 by Tygra Вставить ник Quote
roma33rus Posted February 11, 2015 Posted February 11, 2015 Доброго дня. Дано: FreeBSD 10.1-RELEASE на 2х CPU: Intel® Xeon® CPU E5506 @ 2.13GHz (2133.45-MHz K8-class CPU) на сервере asus rs520ой серии. Сетевушка sfp+ на 82599 : ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15> port 0xc880-0xc89f mem 0xfbca0000-0xfbcbffff,0xfbc9c000-0xfbc9ffff irq 32 at device 0.0 on pci6 ix0: Using MSIX interrupts with 9 vectors ix0: Ethernet address: 00:e0:ed:2f:a4:ce ix0: PCI Express Bus: Speed 5.0GT/s Width x8 ix1: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15> port 0xcc00-0xcc1f mem 0xfbce0000-0xfbcfffff,0xfbcdc000-0xfbcdffff irq 42 at device 0.1 on pci6 ix1: Using MSIX interrupts with 9 vectors ix1: Ethernet address: 00:e0:ed:2f:a4:cf ix1: PCI Express Bus: Speed 5.0GT/s Width x8 На данный момент используется только один порт ix1. Который sfp 10gb модулем cisco подключен на циску 4948. Через него проброшено порядка 50ти вланов. Что делает : Поднят Bridge, в него подключены все приходящие с ix1 вланы. Все интерфейсы без ипов. Работает IPFW, фильтрует l2 0х8864 и 0х8863. 0x8864 сразу проходом первой строчкой, 0х8863 фильтрация по маку, все остальное блок. Проблема: "Затыкается" на 300кpps. Около 1-1.5гб трафику. Растут задержки, скорость у людей падает. На текущий момент: input ix1 output packets errs idrops bytes packets errs bytes colls 215K 0 0 184M 214K 0 183M 0 213K 0 0 171M 211K 0 171M 0 212K 0 0 175M 210K 0 175M 0 220K 0 0 172M 218K 0 172M 0 221K 0 0 181M 219K 0 181M 0 215K 0 0 180M 213K 0 179M 0 231K 0 0 187M 230K 0 187M 0 last pid: 42278; load averages: 0.82, 0.79, 0.73 up 0+01:05:27 12:11:27 195 processes: 10 running, 124 sleeping, 61 waiting CPU 0: 0.0% user, 0.0% nice, 0.0% system, 71.0% interrupt, 29.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, 0.0% system, 0.0% interrupt, 100% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 4: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 5: 0.0% user, 0.0% nice, 3.3% system, 0.0% interrupt, 96.7% idle CPU 6: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 7: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle Mem: 30M Active, 44M Inact, 349M Wired, 66M Buf, 7501M Free Swap: 3656M Total, 3656M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 155 ki31 0K 128K CPU2 2 65:18 100.00% idle{idle: cpu2} 11 root 155 ki31 0K 128K CPU1 1 65:16 100.00% idle{idle: cpu1} 11 root 155 ki31 0K 128K CPU5 5 64:45 100.00% idle{idle: cpu5} 11 root 155 ki31 0K 128K RUN 4 64:41 100.00% idle{idle: cpu4} 11 root 155 ki31 0K 128K CPU7 7 64:39 100.00% idle{idle: cpu7} 11 root 155 ki31 0K 128K CPU3 3 65:18 99.76% idle{idle: cpu3} 11 root 155 ki31 0K 128K CPU6 6 64:47 99.37% idle{idle: cpu6} 12 root -92 - 0K 992K CPU0 0 41:12 76.95% intr{irq269: ix1:que 11 root 155 ki31 0K 128K RUN 0 24:08 24.76% idle{idle: cpu0} 0 root -92 0 0K 640K - 6 0:33 0.39% kernel{ix1 que} 14 root -16 - 0K 16K - 5 0:30 0.20% rand_harvestq 0 root -16 0 0K 640K swapin 3 3:02 0.00% kernel{swapper} 12 root -60 - 0K 992K WAIT 0 0:10 0.00% intr{swi4: clock} 12 root -92 - 0K 992K WAIT 1 0:02 0.00% intr{irq278: re0} 41633 root 29 0 47764K 11160K select 1 0:01 0.00% mc 12 root -92 - 0K 992K WAIT 1 0:01 0.00% intr{irq270: ix1:que 10097 root 20 0 49836K 12340K select 5 0:00 0.00% perl 12 root -92 - 0K 992K WAIT 7 0:00 0.00% intr{irq276: ix1:que 10252 www 20 0 241M 19680K lockf 4 0:00 0.00% httpd{httpd} 12 root -92 - 0K 992K WAIT 5 0:00 0.00% intr{irq274: ix1:que 12 root -92 - 0K 992K WAIT 2 0:00 0.00% intr{irq271: ix1:que 10191 root 20 0 240M 18812K select 4 0:00 0.00% httpd 10254 www 21 0 241M 19648K lockf 3 0:00 0.00% httpd{httpd} 10971 www 21 0 241M 19648K lockf 4 0:00 0.00% httpd{httpd} 10253 www 20 0 241M 19648K kqread 4 0:00 0.00% httpd{httpd} 10360 root 20 0 86472K 7244K select 7 0:00 0.00% sshd 10256 www 20 0 241M 19648K lockf 7 0:00 0.00% httpd{httpd} 10255 www 20 0 241M 19648K lockf 5 0:00 0.00% httpd{httpd} 31337 root 20 0 86472K 7264K select 7 0:00 0.00% sshd 12 root -92 - 0K 992K WAIT 4 0:00 0.00% intr{irq273: ix1:que 12 root -92 - 0K 992K WAIT 6 0:00 0.00% intr{irq275: ix1:que 12 root -92 - 0K 992K WAIT 3 0:00 0.00% intr{irq272: ix1:que На данный момент не особо понял систему привязки прерываний. Что "ковырять" ? Посоветуйте что полезного почитать в свете выше озвученной проблемы. P\S sysctl hw.ix hw.ix.enable_aim: 1 hw.ix.max_interrupt_rate: 31250 hw.ix.rx_process_limit: 512 hw.ix.tx_process_limit: 512 hw.ix.enable_msix: 1 hw.ix.num_queues: 8 hw.ix.txd: 4096 hw.ix.rxd: 4096 sysctl dev.ix.1 dev.ix.1.%desc: Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 2.5.15 dev.ix.1.%driver: ix dev.ix.1.%location: slot=0 function=1 dev.ix.1.%pnpinfo: vendor=0x8086 device=0x10fb subvendor=0x8086 subdevice=0x000c class=0x020000 dev.ix.1.%parent: pci6 dev.ix.1.fc: 3 dev.ix.1.enable_aim: 1 dev.ix.1.advertise_speed: 0 dev.ix.1.dropped: 0 dev.ix.1.mbuf_defrag_failed: 0 dev.ix.1.watchdog_events: 0 dev.ix.1.link_irq: 1 dev.ix.1.queue0.interrupt_rate: 100000 dev.ix.1.queue0.irqs: 36905368 dev.ix.1.queue0.txd_head: 166 dev.ix.1.queue0.txd_tail: 172 dev.ix.1.queue0.tso_tx: 0 dev.ix.1.queue0.no_tx_dma_setup: 0 dev.ix.1.queue0.no_desc_avail: 0 dev.ix.1.queue0.tx_packets: 928839767 dev.ix.1.queue0.rxd_head: 1726 dev.ix.1.queue0.rxd_tail: 1713 dev.ix.1.queue0.rx_packets: 917927605 dev.ix.1.queue0.rx_bytes: 764768414168 dev.ix.1.queue0.rx_copies: 394147216 dev.ix.1.queue0.lro_queued: 3 dev.ix.1.queue0.lro_flushed: 3 dev.ix.1.queue1.interrupt_rate: 500000 dev.ix.1.queue1.irqs: 36840 dev.ix.1.queue1.txd_head: 284 dev.ix.1.queue1.txd_tail: 284 dev.ix.1.queue1.tso_tx: 0 dev.ix.1.queue1.no_tx_dma_setup: 0 dev.ix.1.queue1.no_desc_avail: 0 dev.ix.1.queue1.tx_packets: 49294 dev.ix.1.queue1.rxd_head: 3910 dev.ix.1.queue1.rxd_tail: 3909 dev.ix.1.queue1.rx_packets: 48966 dev.ix.1.queue1.rx_bytes: 5371044 dev.ix.1.queue1.rx_copies: 40345 dev.ix.1.queue1.lro_queued: 0 dev.ix.1.queue1.lro_flushed: 0 dev.ix.1.queue2.interrupt_rate: 500000 dev.ix.1.queue2.irqs: 46669 dev.ix.1.queue2.txd_head: 1754 dev.ix.1.queue2.txd_tail: 1754 dev.ix.1.queue2.tso_tx: 0 dev.ix.1.queue2.no_tx_dma_setup: 0 dev.ix.1.queue2.no_desc_avail: 0 dev.ix.1.queue2.tx_packets: 50029 dev.ix.1.queue2.rxd_head: 3001 dev.ix.1.queue2.rxd_tail: 3000 dev.ix.1.queue2.rx_packets: 76729 dev.ix.1.queue2.rx_bytes: 10673338 dev.ix.1.queue2.rx_copies: 62130 dev.ix.1.queue2.lro_queued: 0 dev.ix.1.queue2.lro_flushed: 0 dev.ix.1.queue3.interrupt_rate: 500000 dev.ix.1.queue3.irqs: 24113 dev.ix.1.queue3.txd_head: 312 dev.ix.1.queue3.txd_tail: 312 dev.ix.1.queue3.tso_tx: 0 dev.ix.1.queue3.no_tx_dma_setup: 0 dev.ix.1.queue3.no_desc_avail: 0 dev.ix.1.queue3.tx_packets: 116892 dev.ix.1.queue3.rxd_head: 2539 dev.ix.1.queue3.rxd_tail: 2538 dev.ix.1.queue3.rx_packets: 35307 dev.ix.1.queue3.rx_bytes: 3848444 dev.ix.1.queue3.rx_copies: 33040 dev.ix.1.queue3.lro_queued: 0 dev.ix.1.queue3.lro_flushed: 0 dev.ix.1.queue4.interrupt_rate: 500000 dev.ix.1.queue4.irqs: 23586 dev.ix.1.queue4.txd_head: 1270 dev.ix.1.queue4.txd_tail: 1270 dev.ix.1.queue4.tso_tx: 0 dev.ix.1.queue4.no_tx_dma_setup: 0 dev.ix.1.queue4.no_desc_avail: 0 dev.ix.1.queue4.tx_packets: 6392443 dev.ix.1.queue4.rxd_head: 2568 dev.ix.1.queue4.rxd_tail: 2567 dev.ix.1.queue4.rx_packets: 23048 dev.ix.1.queue4.rx_bytes: 2445445 dev.ix.1.queue4.rx_copies: 20022 dev.ix.1.queue4.lro_queued: 0 dev.ix.1.queue4.lro_flushed: 0 dev.ix.1.queue5.interrupt_rate: 500000 dev.ix.1.queue5.irqs: 34253 dev.ix.1.queue5.txd_head: 3926 dev.ix.1.queue5.txd_tail: 3926 dev.ix.1.queue5.tso_tx: 0 dev.ix.1.queue5.no_tx_dma_setup: 0 dev.ix.1.queue5.no_desc_avail: 0 dev.ix.1.queue5.tx_packets: 403371 dev.ix.1.queue5.rxd_head: 2365 dev.ix.1.queue5.rxd_tail: 2364 dev.ix.1.queue5.rx_packets: 35133 dev.ix.1.queue5.rx_bytes: 3658611 dev.ix.1.queue5.rx_copies: 32334 dev.ix.1.queue5.lro_queued: 0 dev.ix.1.queue5.lro_flushed: 0 dev.ix.1.queue6.interrupt_rate: 500000 dev.ix.1.queue6.irqs: 43714 dev.ix.1.queue6.txd_head: 1280 dev.ix.1.queue6.txd_tail: 1280 dev.ix.1.queue6.tso_tx: 0 dev.ix.1.queue6.no_tx_dma_setup: 0 dev.ix.1.queue6.no_desc_avail: 0 dev.ix.1.queue6.tx_packets: 640 dev.ix.1.queue6.rxd_head: 3177 dev.ix.1.queue6.rxd_tail: 3176 dev.ix.1.queue6.rx_packets: 44137 dev.ix.1.queue6.rx_bytes: 4262562 dev.ix.1.queue6.rx_copies: 41648 dev.ix.1.queue6.lro_queued: 0 dev.ix.1.queue6.lro_flushed: 0 dev.ix.1.queue7.interrupt_rate: 500000 dev.ix.1.queue7.irqs: 33431 dev.ix.1.queue7.txd_head: 3476 dev.ix.1.queue7.txd_tail: 3476 dev.ix.1.queue7.tso_tx: 0 dev.ix.1.queue7.no_tx_dma_setup: 0 dev.ix.1.queue7.no_desc_avail: 0 dev.ix.1.queue7.tx_packets: 12179146 dev.ix.1.queue7.rxd_head: 16 dev.ix.1.queue7.rxd_tail: 15 dev.ix.1.queue7.rx_packets: 32784 dev.ix.1.queue7.rx_bytes: 3520272 dev.ix.1.queue7.rx_copies: 29336 dev.ix.1.queue7.lro_queued: 2 dev.ix.1.queue7.lro_flushed: 2 dev.ix.1.mac_stats.crc_errs: 1026 dev.ix.1.mac_stats.ill_errs: 21 dev.ix.1.mac_stats.byte_errs: 24 dev.ix.1.mac_stats.short_discards: 0 dev.ix.1.mac_stats.local_faults: 2 dev.ix.1.mac_stats.remote_faults: 0 dev.ix.1.mac_stats.rec_len_errs: 0 dev.ix.1.mac_stats.xon_txd: 216 dev.ix.1.mac_stats.xon_recvd: 0 dev.ix.1.mac_stats.xoff_txd: 18070 dev.ix.1.mac_stats.xoff_recvd: 0 dev.ix.1.mac_stats.total_octets_rcvd: 772096703598 dev.ix.1.mac_stats.good_octets_rcvd: 772095237531 dev.ix.1.mac_stats.total_pkts_rcvd: 918163677 dev.ix.1.mac_stats.good_pkts_rcvd: 918162625 dev.ix.1.mac_stats.mcast_pkts_rcvd: 246769 dev.ix.1.mac_stats.bcast_pkts_rcvd: 8400731 dev.ix.1.mac_stats.rx_frames_64: 758753 dev.ix.1.mac_stats.rx_frames_65_127: 370090914 dev.ix.1.mac_stats.rx_frames_128_255: 34135531 dev.ix.1.mac_stats.rx_frames_256_511: 11750592 dev.ix.1.mac_stats.rx_frames_512_1023: 12259118 dev.ix.1.mac_stats.rx_frames_1024_1522: 489167718 dev.ix.1.mac_stats.recv_undersized: 0 dev.ix.1.mac_stats.recv_fragmented: 0 dev.ix.1.mac_stats.recv_oversized: 0 dev.ix.1.mac_stats.recv_jabberd: 3 dev.ix.1.mac_stats.management_pkts_rcvd: 0 dev.ix.1.mac_stats.management_pkts_drpd: 0 dev.ix.1.mac_stats.checksum_errs: 612 dev.ix.1.mac_stats.good_octets_txd: 774098549552 dev.ix.1.mac_stats.total_pkts_txd: 947988845 dev.ix.1.mac_stats.good_pkts_txd: 947970559 dev.ix.1.mac_stats.bcast_pkts_txd: 38558221 dev.ix.1.mac_stats.mcast_pkts_txd: 5586 dev.ix.1.mac_stats.management_pkts_txd: 0 dev.ix.1.mac_stats.tx_frames_64: 758581 dev.ix.1.mac_stats.tx_frames_65_127: 399957554 dev.ix.1.mac_stats.tx_frames_128_255: 34103274 dev.ix.1.mac_stats.tx_frames_256_511: 11733524 dev.ix.1.mac_stats.tx_frames_512_1023: 12254925 dev.ix.1.mac_stats.tx_frames_1024_1522: 489162701 Не подозрительно, что у Вас одно ядро по прерываниям загружено, а остальные свободны? Показывайте loader.conf и sysctl.conf Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 (edited) loader.conf accf_http_load="YES" HZ=4000 ixgbe_load="YES" hw.ix.rxd=4096 hw.ix.txd=4096 hw.ixl.max_queues=6 hw.ix.rx_process_limit=512 hw.ix.tx_process_limit=512 sysctl.conf net.link.bridge.ipfw=1 net.link.bridge.ipfw_arp=1 net.link.ether.ipfw=1 Edited February 11, 2015 by Tygra Вставить ник Quote
roma33rus Posted February 11, 2015 Posted February 11, 2015 Попробуйте добавить loader.conf и потом ребут: # Networking net.isr.maxthreads=64 net.isr.bindthreads=1 net.link.ifqmaxlen=10240 net.isr.defaultqlimit=8192 и потом поиграться с net.isr.dispatch (это добавляется в sysctl.conf). У меня сейчас net.isr.dispatch: hybrid Если я не ошибаюсь, то нагрузка по ядрам должна выровниться. Может кто поправит конечно. Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 sysctl net.isr. net.isr.dispatch: hybrid net.isr.maxthreads: 8 net.isr.bindthreads: 1 net.isr.maxqlimit: 10240 net.isr.defaultqlimit: 8192 net.isr.maxprot: 16 net.isr.numthreads: 8 input ix1 output packets errs idrops bytes packets errs bytes colls 143K 0 0 118M 142K 0 118M 0 148K 0 0 116M 148K 0 116M 0 163K 0 0 125M 162K 0 125M 0 148K 0 0 129M 145K 0 129M 0 143K 1 0 114M 140K 0 114M 0 last pid: 11000; load averages: 0.50, 0.60, 0.36 up 0+00:06:14 15:42:35 196 processes: 9 running, 118 sleeping, 69 waiting CPU 0: 0.0% user, 0.0% nice, 0.0% system, 52.9% interrupt, 47.1% 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, 0.0% system, 0.0% interrupt, 100% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 4: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 5: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 6: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 7: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle Mem: 30M Active, 29M Inact, 337M Wired, 26M Buf, 7528M Free Swap: 3656M Total, 3656M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 155 ki31 0K 128K CPU3 3 6:10 100.00% idle{idle: cpu3} 11 root 155 ki31 0K 128K CPU1 1 6:10 100.00% idle{idle: cpu1} 11 root 155 ki31 0K 128K CPU2 2 6:09 100.00% idle{idle: cpu2} 11 root 155 ki31 0K 128K CPU7 7 6:06 100.00% idle{idle: cpu7} 11 root 155 ki31 0K 128K CPU6 6 6:05 100.00% idle{idle: cpu6} 11 root 155 ki31 0K 128K CPU5 5 6:03 100.00% idle{idle: cpu5} 11 root 155 ki31 0K 128K RUN 4 5:54 100.00% idle{idle: cpu4} 12 root -92 - 0K 1104K WAIT 0 2:30 60.16% intr{irq269: ix1:que } 11 root 155 ki31 0K 128K RUN 0 3:41 44.68% idle{idle: cpu0} 14 root -16 - 0K 16K - 7 0:03 0.10% rand_harvestq 0 root -16 0 0K 640K swapin 2 3:01 0.00% kernel{swapper} 0 root -92 0 0K 640K - 6 0:18 0.00% kernel{ix1 que} 12 root -60 - 0K 1104K WAIT 4 0:01 0.00% intr{swi4: clock} 10361 root 20 0 21916K 3380K CPU4 4 0:00 0.00% top 10093 root 20 0 49836K 12344K select 5 0:00 0.00% perl 12 root -92 - 0K 1104K WAIT 3 0:00 0.00% intr{irq278: re0} 10187 root 20 0 240M 18808K select 7 0:00 0.00% httpd 10241 www 21 0 241M 19672K lockf 1 0:00 0.00% httpd{httpd} 12 root -92 - 0K 1104K WAIT 4 0:00 0.00% intr{irq273: ix1:que } 2 root -16 - 0K 48K - 0 0:00 0.00% cam{scanner} 0 root -92 0 0K 640K - 4 0:00 0.00% kernel{ix1 linkq} 10362 root 20 0 86472K 7220K select 7 0:00 0.00% sshd 10356 root 20 0 86472K 7168K select 1 0:00 0.00% sshd 12 root -92 - 0K 1104K WAIT 5 0:00 0.00% intr{irq274: ix1:que } 12 root -72 - 0K 1104K WAIT 7 0:00 0.00% intr{swi1: netisr 7} 12 root -92 - 0K 1104K WAIT 3 0:00 0.00% intr{irq272: ix1:que } 12 root -92 - 0K 1104K WAIT 6 0:00 0.00% intr{irq275: ix1:que } 10366 root 20 0 23572K 4180K pause 5 0:00 0.00% csh Вставить ник Quote
hsvt Posted February 11, 2015 Posted February 11, 2015 (edited) Не всё так просто видимо. Сколько в ipfw правил и чем шейпите ? ifconfig -m ix1 - что там ? Почитать здесь - https://wiki.freebsd.org/NetworkPerformanceTuning если еще не читали. netstat -Q вывод не помешает и dispatch всё таки рекомендуют direct, но могу ошибаться. rx\tx process_limit можно увеличить до 4096 http://forum.nag.ru/forum/index.php?showtopic=82298&st=0 - не ваш случай, но всё же. Ну fc, tso4\6, lro, rxcsum, txcsum отключать еще рекомендуют. Ensure VLAN_HWFILTER is turned on if you're running vlans. card extracts vlan id and sends resulting mbuf directly to vlan interface Edited February 11, 2015 by hsvt Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 Никаких шейперов, никаких сервисов, это фильтр l2 по пропуску чисто РРРоЕ трафика без его терминации. ifconfig -m ix1 ix1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8407bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO> capabilities=8507bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO> ether 00:e0:ed:2f:a4:cf nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect (10Gbase-LR <full-duplex>) status: active supported media: media autoselect media 10Gbase-LR Вставить ник Quote
vlad11 Posted February 11, 2015 Posted February 11, 2015 loader.conf accf_http_load="YES" Уберите это, раз не понимаете, для чего оно. Потом в конфигах сетевых выключайте RXCSUM,TXCSUM и TSO4 И показывайте netstat -m Ищите тюнининг от dadv и вдумчиво почитайте. Еще, на 10Г интерфейсах уже надо использовать Jumboframe. Сделайте анализ топологии вашей сети. Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 "Подползли" к 300кpps, начались дропы. input ix1 output packets errs idrops bytes packets errs bytes colls 308K 1 0 231M 307K 0 231M 0 298K 0 0 226M 297K 0 227M 0 314K 1 0 231M 310K 0 230M 0 296K 1 0 227M 296K 0 227M 0 305K 1 446 226M 305K 0 226M 0 299K 0 0 229M 297K 0 229M 0 292K 0 2.5K 218M 294K 0 217M 0 301K 0 0 215M 299K 0 215M 0 299K 0 0 220M 296K 0 220M 0 298K 0 0 225M 296K 0 225M 0 301K 1 0 222M 301K 0 222M 0 302K 1 0 222M 302K 0 222M 0 302K 0 0 225M 299K 0 224M 0 300K 0 0 227M 299K 0 227M 0 311K 0 0 230M 307K 0 228M 0 295K 1 951 223M 296K 0 223M 0 310K 0 0 227M 310K 0 227M 0 299K 1 104 228M 296K 0 228M 0 307K 0 0 223M 304K 0 223M 0 last pid: 21854; load averages: 1.07, 1.03, 0.95 up 0+01:29:31 17:05:52 200 processes: 10 running, 121 sleeping, 69 waiting CPU 0: 0.0% user, 0.0% nice, 0.6% system, 48.8% interrupt, 50.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, 0.0% system, 0.0% interrupt, 100% idle CPU 3: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 4: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 5: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle CPU 6: 0.0% user, 0.0% nice, 45.9% system, 1.1% interrupt, 53.0% idle CPU 7: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 100% idle Mem: 24M Active, 40M Inact, 351M Wired, 75M Buf, 7510M Free Swap: 3656M Total, 3656M Free PID USERNAME PRI NICE SIZE RES STATE C TIME WCPU COMMAND 11 root 155 ki31 0K 128K CPU3 3 89:19 100.00% idle{idle: cpu3} 11 root 155 ki31 0K 128K CPU2 2 89:17 100.00% idle{idle: cpu2} 11 root 155 ki31 0K 128K CPU1 1 89:16 100.00% idle{idle: cpu1} 11 root 155 ki31 0K 128K CPU5 5 84:50 98.68% idle{idle: cpu5} 11 root 155 ki31 0K 128K RUN 6 85:25 96.48% idle{idle: cpu6} 11 root 155 ki31 0K 128K RUN 7 85:17 92.09% idle{idle: cpu7} 11 root 155 ki31 0K 128K CPU4 4 84:57 85.50% idle{idle: cpu4} 11 root 155 ki31 0K 128K CPU0 0 30:49 52.98% idle{idle: cpu0} 12 root -92 - 0K 1104K WAIT 0 58:34 52.20% intr{irq269: ix1:que } 0 root -92 0 0K 640K CPU6 6 15:59 51.17% kernel{ix1 que} 0 root -16 0 0K 640K swapin 4 3:01 0.00% kernel{swapper} 14 root -16 - 0K 16K - 5 0:41 0.00% rand_harvestq 12 root -60 - 0K 1104K WAIT 6 0:14 0.00% intr{swi4: clock} 12 root -92 - 0K 1104K WAIT 1 0:02 0.00% intr{irq278: re0} 12 root -72 - 0K 1104K WAIT 7 0:01 0.00% intr{swi1: netisr 7} 12 root -92 - 0K 1104K WAIT 4 0:01 0.00% intr{irq273: ix1:que } 12 root -92 - 0K 1104K WAIT 3 0:01 0.00% intr{irq272: ix1:que } 10093 root 20 0 49836K 12344K select 3 0:01 0.00% perl 10362 root 20 0 86472K 7228K select 7 0:00 0.00% sshd 12 root -92 - 0K 1104K WAIT 2 0:00 0.00% intr{irq271: ix1:que } 12 root -92 - 0K 1104K WAIT 6 0:00 0.00% intr{irq275: ix1:que } 12 root -92 - 0K 1104K WAIT 5 0:00 0.00% intr{irq274: ix1:que } 10356 root 20 0 86472K 7176K select 1 0:00 0.00% sshd Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 vlad11 netstat -m 72344/11911/84255 mbufs in use (current/cache/total) 72135/3525/75660/507176 mbuf clusters in use (current/cache/total/max) 72135/3512 mbuf+clusters out of packet secondary zone in use (current/cache) 0/8/8/253587 4k (page size) jumbo clusters in use (current/cache/total/max) 0/0/0/75137 9k jumbo clusters in use (current/cache/total/max) 0/0/0/42264 16k jumbo clusters in use (current/cache/total/max) 162356K/10059K/172415K bytes allocated to network (current/cache/total) 0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters) 0/0/0 requests for mbufs delayed (mbufs/clusters/mbuf+clusters) 0/0/0 requests for jumbo clusters delayed (4k/9k/16k) 0/0/0 requests for jumbo clusters denied (4k/9k/16k) 0 requests for sfbufs denied 0 requests for sfbufs delayed 0 requests for I/O initiated by sendfile Вставить ник Quote
roma33rus Posted February 11, 2015 Posted February 11, 2015 А очереди у Вас как прибиты? procstat -at | grep 'ix[0|1]' Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 roma33rus procstat -at | grep 'ix[0|1]' 0 100046 kernel ix0 que 0 8 sleep - 0 100048 kernel ix0 que 0 8 sleep - 0 100050 kernel ix0 que 0 8 sleep - 0 100052 kernel ix0 que 0 8 sleep - 0 100054 kernel ix0 que 0 8 sleep - 0 100056 kernel ix0 que 0 8 sleep - 0 100058 kernel ix0 que 0 8 sleep - 0 100060 kernel ix0 que 0 8 sleep - 0 100062 kernel ix0 linkq 0 8 sleep - 0 100064 kernel ix1 que 7 8 run - 0 100066 kernel ix1 que 7 8 sleep - 0 100068 kernel ix1 que 3 8 sleep - 0 100070 kernel ix1 que 0 8 sleep - 0 100072 kernel ix1 que 1 8 sleep - 0 100074 kernel ix1 que 3 8 sleep - 0 100076 kernel ix1 que 1 8 sleep - 0 100078 kernel ix1 que 3 8 sleep - 0 100080 kernel ix1 linkq 7 8 sleep - 12 100045 intr irq260: ix0:que 0 8 wait - 12 100047 intr irq261: ix0:que 0 8 wait - 12 100049 intr irq262: ix0:que 0 8 wait - 12 100051 intr irq263: ix0:que 0 8 wait - 12 100053 intr irq264: ix0:que 0 8 wait - 12 100055 intr irq265: ix0:que 0 8 wait - 12 100057 intr irq266: ix0:que 0 8 wait - 12 100059 intr irq267: ix0:que 0 8 wait - 12 100061 intr irq268: ix0:link 0 8 wait - 12 100063 intr irq269: ix1:que 0 8 run - 12 100065 intr irq270: ix1:que 1 8 wait - 12 100067 intr irq271: ix1:que 2 8 wait - 12 100069 intr irq272: ix1:que 3 8 wait - 12 100071 intr irq273: ix1:que 4 8 wait - 12 100073 intr irq274: ix1:que 5 8 wait - 12 100075 intr irq275: ix1:que 6 8 wait - 12 100077 intr irq276: ix1:que 7 8 wait - 12 100079 intr irq277: ix1:link 0 8 wait - Вставить ник Quote
roma33rus Posted February 11, 2015 Posted February 11, 2015 roma33rus procstat -at | grep 'ix[0|1]' 0 100046 kernel ix0 que 0 8 sleep - 0 100048 kernel ix0 que 0 8 sleep - 0 100050 kernel ix0 que 0 8 sleep - 0 100052 kernel ix0 que 0 8 sleep - 0 100054 kernel ix0 que 0 8 sleep - 0 100056 kernel ix0 que 0 8 sleep - 0 100058 kernel ix0 que 0 8 sleep - 0 100060 kernel ix0 que 0 8 sleep - 0 100062 kernel ix0 linkq 0 8 sleep - 0 100064 kernel ix1 que 7 8 run - 0 100066 kernel ix1 que 7 8 sleep - 0 100068 kernel ix1 que 3 8 sleep - 0 100070 kernel ix1 que 0 8 sleep - 0 100072 kernel ix1 que 1 8 sleep - 0 100074 kernel ix1 que 3 8 sleep - 0 100076 kernel ix1 que 1 8 sleep - 0 100078 kernel ix1 que 3 8 sleep - 0 100080 kernel ix1 linkq 7 8 sleep - 12 100045 intr irq260: ix0:que 0 8 wait - 12 100047 intr irq261: ix0:que 0 8 wait - 12 100049 intr irq262: ix0:que 0 8 wait - 12 100051 intr irq263: ix0:que 0 8 wait - 12 100053 intr irq264: ix0:que 0 8 wait - 12 100055 intr irq265: ix0:que 0 8 wait - 12 100057 intr irq266: ix0:que 0 8 wait - 12 100059 intr irq267: ix0:que 0 8 wait - 12 100061 intr irq268: ix0:link 0 8 wait - 12 100063 intr irq269: ix1:que 0 8 run - 12 100065 intr irq270: ix1:que 1 8 wait - 12 100067 intr irq271: ix1:que 2 8 wait - 12 100069 intr irq272: ix1:que 3 8 wait - 12 100071 intr irq273: ix1:que 4 8 wait - 12 100073 intr irq274: ix1:que 5 8 wait - 12 100075 intr irq275: ix1:que 6 8 wait - 12 100077 intr irq276: ix1:que 7 8 wait - 12 100079 intr irq277: ix1:link 0 8 wait - Судя по этим данным у вас все очереди на ix0 висят на нулевом ядре. Попробуйте вручную прибить: cpuset -l 0 -t 100045 cpuset -l 1 -t 100047 cpuset -l 2 -t 100049 ... и так далее для остальных очередей ix0. Тут прибивается одна очередь, на одно ядро. Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 (edited) roma33rus ix0 не используется ifconfig -m ix0 ix0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8407bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO> capabilities=8507bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO> ether 00:e0:ed:2f:a4:ce nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect status: no carrier supported media: media autoselect media autoselect Edited February 11, 2015 by Tygra Вставить ник Quote
roma33rus Posted February 11, 2015 Posted February 11, 2015 roma33rus ix0 не используется ifconfig -m ix0 ix0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500 options=8407bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWTSO> capabilities=8507bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,VLAN_HWFILTER,VLAN_HWTSO> ether 00:e0:ed:2f:a4:ce nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL> media: Ethernet autoselect status: no carrier supported media: media autoselect media autoselect Пардоньте, не внимательно прочитал. Вставить ник Quote
Tygra Posted February 11, 2015 Author Posted February 11, 2015 Если я все правильно понял, то по идее на сетевушке 8 очередей прерываний, но используется почему то только одна. Вставить ник Quote
roma33rus Posted February 11, 2015 Posted February 11, 2015 Если я все правильно понял, то по идее на сетевушке 8 очередей прерываний, но используется почему то только одна. Это легко посмотреть vmstat -i| grep 'ix[0,1]:que ' Вставить ник Quote
DVM-Avgoor Posted February 11, 2015 Posted February 11, 2015 Дык PPPOE и вланы это же двойное плохо :) http://dadv.livejournal.com/139170.html?thread=317858 Смотрим datasheet на карту: http://download.intel.com/design/network/datashts/82576_Datasheet.pdf Для распределения пакетов по очередям карта использует спецификацию Microsoft Receive-Side Scaling (RSS) и даташит ссылается на неё на странице 274, упоминая реализованную хеш-функцию, которая реализована в чипе аппаратно и результат которой определяет, какой вектор прерывания будет использован для пакета. Смотрим спецификацию RSS от Microsoft: http://download.microsoft.com/download/5/d/6/5d6eaf2b-7ddf-476b-93dc-7cf0072878e6/ndis_rss.doc На странице 7 спецификации сказано, от чего может считаться хеш: от IP-адресов (IPv4 или IPv6) и, опционально, портов TCP (но не UDP). Номера тегов 802.1q не используются. На странице 9 сказано, что если пакет не имеет указанных параметров, от которых брать хеш, то он не хешируется. На практике это означает, что все фреймы PPPoE/GRE, приходящие через пучок vlan-ов и карты igb, попадают в одну "очередь" внутри карты и обслуживаются одним вектором прерываний и никакого распределения нагрузки по ядрам не получается. Как следствие, драйвер igb назначает им всем одинаковый (нулевой) "номер потока". Вставить ник Quote
DVM-Avgoor Posted February 11, 2015 Posted February 11, 2015 PS. Не впервые вижу HZ=4000. Где вы берете такой "тюнинг"? Он же вреда больше приносит чем пользы :) Вставить ник Quote
Tygra Posted February 12, 2015 Author Posted February 12, 2015 DVM-Avgoor 4000 раньше брался для более точного шейпинга, но в данном случае "от безисходности". Я так понимаю что даже сняв вланы, все равно пппое будут пихаться в одну очередь ? Печаль.. Есть какие идеи, по поводу что можно придумать в данном случае ? Или "забить" и набить сервер гигабитными сетевушками ? Вставить ник Quote
DVM-Avgoor Posted February 12, 2015 Posted February 12, 2015 DVM-Avgoor 4000 раньше брался для более точного шейпинга, но в данном случае "от безисходности". Точному шейпингу оно не сильно помогало, а вот в 4 раза больше прерываний от таймера это ни разу не хорошо. Есть какие идеи, по поводу что можно придумать в данном случае ? Или "забить" и набить сервер гигабитными сетевушками ? Могу накидать несколько. Например: в линуксе есть RPS, который сам раскидывает пакеты по цпу без использования тегов от сетевухи. А еще можно взять цпу на 4ГГц, с меньшим кол-вом ядер, ибо они все равно не удел. Можно заменить на гигабитки, точно. Можно погрузиться в дебри кодинга и применить (портировать) патч http://static.ipfw.ru/patches/igb_flowid.diff на sys/dev/ixgbe/ixgbe.c, получив попутно новый sysctl и поведение как у линуксового RPS. В общем варианты-то есть. :) Вставить ник Quote
GrandPr1de Posted February 12, 2015 Posted February 12, 2015 а зачем такой костыль в виде блокировок на бридже перед брасом? на доступе это сделать мне кажется проще и правильнее. забиндить маки, нарисовать л2 акли в виде того, что бы разрешить только 0х8863\4. Вставить ник Quote
Tygra Posted February 12, 2015 Author Posted February 12, 2015 (edited) GrandPr1de Нет никакого БРАСа, долго объяснять почему. Есть то что есть. Понятно что БРАС где то есть, но это из другой оперы и к текущему положению никак не относится. На оборудовании доступа всякое разное, ко всему прикрутить не лагающий биндинг будет не возможно. Edited February 12, 2015 by Tygra Вставить ник Quote
GrandPr1de Posted February 12, 2015 Posted February 12, 2015 Нет никакого БРАС ну пппое ж куда-то идет. Вставить ник Quote
Ivan_83 Posted February 25, 2015 Posted February 25, 2015 Походу можно покопатся чуточку в исходниках нетграфа и включить очередь на одном из хуков одной ноды, тогда нетграф станет сам раскидывать по процам, аналогично isr. Но мне казалось что net.isr.dispatch=deferred должен давать такой же эффект. Если что - я могу поискать куда добать флаг чтобы нетграф задействовал свои очереди :) Вставить ник 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.