Radek Krejča wrote on 2. 5. 2018 17:37:
bojuji s nizkou propustnosti 10G sitovek pri vetsim poctu paketu. Mam tam ixgbe 
driver pro sitovky, dmesg ukazuje

ix0: <Intel(R) PRO/10GbE PCI-Express Network Driver, Version - 3.1.13-k> mem 
0xfbc00000-0xfbdfffff,0xfbe04000-0xfbe07fff irq 11 at device 0.0 on pci5

Neni problem protahnout skrze router a nat s pf 7 giga v ramci par spojeni a 
paketu na stole pres iperf, ale za normalniho trafficu jde cpu do haje pomerne 
brzy.

Kdyz on iperf vytvari veskrze pravidelne toky. To pak vsechno funguje tak nejak lepe - pakety jsou takrka vsechny stejen velke, interrupt coalescing tika jako chronometr, programovy kod je daleko pravdepodobneji v cache - a tak vubec.

Realny traffic tak hezky nebyva.


Zkousel jsem zapnout polling, ale nezda se, ze by to melo nejaky efekt a hlavne 
je rozpor v dokumentaci, v manu pro polling není ixgbe vypsana, u ixgbe odkaz 
na polling je

Ja ho tam nevidim.

Kazdopadne, ixgbe ovladac pooling neumi. Neni to ale asi az takova ztrata - polling prinasi nejvetsi efekt u "tupejch" desktopovejch karet, ktere generuji HW preruseni s kazdym paketem. ixgbe karty maji MSI-X a hlavne interrupt coalescing, tam by efekt pollingu nebyl zdaleka tak videt. Pokud vubec.

Cim dalsim bych mohl jeste CPU odlehcit? top -SH mi ted ukazuje toto (nicmene 
ted tam netece ani pul giga trafficu a relativne malo paketu):

    12 root          -92    -     0K   432K WAIT    0 1198.5  30.20% 
intr{irq264: ix0:q0}
    12 root          -92    -     0K   432K WAIT    1 1186.4  25.87% 
intr{irq265: ix0:q1}
    12 root          -92    -     0K   432K WAIT    3 1165.2  22.05% 
intr{irq267: ix0:q3}
    12 root          -92    -     0K   432K WAIT    2 1169.9  16.75% 
intr{irq266: ix0:q2}
    12 root          -92    -     0K   432K WAIT    1 720.8H  13.06% 
intr{irq270: ix1:q1}
    12 root          -92    -     0K   432K WAIT    2 683.9H  11.01% 
intr{irq271: ix1:q2}
    12 root          -92    -     0K   432K WAIT    3 676.3H  10.53% 
intr{irq272: ix1:q3}
    12 root          -92    -     0K   432K WAIT    0 699.0H   8.60% 
intr{irq269: ix1:q0}


Pri danem poctu paketu (a ten patrne ovlivnit nemuzes) je jednou z moznosti dalsi zvyseni poctu paketu "na jedno preruseni". Odvracenou stranou metody je zvyseni prumerne latence, ale to by nemuselo az tak vadit. Ted nemam cas se podivat kde a jak se prametry interrupt coalescingu nastavuji, ale obvykle to byva nejake sysctl.

A pak, uz si s odsupem doby nepamatuju, jake vsechny veci se s paketem podnikaji jeste v ramci obsluhy preruseni - pokud by to bylo neco, co lze ozelet, tak i to muze zatizeni snizit.

Jinak ale, se dvema 10Gb kartami se stejne nejspis dostavas na hranici propustnosti PCI-X smernice. A k tomu NAT (predpokladam, ze in-kernel, nikoliv aplikacni NATD), firewall ...

Podle me tezce narazis na moznosti jak hardware tak FreeBSD, ktere s nim zkousi kouzlit. Nakonec ti nezbude nez udelat to co my - priznat, ze na tohle uz standardni PC ani FreeBSD neni vhodny nastroj a poridit profesionalni box k tomuhle designovany.


Dan
--
FreeBSD mailing list ([email protected])
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem