Funkční 10GbE řešení pro TrueNAS Scale

Funkční 10GbE řešení pro TrueNAS Scale
« kdy: 30. 10. 2024, 12:55:13 »
Ahoj,

Hladam funkcne, cenovo rozumne 10 GbE riesenie na prepojenie TrueNAS Scale a workstation PC s WIN11, ktore je realne schopne saturovat 10 GbE linku.

Kupil som z eBay 2x OEM INTEL 82599ES X520-DA1, 2x GENUINE Cisco SFP-10G-SR a 2x INTEL E10GSFPSR FTLX8571D3BCV-IT:

Cez iperf3 dostanem z toho max 3.2Gb/s (400MB/s) s Jumbo frame 9000, ostatny tuning kernel parametrov v linuxe ani vo WIN11 nemal markantny vplyv na rychlost.
Testoval som v kartach oba SFP+ moduly (Intel aj Cisco) s rovnakym benchmarkom. CPU utilization je na strane TrueNAS-u do 10% (6-core Ryzen 5600X + 32GB ECC RAM 3200MHz).
Workstation je 16-core Ryzen 9 5950X + 64GB ECC RAM 3200MHz, takze tam je este vacsia vykonova rezerva, tam uzke hrdlo nevidim.
Mam teda podozrenie, ze to rezu cinske "non-GENUINE" komponenty.
Ale ci su na vine cele sety (karty vratane modulov) alebo len karty samotne a moduly su OK, to fakt netusim...

Pekne prosim o radu, prip. navrh riesenia.

M.


Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #1 kdy: 30. 10. 2024, 13:15:23 »
A zapojeny to je jak? Vidim 4x sfp+ modul a 2x 1port kartu.

Zkuste live linux na te w11 masine + iperf3. Pripadne obe karty do te masiny a iperf krizem.

jjrsk

  • *****
  • 512
    • Zobrazit profil
Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #2 kdy: 30. 10. 2024, 13:16:59 »
Celkovy zatizeni CPU je nezajimavy, potrebujes znat zatizeni jednotlivych jader.

Dalsi aspekt budou ty windows, ony maji cosi jako "sitovy profil", a maji tam bydefault nejaky automatismus ktery ma zaridit to, ze tu sit nikdy nezatizis na 100%.

https://borncity.com/win/2023/02/14/microsofts-tcp-mess-how-to-optimize-in-windows-10-11/


RDa

  • *****
  • 2 698
    • Zobrazit profil
    • E-mail
Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #3 kdy: 30. 10. 2024, 14:04:47 »
Zkuste live linux na te w11 masine + iperf3. Pripadne obe karty do te masiny a iperf krizem.

A jak tam nastavujes adresy? Protoze kazdy IP stack, kdyz zjisti ze adresa je lokalni tak to veme naprimo a neposila to vubec do sitovky. K testovani jsem potreboval vzdy dva separatni kompy, nebo dve virtualky.

Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #4 kdy: 30. 10. 2024, 14:58:42 »
Jaký parametry měl ten iperf, použil jste u klienta něco jako '-P 15' ??


jjrsk

  • *****
  • 512
    • Zobrazit profil
Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #5 kdy: 30. 10. 2024, 16:10:08 »
A jak tam nastavujes adresy? Protoze kazdy IP stack, kdyz zjisti ze adresa je lokalni tak to veme naprimo a neposila to vubec do sitovky. K testovani jsem potreboval vzdy dva separatni kompy, nebo dve virtualky.
Nevim jak to dela on, ale tusim ze network namespaces by na to fungovat melo. Vpodstate tim vytvoris virtualni sitovej stack, takze on nevi, ze to je na stejnym HW.



Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #6 kdy: 30. 10. 2024, 23:27:31 »
Testoval som nasledovne:

1. WIN11 PC workstation oproti TrueNAS serveru
2. WIN11 PC workstation oproti dalsiemu WIN11 PC
3. Ubuntu Live na workstation oproti TrueNAS serveru

Mam 2 pary SFP+ 10 GbE SR optickych modulov: Cisco a Intel, kombinoval som Cisco -> Cisco, Intel -> Intel.

Iperf3 v konfiguracii:

Server (TrueNAS server), IP: 10.100.100.200:
iperf3 -s -p 5001

Klient (PC workstation s WIN11 / Ubuntu Live), IP: 10.100.100.1:
iperf3 -c 10.100.100.200 -p 5001 -t 30 -> vysledok [SUM] 3.25 Gbits/sec
iperf3 -c 10.100.100.200 -p 5001 -t 30 -P 16 -> vysledok [SUM] 3.22 Gbits/sec
iperf3 -c 10.100.100.200 -u -p 5001 -t 30 -b 0 -> vysledok [SUM] 1.73 Gbits/sec

Skusal som aj spustit 3 instancie iperf3 server na TrueNAS-e v 3 konzolovych oknach, samozrejme na roznych portoch a
z workstation-u 3 klientov, vysledok bol v sucte cca 3.2 Gbits/sec.

Zataz jadier (6+6 HT) TrueNAS serveru cez htop bola variabilna, system dynam. prideloval jadra, max. do 10%.

Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #7 kdy: Dnes v 07:16:22 »
iperf3 má nějaké problémy s Windows a neukazuje dobře

Re:Funkční 10GbE řešení pro TrueNAS Scale
« Odpověď #8 kdy: Dnes v 08:13:36 »
Hele nepadla tady jedna zásadní věc: vidíte na počítadlech vadně přijatých paketů (err) na síťovkách číslo vyšší než 0 ?
Pokud ano, hledejte problém na fyzické vrstvě (transceivery, vlákna, kompatibilita transceiverů proti síťovkám).
Pokud je tam nula, tak máte fyzickou vrstvu nejspíš v pořádku.

Tady někdo popisuje podobný problém a udává velmi podobné hodnoty jako Vy - a pak si všiml, že má 10Gb síťovku linknutou na PCI-e jenom šířkou x1 :-)

lspci -s 03:00.0 -vv | grep LnkSta:
             LnkSta: Speed 2.5GT/s (ok), Width x1 (ok)

Ve vašem případě by nejspíš lspci navíc přidalo kyselý dovětek "downgraded" = že se zařízení dohodlo pod svoje možnosti.
Číslo zařízení jsem zadal natvrdo, abych dostal hodnotu jenom pro své konkrétní zařízení. Jedná se vlastně o pozici na sběrnici, najdete ji ve výpisu lspci bez parametrů.

Testoval bych předně linux proti linuxu. Oddělíte tak windowsové špecifiká od skutečných HW problémů.

Pak mě napadá, zakázat procesoru hlubší C-states. V linuxu na AMD nejspíš processor.max_cstate=1 (nebo i =0, třeba jenom na chvilku). Jinak pro to bývá položka v BIOS SETUPu, ta platí i pro Linux (i pro Windows). Výsledek ukáže tuším turbostat z balíku linux-cpupower (Debian/Ubuntu). A možná bych neváhal vyzkoušet pcie_aspm=off.

Man iperf3 zmiňuje pár dalších zajímavých věcí.

Například, že -P (paralelní streamy) ve skutečnosti jede na jediném CPU jádře, protože iperf3 je jednovláknový :-( takže víc jader tím nevytížíte.

Dále bych zmínil -Z  (zero copy), což by mohlo trochu omezit režii.

Pak jsem si všiml -w/--window -- tady si nejsem jist, zda se uplatní také u UDP. Jinak na TCP by si iPerf měl správnou velikost okna ustálit sám...

Dále manuál zmiňuje možnost, nastavit afinitu k CPU jádru parametrem -A. Mohlo by se hodit, nechat běžet iPerf na jádře, které obsluhuje interrupty od síťovky - viz "cat /proc/interrupts" . Ačkoli je pravda, že hardware síťovek a ovladače se snaží provádět "interrupt amalgamation" (moderation) aby se stroj neudávil jenom obsluhou IRQ. Tohle se děje zhruba od gigabitu výš, na 10Gb hardwaru zcela určitě. Tuším se toho týká keyword NAPI, což je nějaký generický framework linuxového kernelu pro tyhle kejkle - využívají ho drivery síťovek, konkrétně drivery od Intelu ho tuším zmiňují při bootu v dmesg (osobně jsem to pozoroval u gigových síťovek, 10Gb mi tolik rukama neprochází). Jinak se historicky vyskytlo také API zvané netpoll, což je ale asi trochu jiné zvířátko, je třeba ho v aplikacích používat explicitně a iperf3 ho zjevně neumí. Kdoví, zda je to vůbec ještě aktuální - zda to někdy opustilo stádium out-of-tree patche.

Našel jsem takový lehce povrchní starší článek od RedHatu, jak ladili průchodnost (pakety za sekundu) zřejmě na téže síťovce, co máte Vy. Není tam moc zaklínadel v příkazovém řádku, ale jako rozcestník = seznam dalších tipů by to mohlo být použitelné.