Jump to content
Cesbo Community
  • Announcements

    • RadioSintetica

      Information   10/21/18

      Registration on the forum temporarily closed! For support requests, please contacat us: https://cesbo.com/help
      Our community in Telegram: @cesbo_en (English language) , @cesbo_ru (Russian language) , @cesbo_es (Spanish Language)
Sign in to follow this  
AlexZagr

FreeBSD, 10G (82599)

Recommended Posts

Не могу справиться с 10G карточкой на FreeBSD, исходные данные такие:

FreeBSD 11.2-RELEASE

ix0@pci0:2:0:0: class=0x020000 card=0x061115d9 chip=0x10fb8086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82599ES 10-Gigabit SFI/SFP+ Network Connection'
    class      = network
    subclass   = ethernet
    bar   [10] = type Prefetchable Memory, range 64, base 0xde080000, size 524288, enabled
    bar   [18] = type I/O Port, range 32, base 0xe020, size 32, enabled
    bar   [20] = type Prefetchable Memory, range 64, base 0xde504000, size 16384, enabled
ix1@pci0:2:0:1: class=0x020000 card=0x061115d9 chip=0x10fb8086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82599ES 10-Gigabit SFI/SFP+ Network Connection'
    class      = network
    subclass   = ethernet
    bar   [10] = type Prefetchable Memory, range 64, base 0xde000000, size 524288, enabled
    bar   [18] = type I/O Port, range 32, base 0xe000, size 32, enabled
    bar   [20] = type Prefetchable Memory, range 64, base 0xde500000, size 16384, enabled

sysctl.conf

net.inet.ip.fastforwarding=1
net.inet.icmp.icmplim=1000
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=0
kern.ipc.nmbclusters=2097152

kern.ipc.somaxconn=65535

net.inet.udp.maxdgram=57344
net.inet.udp.recvspace=131072

net.raw.recvspace=65535
net.inet.raw.maxdgram=1179648
net.inet.raw.recvspace=1179648

kern.ipc.maxsockbuf=33554432
net.local.stream.sendspace=16776960
net.raw.sendspace=16776960

dev.ix.0.fc=0
dev.ix.1.fc=0

hw.intr_storm_threshold=30000

loader.conf

kern.maxusers="1024"

if_em_load="YES"

hw.igb.max_interrupt_rate=32000
net.inet.tcp.tcbhashsize=32000

kern.ipc.nmbclusters=524288
kern.ipc.maxsockbuf=1048576

hw.ix.max_interrupt_rate=50000
hw.ix.enable_aim=1
hw.ix.rx_process_limit=512
hw.ix.tx_process_limit=512
hw.ix.rxd=4096
hw.ix.txd=4096

net.isr.defaultqlimit=4096

hw.ix.enable_msix=0

в sysctl и loader куча всего было перетюнинговано, возможно что-то упущено, но это текущий вариант

Суть проблемы: есть свой софт на perl, если в общем то с одного порта принимается мультикаст и в другой отдается, на 1Г картах 82576 и 82574L все работает отлично, а вот на 10Г 82599 есть большая проблема, как только пропадает линк на продолжительное время, больше 1-2 сек, мультикаст перестает уходить из порта, приходит на сервер нормально. Я повторил функционал софта на астре

make_channel({
    name = "ch001",
    input = {
        "udp://192.168.101.98@239.100.16.32:1234",
    },
    output = {
        "udp://192.168.250.112@239.112.13.8:1234",
    }
})

и таких 200 штук, с ix0 принимаю, в ix1 отдаю, как только делаю ifconfig ix1 down/up мультикаст не уходит, а в консоли вижу ошибку error on send [55: No buffer space available] по всем каналам. Исправить проблему можно только выключив софт/астру, сделать порту down/up и включить софт/астру. Т.е. если софт работает, мультикаст отправляется на выход и в это время падает линк, то после появления линка мультикаст уже не уходит. Через какое-то время он станным образом появляется, но я что-то не понял почему, смортю tcpdump-ом, толи промиск мод его оживляет, толи сам все-таки пробивается, но даже после этого мультикаст уходит с большими потерями, вообще смотреть невозможно.

При hw.ix.enable_msix=1 до начала проблемы я вижу такое

# vmstat -i | grep ix1
irq273: ix1:q0                    101600       1888
irq274: ix1:q1                    132476       2462
irq275: ix1:q2                    127252       2365
irq276: ix1:q3                    128252       2384
irq277: ix1:q4                    130860       2432
irq278: ix1:q5                    130485       2425
irq279: ix1:q6                    132158       2456
irq280: ix1:q7                    129302       2403
irq281: ix1:link                       2          0

во время проблемы, когда дожидаюсь битого мультикаста на выходе, увеличивается только ix1:q0

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×