Zatizeni CPU pri velkem poctu paketu ixgbe
Dan Lukes
dan at obluda.cz
Thu May 3 10:16:42 CEST 2018
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
More information about the Users-l
mailing list