Jump to content
Калькуляторы

freebsd L2 10gb на 82599 freebsd пропуск L2 на сетевой 10gb на 82599

Доброго дня. Дано:

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 by Tygra

Share this post


Link to post
Share on other sites

Доброго дня. Дано:

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

Share this post


Link to post
Share on other sites

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 by Tygra

Share this post


Link to post
Share on other sites

Попробуйте добавить 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

Если я не ошибаюсь, то нагрузка по ядрам должна выровниться. Может кто поправит конечно.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Не всё так просто видимо. Сколько в 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 by hsvt

Share this post


Link to post
Share on other sites

Никаких шейперов, никаких сервисов, это фильтр 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

Share this post


Link to post
Share on other sites

loader.conf

accf_http_load="YES"

 

Уберите это, раз не понимаете, для чего оно.

 

Потом в конфигах сетевых выключайте RXCSUM,TXCSUM и TSO4

 

И показывайте netstat -m

 

Ищите тюнининг от dadv и вдумчиво почитайте.

 

Еще, на 10Г интерфейсах уже надо использовать Jumboframe. Сделайте анализ топологии вашей сети.

Share this post


Link to post
Share on other sites

"Подползли" к 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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    -

Share this post


Link to post
Share on other sites

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. Тут прибивается одна очередь, на одно ядро.

Share this post


Link to post
Share on other sites

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 by Tygra

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

Если я все правильно понял, то по идее на сетевушке 8 очередей прерываний, но используется почему то только одна.

Share this post


Link to post
Share on other sites

Если я все правильно понял, то по идее на сетевушке 8 очередей прерываний, но используется почему то только одна.

Это легко посмотреть vmstat -i| grep 'ix[0,1]:que '

Share this post


Link to post
Share on other sites

Дык 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 назначает им всем одинаковый (нулевой) "номер потока".

Share this post


Link to post
Share on other sites

PS. Не впервые вижу HZ=4000. Где вы берете такой "тюнинг"? Он же вреда больше приносит чем пользы :)

Share this post


Link to post
Share on other sites

DVM-Avgoor 4000 раньше брался для более точного шейпинга, но в данном случае "от безисходности". Я так понимаю что даже сняв вланы, все равно пппое будут пихаться в одну очередь ? Печаль.. Есть какие идеи, по поводу что можно придумать в данном случае ? Или "забить" и набить сервер гигабитными сетевушками ?

Share this post


Link to post
Share on other sites

DVM-Avgoor 4000 раньше брался для более точного шейпинга, но в данном случае "от безисходности".

 

Точному шейпингу оно не сильно помогало, а вот в 4 раза больше прерываний от таймера это ни разу не хорошо.

 

Есть какие идеи, по поводу что можно придумать в данном случае ? Или "забить" и набить сервер гигабитными сетевушками ?

 

Могу накидать несколько. Например: в линуксе есть RPS, который сам раскидывает пакеты по цпу без использования тегов от сетевухи.

А еще можно взять цпу на 4ГГц, с меньшим кол-вом ядер, ибо они все равно не удел.

Можно заменить на гигабитки, точно.

Можно погрузиться в дебри кодинга и применить (портировать) патч http://static.ipfw.ru/patches/igb_flowid.diff на sys/dev/ixgbe/ixgbe.c, получив попутно новый sysctl и поведение как у линуксового RPS. В общем варианты-то есть. :)

Share this post


Link to post
Share on other sites

а зачем такой костыль в виде блокировок на бридже перед брасом?

на доступе это сделать мне кажется проще и правильнее.

забиндить маки, нарисовать л2 акли в виде того, что бы разрешить только 0х8863\4.

Share this post


Link to post
Share on other sites

GrandPr1de Нет никакого БРАСа, долго объяснять почему. Есть то что есть. Понятно что БРАС где то есть, но это из другой оперы и к текущему положению никак не относится. На оборудовании доступа всякое разное, ко всему прикрутить не лагающий биндинг будет не возможно.

Edited by Tygra

Share this post


Link to post
Share on other sites

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

Но мне казалось что net.isr.dispatch=deferred должен давать такой же эффект.

Если что - я могу поискать куда добать флаг чтобы нетграф задействовал свои очереди :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now