Viteza retelei - ciudatenii

Marius '95

troubleShooter
Stie cineva vreun motiv pentru care viteza mea de download variaza ca in imagine? Creste treptat, apoi scade brusc, apoi iarasi creste treptat. Caderea fiecarui download este pana la zero, dar pe grafic se vede viteza mai multor download-uri simultane.
Net speed.png
 
Nu stiu, dar m-am jucat la TCP/IP si placile de retea zilele astea. Cred ca-i de la mine, dar nu stiu ce anume am setat aiurea.
 
Hmm... suspect... a mers. :what: :D
Dar acum merge prost reteaua locala (6 MB/s). Trebuie sa refac macar o parte din setari.
 
Am o problema de viteza cu reteua LAN.
Pe un calculator am Intel 82546GB (placa de server, gigabit, dual-port, PCI-X conectata intr-un PCI normal). Traficul pe al doilea port este minor (cativa KB/s), deci nu ma astept ca PCI-ul sa devina suprasaturat nici cu transfer la limita maxima teoretica a gigabit.
Pe celalalt calculator am Realtek RTL8168, (gigabit chior, PCI-E onboard). Placile sunt conectate direct una cu alta folosind un cablu cross scurt.
Orice setari as face, viteza (test sintetic de transfer TCP/IP) nu trece de 30-40 MB/s in oricare directie. Ma asteptam la ceva de genul 80-90 MB/s.
Cauze posibile?
 
Problema #1: Cablul. Cine ți-a spus să folosești un cablu cross-over pe Gigabit? Conceptul e un non-sens; specificațiile gigabit încorporează MDI-X. Pune un cablu certificat Gigabit, pe care nu l-ai tăiat/sertizat/modificat în nici un fel.

Problema #2: Drivere și setări. Driverul Realtek e instalat? Ce viteză de conectare raportează prin utilitarul de diagnostic? (Link)

Problema #3: PCI-X în slot PCI, și slotul PCI în sine. Ai testat conexiunea între Realtek și un alt sistem cu Gigabit, pentru a verifica dacă nu cumva placa Intel merge prost fiindcă nu e în slot PCI-X?

Problema #4: OS-ul. Ai făcut testele de pe un sistem de operare curat (chiar și un linux bootabil), sau de pe un OS mânărit în fel și chip, unde nici sfinții nu-ți garantează ceva? Ai aceleași setări TCP/IP, MTU? Ai Jumbo Frame?

Problema #5: Metoda de testare. Nu cumva ai un bottleneck altundeva pentru acei 30-40 MB/s, cum ar fi un disc lent sau pur și simplu un PC care trebuia să fie de mulți ani dat la reciclat?
 
  • Like
Reactions: LNT
#1: Voi testa cand ajung acasa.
#2: Da. Link speed: 1000. Toate perechile sunt cu status "normal".
#3: In calculatorul cu Intel mai am un gigabit onboard (RTL8111). O sa testez cu aia. As mai putea testa porturile intre ele. Daca trece de 40 MB/s, atunci nu PCI e cauza. Imi poti recomada un program de testat viteza independent de stiva TCP/IP a windows-ului?
#4: Nu, n-am testat. Am serioase indoieli ca pot. Tot ce tine de linux la mine sfarseste printr-un esec masiv, asa ca nici nu mai imi bat capul.
Setarile TCP/IP modificate: marit receive window, redus MTU la 1480 (pentru RDS PPPoE si n-am decat setare globala, nu per adaptor), jumbo frames de 9K, dar nu face nici o diferenta, ca am testat si cu ele dezactivate.
#5: Test sintetic cu NetCPS. iperf3 da rezultate catastrofice (< 1 MB/s) cu setarile default si rezultate asemanatoare cu NetCPS daca setez MSS de 8K. Prefer NetCPS pentru comoditate.

BTW, checksum offload nu face nici cea mai mica diferenta in utilizarea procesorului. Un core sta 90% incarcat cu INT+DPC si celalalt sta la 20% incarcat cu SYSTEM. Checksum offload activat doar muta acei 20% pe acelasi core ca si INT+DPC, fara vreo diferenta la viteza. Ambele placi fac la fel.

Desi procesorul sta la 90-100% cu un core, reducerea frecventei la jumatate nu afecteaza viteza retelei. Deci procesorul nu este cauza pentru care merge prost.

Activarea Interrupt moderation scade viteza. Tin dezactivat. Large Send Offload nu face nici o diferenta, nici in procesor, nici in viteza.
 
Last edited:
Hm. Vezi utilitarele 2 și 3 de aici:

https://www.raymond.cc/blog/network-benchmark-test-your-network-speed/

Problema cu gigabit e că îți raportează 1000 dacă ai physical connectivity (electric) și atât. Dar dacă e o conexiune proastă, nu sare în jos la 100 sau să îți dea vreo eroare. Iar cablul e al naibii de important.

Alte insight-uri la ce se întâmplă efectiv ca trafic Ethernet nu prea ai cum să vezi la modul serios decât cu un switch managed cu care să poți face mirroring de trafic pe un alt port, unde să pui un analizor.
 
Cu placa onboard, deci conexiune Realtek RTL8111 - Realtek RTL8168 viteza este de 2-8 MB/s, cu variatii foarte mari de la secunda la secunda, indiferent de cablu. Unele setari produc CPU 100% cu DPC pe un core, altele produc CPU 10-20%, viteza fiind aceeasi, iar alte setari incep trasferuri cu 20 MB/s si CPU 10% pentru ca dupa 2-3 secunde sa scada la 5 MB/s cu 100% CPU.

Nu pot testa Intel de la un port la celalalt. Imi ruteaza prin loopback, nu prin cablu si nu ma lasa sa sterg ruta loopback.
Anyway, am senzatia ca realtek-urile astea sunt niste prastii ordinare si ca ma chinui degeaba...
 
Last edited:
NetCPS e o prostie de acum 20 de ani. Pe aceeași conexiune (wifi pe laptop) și același server de pe care copiez din aceeași poziție cu 38MB/s, NetCPS abia merge cu 5MB/s. Folosind cablu gigabit (același server + desktop) nu trece de 38MB/s.

Probabil pentru că folosește un buffer de 1KB, adică trebuie să facă 100.000 de call-uri pe secundă către OS ca să transfere gigabit. Și nu așa se face, moare OS-ul, placa de rețea nici nu are ce trimite în multe cazuri, că nu a ajuns nimic de la aplicație încă (cam jumătate din pachetele trimise sunt mai mici decât MTU, la mine e ceva gen 1400-500-1400-500 pe wifi). Nici acum 20 de ani nu cred că mergea perfect.

iperf3 în aceleași condiții (wifi pe laptop, setări default) zice 280Mbit/sec. Dar setările default ale iperf includ un buffer de 128k (adică de 128 de ori mai puține call-uri către OS) și probabil și alte îmbunătățiri pentru a măsura bandwidth și nu CPU power.

Și de pe desktop
Code:
F:\tmp\tmp\iperf-3.0.11-win64>iperf3 -c 192.168.1.3
Connecting to host 192.168.1.3, port 5201
[  4] local 192.168.1.55 port 51533 connected to 192.168.1.3 port 5201
[ ID] Interval  Transfer  Bandwidth
[  4]  0.00-1.00  sec  109 MBytes  917 Mbits/sec
[  4]  1.00-2.00  sec  111 MBytes  930 Mbits/sec
[  4]  2.00-3.00  sec  112 MBytes  938 Mbits/sec
[  4]  3.00-4.00  sec  112 MBytes  935 Mbits/sec
[  4]  4.00-5.00  sec  112 MBytes  937 Mbits/sec
[  4]  5.00-6.00  sec  111 MBytes  932 Mbits/sec
[  4]  6.00-7.00  sec  111 MBytes  929 Mbits/sec
[  4]  7.00-8.00  sec  111 MBytes  934 Mbits/sec
[  4]  8.00-9.00  sec  110 MBytes  924 Mbits/sec
[  4]  9.00-10.00  sec  112 MBytes  938 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval  Transfer  Bandwidth
[  4]  0.00-10.00  sec  1.08 GBytes  932 Mbits/sec  sender
[  4]  0.00-10.00  sec  1.08 GBytes  932 Mbits/sec  receiver

Și iperf3 chiar poate mai mult (și nu e localhost):
Code:
[ ID] Interval  Transfer  Bandwidth
[  4]  0.00-10.00  sec  3.14 GBytes  2.70 Gbits/sec  sender
[  4]  0.00-10.00  sec  3.14 GBytes  2.70 Gbits/sec  receiver

Placa de pe server e Intel I217 sau 82574 (și virtualizată), placa de pe desktop e Atheros ceva. Dar astea au încetat să conteze acum mulți ani, cam tot ce e gigabit pe piață ține gigabit (nu vorbim de NAS-urile prost făcute sau cine știe ce ciudățenie low power).
 
Last edited:
Back
Top