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

freebsd 7.1 роутер, em0 тест и тюнинг

Конфигурация роутера:

FreeBSD 7.1-RELEASE #0: Mon Jan 26 20:41:51 MSK 2009
    ivan@gw1.aaa.ru:/usr/src/sys/i386/compile/gw1
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Core(TM)2 Quad CPU    Q9650  @ 3.00GHz (2992.15-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x1067a  Stepping = 10
  Features=0xbfebfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFL
USH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE>
  Features2=0x408e3fd<SSE3,DTES64,MON,DS_CPL,VMX,SMX,EST,TM2,SSSE3,CX16,xTPR,PDCM,SSE4.1,<b26>>
  AMD Features=0x20100000<NX,LM>
  AMD Features2=0x1<LAHF>
  Cores per package: 4
real memory  = 2147221504 (2047 MB)
avail memory = 2093600768 (1996 MB)
в конфиге ядра
options         KVA_PAGES=512
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL
options         DUMMYNET
options         DEVICE_POLLING
options         IPDIVERT #     (NATD)
в /boot/loader.conf
kern.maxusers="128"
vm.kmem_size_scale="2"
vm.kmem_size_max="1073741824"

2 сетевухи на борту и 1 в PCI-e

EM0 - EXPI9400PTBLK - Intel® (PCI-e 82572GI)

EM1 - 82566DM - LAN2

EM2 - PC82573V - LAN1

em0: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0xcc00-0xcc1f mem 0xfe9e0000-0xfe9fffff,0xfe9c0000-0xfe9dffff irq 16 at device 0.0 on pci1
em0: Using MSI interrupt
em0: [FILTER]
em0: Ethernet address: 00:15:17:97:13:4b
em1: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0xbc00-0xbc1f mem 0xfe8e0000-0xfe8fffff,0xfe8df000-0xfe8dffff irq 20 at device 25.0 on pci0
em1: Using MSI interrupt
em1: [FILTER]
em1: Ethernet address: 00:21:85:57:07:b2
em2: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0xdc00-0xdc1f mem 0xfeae0000-0xfeafffff irq 16 at device 0.0 on pci3
em2: Using MSI interrupt
em2: [FILTER]
em2: Ethernet address: 00:21:85:57:07:b3
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=0x107d subvendor=0x8086 subdevice=0x1082 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: 4000
dev.em.1.%desc: Intel(R) PRO/1000 Network Connection 6.9.6
dev.em.1.%driver: em
dev.em.1.%location: slot=25 function=0 handle=\_SB_.PCI0.GBE_
dev.em.1.%pnpinfo: vendor=0x8086 device=0x10bd subvendor=0x1462 subdevice=0x6560 class=0x020000
dev.em.1.%parent: pci0
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: 4000
dev.em.1.wake: 0
dev.em.2.%desc: Intel(R) PRO/1000 Network Connection 6.9.6
dev.em.2.%driver: em
dev.em.2.%location: slot=0 function=0
dev.em.2.%pnpinfo: vendor=0x8086 device=0x108b subvendor=0x1462 subdevice=0x6560 class=0x020000
dev.em.2.%parent: pci3
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: 4000

тест - UDP поток пакетами по 542 байта с 2х серверов на 1 сетевуху , роутинг обратно через этотже адаптер (далее поток дропается на порту фильтром свича)

 

В процессе тестов возникло несколько непоняток:

Максимальный входной поток удалось получить со свича DGS-3100-24TG всего 905Мбит - свич больше неможет? или карта невидит(счетчики на свиче невменяемые)?

            input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
    218283     0  118274670     217780     0  118024294     0
    218558     0  118428003     217699     0  118019416     0
    218794     0  118556962     217727     0  118005866     0
    218956     0  118444819     217781     0  118024294     0

Поток 905Мбит удалось обработать без "input errs" только через EM1 (82566DM)???!, EM0 и EM2 при потоке более 805Мбит появляются "input errs" и при дальнейшем увеличении потока "input errs" догоняются до 12-14Кп/с с карты.

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    204698 13945  110895328     204597     0  110887124     0
    204554 14038  110820770     204429     0  110813750     0
    204626 13369  110866646     204514     0  110855112     0

Из тюнинга пробовал:

/boot/loader.conf
hw.em.rxd=4096
hw.em.txd=4096
hw.em.rxd=2048
hw.em.txd=2048

- пользы никакой, при 4096 нельзя стартовать (up) EM2 - вся сетевая часть дохнет, ошибку не запомнил.

sysctl dev.em.0.rx_int_delay=250
sysctl dev.em.х.tx_int_delay=250
sysctl dev.em.х.rx_abs_int_delay=250
sysctl dev.em.х.tx_abs_int_delay=250
sysctl dev.em.х.rx_processing_limit=4000

Снижает прерывания в 3 раза(с 8000 до 2600).

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

 

есть мысль HZ=2000 или выдернуть PCI-e сетевуху

 

Выводы и тюнинг http://forum.nag.ru/forum/index.php?showto...st&p=379843

Edited by IvanI

Share this post


Link to post
Share on other sites
Поток 905Мбит удалось обработать без "input errs" только через EM1 (82566DM)???!, EM0 и EM2 при потоке более 805Мбит появляются "input errs"

- ты netstat приводишь через тестируемый интерфейс (netstat -I emX -w1) ?

- приведи stats и debug твоих карт ДО* появления input errs: погоняй поток 100kpps и пару раз сними stats и debug.

- приведи stats и debug твоих карт после появления input errs

Edited by Vinc

Share this post


Link to post
Share on other sites

1 - да

2 - на текущий момент, пока ребутить нехочется

em0: Excessive collisions = 0
em0: Sequence errors = 0
em0: Defer count = 0
em0: Missed Packets = 8846841
em0: Receive No Buffers = 10294808
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 = 1205254
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 = 419393210
em0: Good Packets Xmtd = 350540261
em0: TSO Contexts Xmtd = 62
em0: TSO Contexts Failed = 0
em1: Excessive collisions = 0
em1: Sequence errors = 0
em1: Defer count = 0
em1: Missed Packets = 161734
em1: Receive No Buffers = 1775183
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 = 34156
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 = 1149517962
em1: Good Packets Xmtd = 1137614392
em1: TSO Contexts Xmtd = 0
em1: TSO Contexts Failed = 0
em2: Excessive collisions = 0
em2: Sequence errors = 0
em2: Defer count = 0
em2: Missed Packets = 5161618
em2: Receive No Buffers = 15014326
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 = 282651
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 = 177656654
em2: Good Packets Xmtd = 169246043
em2: TSO Contexts Xmtd = 0
em2: TSO Contexts Failed = 0

em0: Adapter hardware address = 0x84096218
em0: CTRL = 0x480c0241 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 = 100, hw tdt = 100
em0: hw rdh = 91, hw rdt = 90
em0: Num Tx descriptors avail = 256
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: Adapter hardware address = 0x840a5218
em1: CTRL = 0x48100240 RCTL = 0x8002
em1: Packet buffer = Tx=14k Rx=10k
em1: Flow control watermarks high = 8192 low = 6692
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 = 56, hw tdt = 56
em1: hw rdh = 255, hw rdt = 254
em1: Num Tx descriptors avail = 256
em1: Tx Descriptors not avail1 = 18236046
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: Adapter hardware address = 0x840af218
em2: CTRL = 0x48140248 RCTL = 0x8002
em2: Packet buffer = Tx=20k Rx=12k
em2: Flow control watermarks high = 10240 low = 8740
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 = 241, hw tdt = 241
em2: hw rdh = 87, hw rdt = 86
em2: Num Tx descriptors avail = 256
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

Ошибки, возможно с пакетов по 92 байта, завтра ребутну и позаписываю попорядку.

Share this post


Link to post
Share on other sites

По дескрипторам - 2600 прерываний пакет 542 байта поток в сек 118556962 байт - 118556962/542 - п/с = 218739,78 ~ 218794 / 2600 = 84,15 - используется дескрипторов

Share this post


Link to post
Share on other sites
2 - на текущий момент, пока ребутить нехочется

это как я понимаю, когда нет input erros? а какой траф щас через интерфейсы ходит ?еще раз сними стат и скинь, что у тебя копится.

Edited by Vinc

Share this post


Link to post
Share on other sites

да тестовый стенд, нет теста нет трафа

 

                  input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    124656     0   67507128     124497     0   67496568     0
    124702     0   67512897     124575     0   67500580     0
    124924     0   67519654     124540     0   67492232     0
    124686     0   67525099     124558     0   67514454     0
    124710     0   67529373     124573     0   67518248     0
    124688     0   67521775     124559     0   67509576     0
    125031     0   67512558     124501     0   67478140     0
    124723     0   67545152     124605     0   67535592     0
    124740     0   67556117     124627     0   67546974     0
    124704     0   67528193     124570     0   67517164     0

em0: Adapter hardware address = 0x84096218
em0: CTRL = 0x480c0241 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 = 22, hw tdt = 32
em0: hw rdh = 160, hw rdt = 107
em0: Num Tx descriptors avail = 200
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
em0: Adapter hardware address = 0x84096218
em0: CTRL = 0x480c0241 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 = 215, hw tdt = 229
em0: hw rdh = 178, hw rdt = 141
em0: Num Tx descriptors avail = 237
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

а терь пришлю еще 1 такойже поток

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    124683     0   67519105     124529     0   67507950     0
    124671     0   67515341     124572     0   67504374     0
    124674     0   67521632     124564     0   67512828     0
    125040     0   67516729     124506     0   67480850     0
    125420     0   67525580     124478     0   67466758     0
    124706     0   67495540     124503     0   67480308     0
    157606     0   85340285     157406     0   85326200     0
    204760 12401  110916843     204652     0  110905890     0
    204832 14622  110924079     204620     0  110909684     0
    205300 14625  110867326     204442     0  110813750     0
    204769 14651  110884424     204484     0  110868492     0
    204706 14631  110906528     204631     0  110897218     0
    204689 14628  110899480     204526     0  110892510     0
    204688 14667  110869184     204674     0  110857652     0
    205250 14674  110843146     204370     0  110789902     0
    204880 14676  110892667     204603     0  110870660     0
    204641 14628  110875295     204526     0  110866324     0

em0: Adapter hardware address = 0x84096218
em0: CTRL = 0x480c0241 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 = 63, hw tdt = 84
em0: hw rdh = 112, hw rdt = 53
em0: Num Tx descriptors avail = 108
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

 

статс во время ероров

em0: Excessive collisions = 0
em0: Sequence errors = 0
em0: Defer count = 0
em0: Missed Packets = 10121178
em0: Receive No Buffers = 10294808
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 = 1429231
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 = 455035591
em0: Good Packets Xmtd = 385472077
em0: TSO Contexts Xmtd = 69
em0: TSO Contexts Failed = 0
em0: Excessive collisions = 0
em0: Sequence errors = 0
em0: Defer count = 0
em0: Missed Packets = 10179473
em0: Receive No Buffers = 10294808
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 = 1437838
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 = 455854489
em0: Good Packets Xmtd = 386290252
em0: TSO Contexts Xmtd = 69
em0: TSO Contexts Failed = 0

Edited by IvanI

Share this post


Link to post
Share on other sites

гы

After switching to net.isr.direct=0 and 346609775 good packets later, RX overruns haven't increased by one! Thats nice. Still interrupt is using up the CPU. I'm not quite sure if polling would help now!?
После переключения к сети isr.direct=0 и 346609775 хорошим пакетам позже, перерасходы RX не увеличились одним! Хороший Thats. Все еще прерывание израсходовало центральный процессор. Я не совсем уверен, если опрос помог бы теперь!?

непомогло :(

Share this post


Link to post
Share on other sites

а)сколько проца taskq карта забирает при erros

б)vmstat -i

Edited by Vinc

Share this post


Link to post
Share on other sites
    3 users    Load  0.33  0.08  0.03                  Feb 17 01:24

Mem:KB    REAL            VIRTUAL                       VN PAGER   SWAP PAGER
        Tot   Share      Tot    Share    Free           in   out     in   out
Act   19736    5644    95172     6968 2001080  count
All   41696    7656  4341008    11064          pages
Proc:                                                            Interrupts
  r   p   d   s   w   Csw  Trp  Sys  Int  Sof  Flt        cow   11116 total
             30       10k    2   52 3116 1000             zfod        atkbd0 1
                                                          ozfod       atapci0 18
13.0%Sys   0.0%Intr  0.0%User  0.0%Nice 87.0%Idle        %ozfod       atapci1+ 1
|    |    |    |    |    |    |    |    |    |    |       daefr  2000 cpu0: time
=======                                                   prcfr  2550 em0 irq256
                                         3 dtbuf          totfr   283 em1 irq257
Namei     Name-cache   Dir-cache    100000 desvn          react   283 em2 irq258
   Calls    hits   %    hits   %       587 numvn          pdwak  2000 cpu1: time
                                        92 frevn          pdpgs  2000 cpu2: time
                                                          intrn  2000 cpu3: time
Disks   ad8  ad10                                   28028 wire
KB/t   0.00  0.00                                   13932 act
tps       0     0                                    7592 inact
MB/s   0.00  0.00                                     420 cache
%busy     0     0                                 2000660 free
                                                    10048 buf


last pid:  2661;  load averages:  0.60,  0.21,  0.08                      up 0+11:38:00  01:25:41
72 processes:  5 running, 55 sleeping, 12 waiting
CPU 0:  0.0% user,  0.0% nice,  0.8% system,  0.0% interrupt, 99.2% 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, 53.8% system,  0.0% interrupt, 46.2% idle
CPU 3:  0.0% user,  0.0% nice,  0.0% system,  0.0% interrupt,  100% idle
Mem: 14M Active, 7596K Inact, 27M Wired, 420K Cache, 10M Buf, 1954M 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 696:37 100.00% idle: cpu1
   14 root        1 171 ki31     0K     8K RUN    0 688:13 100.00% idle: cpu0
   11 root        1 171 ki31     0K     8K CPU3   3 661:31 100.00% idle: cpu3
   23 root        1 -68    -     0K     8K -      2  18:18 52.69% em0 taskq
   12 root        1 171 ki31     0K     8K CPU2   2 678:46 50.29% idle: cpu2
   24 root        1 -68    -     0K     8K -      3  35:45  0.00% em1 taskq
   25 root        1 -68    -     0K     8K -      0   8:17  0.00% em2 taskq
   15 root        1 -32    -     0K     8K WAIT   0   1:09  0.00% swi4: clock
   32 root        1 -68    -     0K     8K -      1   0:42  0.00% dummynet
   18 root        1 -16    -     0K     8K -      3   0:27  0.00% yarrow
  812 ivan        1  44    0  8428K  3948K select 3   0:01  0.00% sshd
    4 root        1  -8    -     0K     8K -      1   0:00  0.00% g_down
  825 ivan        1  44    0  8428K  3952K select 3   0:00  0.00% sshd
    3 root        1  -8    -     0K     8K -      1   0:00  0.00% g_up
    2 root        1  -8    -     0K     8K -      0   0:00  0.00% g_event
  835 root        1  44    0  6276K  3024K select 1   0:00  0.00% mc
   38 root        1  20    -     0K     8K syncer 3   0:00  0.00% syncer

Share this post


Link to post
Share on other sites
непомогло :(
При isr.direct=0 машинка буферизирует все полученные пакеты в swi:net

при isr.direct=1 пакеты направляются напрямую на хэндлер прерываний сетевой платы.

Если в машинке более 1 сетевой платы то isr.direct=1 должен давать выиграшь в производительности.

 

Share this post


Link to post
Share on other sites

Скорее всего сложнее, мое понимание(не факт что верное):

У карты есть 256 указателей(дескрипторов) куда писать пакеты, после получения первого пакета генерится прерывание, которое будет выполненно позже, когда наконец драйвер соизволит заняться картой(пройдет время или наберется заданное количество пакетов) он соберет все пакеты(скорее всего просто сменит в списке указатели на занятые буфера) и обновит список указателей и далее по кругу.

А вот далее у меня и происходят ошибки или в самой железке, что врядли.

 

И еще нарыл, правда нетбсд

.It Va "Rx overruns"

Rx Fifo overruns reported by the Tulip chip in the Status CSR.

The driver stops the receiver and restarts it to work around a potential hardware hangup.

.It Va "перерасходы Rx"

Rx Первым прибыл, первым обслужен наводняет сообщаемый Тюльпаном, вносят Состояние CSR.

Драйвер останавливает получатель и перезапускает его, чтобы работать вокруг потенциальных аппаратных средств hangup.

Share this post


Link to post
Share on other sites
3.2.11.5 Receiver FIFO Overrun (ICR.RXO)

FIFO overrun occurs when hardware attempts to write a byte to a full FIFO. An overrun could

indicate that software has not updated the tail pointer to provide enough descriptors/buffers, or that

the PCIe* bus is too slow draining the receive FIFO. Incoming packets that overrun the FIFO are

dropped and do not affect future packet reception. Note that this interrupt stops and re-initializes

the entire active delayed receive interrupt process.

С dev.em.х.rx_abs_int_delay=0 они продолжают копиться?

Share this post


Link to post
Share on other sites
С dev.em.х.rx_abs_int_delay=0 они продолжают копиться?
- да

с

hw.em.rxd=1024
hw.em.txd=1024

получаю

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    196848 22475  106678627     196808     0  106676712     0
    196642 22487  106568152     196640     0  106566096     0
    196800 22437  106656514     196776     0  106654442     0

 

Снять 1ую сетевуху - непомогло

Замена

sysctl dev.em.0.rx_int_delay=0
sysctl dev.em.0.tx_int_delay=66
sysctl dev.em.0.rx_abs_int_delay=66
sysctl dev.em.0.tx_abs_int_delay=66
sysctl dev.em.0.rx_processing_limit=100

на

sysctl dev.em.0.rx_int_delay=250
sysctl dev.em.0.tx_int_delay=250
sysctl dev.em.0.rx_abs_int_delay=250
sysctl dev.em.0.tx_abs_int_delay=250
sysctl dev.em.0.rx_processing_limit=4000

добавляет 10 - 15 % нагрузки на проц

Share this post


Link to post
Share on other sites

 

При options DEVICE_POLLING никакие настройки таймаутов в sysctl dev.em работать не будут. Пересобирайте ядро без поллинга, или включайте поллинг на всех интерфейсах и тюньте его.

Share this post


Link to post
Share on other sites

на данный момент выяснил что потери на ин интерфейсе возникают только при дуплексе

 

Ядро собирается, интересно как всетаки дуплексом гиг через самую говеную в системе карту ходит, а через хорошие - нет??

Share this post


Link to post
Share on other sites

 

И вместе с перекомпиляцией без поллинга не забудьте hw.em.rxd=4096, hw.em.txd=4096

 

Share this post


Link to post
Share on other sites

Новое ядро и hw.em.rxd=4096, hw.em.txd=4096

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    197225 22541  106614323     196617     0  106576394     0
    196808 22511  106637912     196764     0  106632874     0
    196863 22481  106656408     196768     0  106648480     0
    196814 22497  106640553     196747     0  106634388     0
    197058 22501  106629080     196693     0  106605662     0

 

Отключаю роутинг

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    219948     0  118925385          3     0        362     0
    219134     0  118730455          2     0        224     0
    219320     0  118834371          2     0        224     0
    219310     0  118831105          2     0        224     0
    219786     0  118834476          2     0        224     0
    219457     0  118828975          2     0        224     0
    219346     0  118845248          2     0        224     0
    219319     0  118829643          2     0        224     0
    219358     0  118831139          2     0        224     0

Share this post


Link to post
Share on other sites

При hw.em.rxd=4096, hw.em.txd=4096 и попытке стартовать EM2 ошибка "EM2: Could not setup recive structures" и дохнет вся сеть.

Share this post


Link to post
Share on other sites

sysctl dev.em.0.rx_int_delay=600

sysctl dev.em.0.tx_int_delay=600

sysctl dev.em.0.rx_abs_int_delay=1000

sysctl dev.em.0.tx_abs_int_delay=1000

sysctl dev.em.0.rx_processing_limit=1000

Share this post


Link to post
Share on other sites
sysctl dev.em.0.rx_int_delay=600

sysctl dev.em.0.tx_int_delay=600

sysctl dev.em.0.rx_abs_int_delay=1000

sysctl dev.em.0.tx_abs_int_delay=1000

sysctl dev.em.0.rx_processing_limit=1000

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    206615 12582  111958441     206521     0  111953704     0
    206864 12616  112093171     206828     0  112088264     0
    206675 12592  111989452     206703     0  111985554     0
    206918 12573  112033585     206614     0  112016990     0
    206708 12612  111971160     206334     0  111960622     0

 

Чето кажется мне что это баг драйвера при работе с чипами 82572 - 82573 и лечить (типа #define EM_FAST_IRQ 1 ) или патчить надо драйвер.

Share this post


Link to post
Share on other sites

Смена шедулера тоже непомогла

Share this post


Link to post
Share on other sites

#define EM_FAST_IRQ 1 - непомогает, но как сервак воет ппц

 

            input          (em0)           output
   packets  errs      bytes    packets  errs      bytes colls
    197108 22489  106629878     196703     0  106602952     0
    197110 22516  106633203     196695     0  106606746     0

а на 82566

            input          (em1)           output
   packets  errs      bytes    packets  errs      bytes colls
    218783     0  118354761     217778     0  117800990     0
    218302     0  118268964     217494     0  118138114     0
    218513     0  118384465     217753     0  118029172     0
    219352     0  118836067     217727     0  118009660     0
    219515     0  118798084     217751     0  118003156     0
    218582     0  118331343     217728     0  118016706     0
    219064     0  118691498     217754     0  118024294     0

работает всю голову ужо сломал .

Edited by IvanI

Share this post


Link to post
Share on other sites

драйвер от Яндекса добавляет дропов до 28к :(

Share this post


Link to post
Share on other sites

 

Что там в net.inet.ip.intr_queue_maxlen ? В яндексовом драйвере сколько dev.em.0.rx_kthreads ?

Share this post


Link to post
Share on other sites

dev.em.0.rx_kthreads нетрогал, net.inet.ip.intr_queue_maxlen: 50

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
Sign in to follow this