Test rýchlosti s iperf3

Pred nedávnom som dostal úlohu, prepojiť sieťovo, na úrovni ethernetu 2 objekty. Tieto objekty, resp. budovy sa nachádzajú v rámci jedného areálu na súkromnom pozemku. Budovy su od seba vzdialené asi 60m. Najprv sme uvažovali bezdrôtový spoj PtP, ale rýchlo sme sa priklonili k fyzickému spojeniu. Ethernetové káble by boli fajn, ale bolo by nutné riešiť vonkajšiu ochranu pred bleskom a to by spoj značne predražilo. Nakoniec sme sa zhodli na optike.

V tomto blogu nebude dôležité ako sme spoj realizovali, ale čo sme namerali na oboch koncoch vedenia. Spoj je zložený fyzicky z dvoch media konvertorov a jedného optického vlákna, presnejšie povedané

  • 1x Optic patchcord SC/PC – SC/PC 100m, 3mm, G.657A2, simplex, outdoor
  • 2x Cudy MC220, Media konvertor, SFP, 1x GLAN
  • 1x MaxLink SFP modul 1,25Gbps, 3km, WDM, DDM, TX1310/RX1550 (SC/SM)
  • 1x MaxLink SFP modul 1,25Gbps, 3km, WDM, DDM, TX1550/RX1310 (SC/SM)

Cena za optický kábel je v dnešnej dobe porovnateľná s FTP káblom a dovolím si tvrdiť, že v niektorých prípadoch je lacnejšia. Nám sa podarilo kúpiť opticky kábel (patchcord s koncovkami SC/PC na koncoch) za 0.4€/m s DPH a to nie je vôbec zlá cena. Ďalej bolo potrebné na oboch koncoch nasadiť prevodníky z optického signálu na elektrické signály. V tomto prípade sme použili lacnejšie varianty, konkrétne Cudy MC220 (18€ za kus s DPH) vrátane napájacích adaptérov. Obidva prevodníky je potrebne osadiť SFP modulmi. Na jednej strane je modul MaxLink TX1310/RX1550 a na druhej MaxLink TX1550/RX1310. Cena za modul sa pohybuje 6.4€ s DPH za kus.

Poďme si teda pripraviť spoj na meranie. media konvertory osadíme SFP modulmi a prepojíme ich optickým káblom (patchcordom). Do LAN RJ45 konektorov na prevodníkoch zapojíme LAN káble a prepojíme ich s počítačmi. Ja som mal k dispozícii 2 notebooky s Gigabit siťovými kartami. Na jednom bol Linux Mint 21 a na druhom Windows 10 (to bola chyba, vysvetlím neskôr).

Na oboch NTB som nainštaloval šikovný nástroj na testovanie rýchlosti siete. Tu máme iperf3 pre Windows a pre linux stačí nainštalovať z repo (napr. pre OS založené na Debiane)

sudo apt update && sudo apt install iperf3 -y
iperf3 -v

Na OS Win je potrebne iperf3 spustiť z príkazového riadku.

Na NTBs som nastavil sieť na statické IP adresy (192.168.1.2 a 192.168.1.3). Na jednej strane sa iperf3 nastaví ako server a na druhej ako klient. To je jedno, korý NTB bude klient a ktorý server. Pri ďalšom meraní sa môžu otočiť, alebo sa použije parameter -R.

NTB s Win 10 nastavím napr. ako server, ktorý počúva na predvolenom porte 5201

iperf3 -s

NTB s OS linux bude potom klient. Príkaz hovorí, že spusť iperf3 ako klient a posielaj data na IP adresu 192.168.1.3 po dobu 10 sekúnd. Mimochodom 10 sekúnd je predvolená hodnota, čiže ju môžeme zmeniť napr. na 5, alebo na 20.

iperf3 -c 192.168.1.2 -t 10

Výsledky z OS Linux

Connecting to host 192.168.1.2, port 5201
[  5] local 192.168.1.3 port 36506 connected to 192.168.1.2 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  72.3 MBytes   606 Mbits/sec    0    151 KBytes       
[  5]   1.00-2.00   sec  75.5 MBytes   633 Mbits/sec    0    151 KBytes       
[  5]   2.00-3.00   sec  76.6 MBytes   643 Mbits/sec    0    151 KBytes       
[  5]   3.00-4.00   sec  76.4 MBytes   641 Mbits/sec    0    151 KBytes       
[  5]   4.00-5.00   sec  76.6 MBytes   643 Mbits/sec    0    151 KBytes       
[  5]   5.00-6.00   sec  76.3 MBytes   640 Mbits/sec    0    151 KBytes       
[  5]   6.00-7.00   sec  76.6 MBytes   643 Mbits/sec    0    151 KBytes       
[  5]   7.00-8.00   sec  76.7 MBytes   643 Mbits/sec    0    151 KBytes       
[  5]   8.00-9.00   sec  76.3 MBytes   640 Mbits/sec    0    151 KBytes       
[  5]   9.00-10.00  sec  76.8 MBytes   644 Mbits/sec    0    151 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   760 MBytes   638 Mbits/sec    0             sender
[  5]   0.00-10.00  sec   760 MBytes   637 Mbits/sec                  receiver

iperf Done.

Tieto výsledky sa mi vôbec nepáčia. Prečo dosahujem na GigaBytovej sieti priemerné hodnoty 640 Mbit/s ? Očakával som niečo cez 900 Mbit/s ale 640 je skutočne málo. Zmienil som sa v jednom diskusnom fóre, kde je zakopaný pes a bolo mi doporučené aby som skúsil linux proti linuxu. Tu sú výsledky

iperf3 -c 192.168.1.3 -t 10 --bidir
Connecting to host 192.168.1.3, port 5201
[  5] local 192.168.1.2 port 35980 connected to 192.168.1.3 port 5201
[  7] local 192.168.1.2 port 35982 connected to 192.168.1.3 port 5201
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][TX-C]   0.00-1.00   sec   107 MBytes   900 Mbits/sec    0    595 KBytes       
[  7][RX-C]   0.00-1.00   sec   109 MBytes   915 Mbits/sec                  
[  5][TX-C]   1.00-2.00   sec   111 MBytes   932 Mbits/sec    0    595 KBytes       
[  7][RX-C]   1.00-2.00   sec   111 MBytes   928 Mbits/sec                  
[  5][TX-C]   2.00-3.00   sec   112 MBytes   938 Mbits/sec    0    595 KBytes       
[  7][RX-C]   2.00-3.00   sec   110 MBytes   922 Mbits/sec                  
[  5][TX-C]   3.00-4.00   sec   111 MBytes   930 Mbits/sec    0    629 KBytes       
[  7][RX-C]   3.00-4.00   sec   110 MBytes   921 Mbits/sec                  
[  5][TX-C]   4.00-5.00   sec   111 MBytes   933 Mbits/sec    0    662 KBytes       
[  7][RX-C]   4.00-5.00   sec   110 MBytes   925 Mbits/sec                  
[  5][TX-C]   5.00-6.00   sec   111 MBytes   933 Mbits/sec    0    662 KBytes       
[  7][RX-C]   5.00-6.00   sec   110 MBytes   925 Mbits/sec                  
[  5][TX-C]   6.00-7.00   sec   111 MBytes   933 Mbits/sec    0    662 KBytes       
[  7][RX-C]   6.00-7.00   sec   111 MBytes   930 Mbits/sec                  
[  5][TX-C]   7.00-8.00   sec   111 MBytes   933 Mbits/sec    0    662 KBytes       
[  7][RX-C]   7.00-8.00   sec   111 MBytes   929 Mbits/sec                  
[  5][TX-C]   8.00-9.00   sec   111 MBytes   933 Mbits/sec    0    662 KBytes       
[  7][RX-C]   8.00-9.00   sec   111 MBytes   930 Mbits/sec                  
[  5][TX-C]   9.00-10.00  sec   111 MBytes   933 Mbits/sec    0    662 KBytes       
[  7][RX-C]   9.00-10.00  sec   111 MBytes   928 Mbits/sec                  
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][TX-C]   0.00-10.00  sec  1.08 GBytes   930 Mbits/sec    0             sender
[  5][TX-C]   0.00-10.04  sec  1.08 GBytes   924 Mbits/sec                  receiver
[  7][RX-C]   0.00-10.00  sec  1.08 GBytes   928 Mbits/sec    0             sender
[  7][RX-C]   0.00-10.04  sec  1.08 GBytes   922 Mbits/sec                  receiver

iperf Done.
iperf3 -s
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
Accepted connection from 192.168.1.2, port 35978
[  5] local 192.168.1.3 port 5201 connected to 192.168.1.2 port 35980
[  8] local 192.168.1.3 port 5201 connected to 192.168.1.2 port 35982
[ ID][Role] Interval           Transfer     Bitrate         Retr  Cwnd
[  5][RX-S]   0.00-1.00   sec   101 MBytes   845 Mbits/sec                  
[  8][TX-S]   0.00-1.00   sec   108 MBytes   904 Mbits/sec    0    516 KBytes       
[  5][RX-S]   1.00-2.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   1.00-2.00   sec   111 MBytes   928 Mbits/sec    0    540 KBytes       
[  5][RX-S]   2.00-3.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   2.00-3.00   sec   109 MBytes   919 Mbits/sec    0    566 KBytes       
[  5][RX-S]   3.00-4.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   3.00-4.00   sec   110 MBytes   920 Mbits/sec    0    566 KBytes       
[  5][RX-S]   4.00-5.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   4.00-5.00   sec   111 MBytes   930 Mbits/sec    0    566 KBytes       
[  5][RX-S]   5.00-6.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   5.00-6.00   sec   111 MBytes   927 Mbits/sec    0    566 KBytes       
[  5][RX-S]   6.00-7.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   6.00-7.00   sec   111 MBytes   931 Mbits/sec    0    566 KBytes       
[  5][RX-S]   7.00-8.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   7.00-8.00   sec   110 MBytes   925 Mbits/sec    0    566 KBytes       
[  5][RX-S]   8.00-9.00   sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   8.00-9.00   sec   111 MBytes   931 Mbits/sec    0    566 KBytes       
[  5][RX-S]   9.00-10.00  sec   111 MBytes   933 Mbits/sec                  
[  8][TX-S]   9.00-10.00  sec   110 MBytes   923 Mbits/sec    0    566 KBytes       
[  5][RX-S]  10.00-10.04  sec  4.18 MBytes   924 Mbits/sec                  
[  8][TX-S]  10.00-10.04  sec  4.85 MBytes  1.07 Gbits/sec    0    566 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID][Role] Interval           Transfer     Bitrate         Retr
[  5][RX-S]   0.00-10.04  sec  1.08 GBytes   924 Mbits/sec                  receiver
[  8][TX-S]   0.00-10.04  sec  1.08 GBytes   924 Mbits/sec    0             sender

Ako ste si všimli, v príkaze je ďalší parameter –bidir, ktorý by mal zabezpečiť simultánny prenos v oboch smeroch (Full duplex). Tu je už vidieť, že výsledky zodpovedajú reálnym rýchlostiam. Vo Win 10 je s iperf3 údajne nejaký problém. Tu sú informácie, prečo by sa iperf3 nemal používať v OS Win.

  1. Správca iperf – ESnet (Energy Sciences Network) – hovorí : „iperf3 nie je oficiálne podporovaný na Windows, ale iperf2 áno. Odporúčame vám použiť iperf2. Niektorí ľudia používajú Cygwin na spustenie iperf3 v systéme Windows, ale nie všetky možnosti budú fungovať.“
  2. iPerf3 je emulovaný v systéme Windows – iPerf3 nevykonáva volania natívneho API systému Windows, pretože vie, ako vykonávať iba hovory Linux/POSIX, čo môže ovplyvniť výkon.
  3. Zvyčajne si sťahujem iperf3 3.1.3 pre Windows vydaný v roku 2016 a Microsoft poznamenáva, že tá, ktorú ponúka ESnet (verzia 3.16), je novšia, ale stále je o 15 pozadu, takže používatelia nepoužívajú najnovšiu verziu nástrojov.

Podľa vyššie uvedených informácii tomu rozumiem tak, že iperf3 bol vytvorený pre unix-like systémy a na MS Win sa emuluje za pomoci knižnice Cygwin. Ja som sa už ďalej Windowsom nezaoberal a výsledky z linuxu sú veľmi uspokojivé. Nemôžem tvrdiť, že problém robí samotný Windows, možno som mal skúsiť iperf2, ale to som už nespravil. Mne išlo v podstate o test HW časti spoja, či sú v poriadku prevodníky a samotné optické vlákno. Pre mňa skončil test úspešne a spoj sa môže realizovať.

Leave a Reply

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *