
Spis treści
Cześć!
W tym artykule przyjrzymy się bliżej iPerf, potężnemu narzędziu do pomiaru wydajności sieci.
Raspberry Pi, będący niedrogim i wszechstronnym komputerem jednopłytkowym, oferuje niezliczone możliwości dla entuzjastów technologii i profesjonalistów IT. Połączenie iPerf z Raspberry Pi otwiera nowe możliwości do eksploracji i optymalizacji sieci w domu lub małej firmie.
Czym jest iPerf?
iPerf to narzędzie do testowania przepustowości sieci, mierzące wydajność TCP i UDP. Jest programem open-source, dostępnym na Linux, Windows i MacOS. iPerf działa poprzez tworzenie danych, które są transmitowane między serwerem a klientem (również iPerf), pozwalając na analizę różnych parametrów sieci, takich jak prędkość przesyłania danych, utratę pakietów i opóźnienia. Jego prostota i elastyczność sprawiają, że jest on idealnym narzędziem do testowania sieci w różnych środowiskach, w tym na Raspberry Pi.
Użytkownicy mogą łatwo zainstalować i uruchomić iPerf na Raspberry Pi, wykorzystując jego możliwości do monitorowania i diagnozowania stanu sieciowego, co jest szczególnie przydatne w edukacji, projektach hobbystycznych oraz małych przedsiębiorstwach.
iPerf czy iPerf3?
Istnieją dwie wersje narzędzia do testowania przepustowości sieci: iPerf oraz jego nowsza wersja, iPerf3. Oto kluczowe różnice między nimi:
- Rozwój i Wsparcie: iPerf (czasami nazywany iPerf2) to pierwotna wersja narzędzia. iPerf3 został napisany od podstaw i jest wspierany przez ESnet. iPerf3 nie jest kontynuacją iPerf2, lecz oddzielnym projektem.
- Kompatybilność: iPerf3 nie jest wstecznie kompatybilny z iPerf2. Oznacza to, że serwer i klient używający iPerf3 nie będą mogli komunikować się z odpowiednikami używającymi iPerf2.
- Funkcjonalność: iPerf3 oferuje pewne nowe funkcje oraz poprawki, których brakuje w iPerf2. Na przykład, iPerf3 ma lepszą obsługę raportowania wyników, pozwala na testowanie jednoczesnych wielu strumieni danych i oferuje bardziej szczegółową analizę.
- Interfejs użytkownika i wyjście: iPerf3 ma nieco inny interfejs użytkownika i format wyjścia w porównaniu do iPerf2. Zmiany te mają na celu ułatwienie interpretacji wyników testów.
- Obsługa protokołu: Oba narzędzia obsługują protokoły TCP i UDP, ale iPerf3 wprowadza lepsze zarządzanie i diagnostykę dla tych protokołów.
W praktyce, wybór między iPerf a iPerf3 zależy od konkretnych potrzeb użytkownika i wymagań środowiska testowego. iPerf3 jest często preferowany ze względu na swoje nowsze funkcje i lepsze wsparcie. Więcej informacji znajdziesz tutaj.
Przygotowanie
Zanim przystąpimy do sprawdzania przepustowości, warto odpowiednio przygotować nasze urządzenie – do stworzenia poradnika użyję Raspberry Pi w wersji 4B. Polecenia będziemy wydawać naszemu urządzeniu za pomocą SSH.
- Obecnie możecie już skorzystać z dostępnego w sprzedaży Raspberry Pi 5, jednakże dostępność jego jest bardzo mała. Polecam skorzystać z rpilocator.com, aby zobaczyć gdzie możesz obecnie dostać w rozsądnej cenie urządzenie;
- Na systemy operacyjne Microsoft Windows polecam PuTTY, z kolei na systemy operacyjne Apple MacOS polecam Termius.
Krok 1 – Zaktualizuj listę pakietów oraz wgraj aktualizacje
- Uruchom Putty (Windows OS) lub Termius (MacOS), a następnie połącz się ze swoim urządzeniem,
- Wprowadź poniższą komendę, aby zaktualizować listę pakietów oraz zainstalować dostępne aktualizacje:
sudo apt-get update && sudo apt-get upgrade -y
Krok 2 – Zainstaluj pakiet iPerf3
- Wprowadź poniższą komendę, aby zainstalować pakiet do pomiaru przepustowości:
- Pakiet musi zostać zainstalowany na urządzeniu pełniącym podczas pomiaru rolę serwera, jak i klienta.
sudo apt-get install iperf3 -y
- Zaczekaj krótką chwilę, aż proces instalacji pakietu zostanie zakończony. Po pomyślnym zainstalowaniu, możesz przejść do kolejnej komendy, którą wykonasz w wierszu poleceń.
sudo apt-get install iperf3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
iperf3
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/28.4 kB of archives.
After this operation, 56.3 kB of additional disk space will be used.
Selecting previously unselected package iperf3.
(Reading database ... 76055 files and directories currently installed.)
Preparing to unpack .../iperf3_3.9-1+deb11u1_arm64.deb ...
Unpacking iperf3 (3.9-1+deb11u1) ...
Setting up iperf3 (3.9-1+deb11u1) ...
Processing triggers for man-db (2.9.4-2) ...
- Aby sprawdzić wersję pakietu, wywołaj komendę:
iperf3 --version
- Na moim przykładzie wygląda to następująco:
iperf 3.9 (cJSON 1.7.13)
Linux rec-rsp01 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64
Optional features available: CPU affinity setting, IPv6 flow label, SCTP, TCP congestion algorithm setting, sendfile / zerocopy, socket pacing, authentication
Jak zmierzyć przepustowść za pomocą iPerf3 na Raspberry Pi
Serwer
- Aby sprawdzić przepustowość między dwoma urządzeniami, na pierwszym Raspberry Pi które będzie pełniło rolę serwera, użyj poniższej komendy do uruchomienia aplikacji:
iperf3 -s -p 11111
- Po wywołaniu nasłuchiwania na serwerze, otrzymasz komunikat:
iperf3 -s -p 11111
-----------------------------------------------------------
Server listening on 11111
-----------------------------------------------------------
Klient
- Teraz na drugim Raspberry Pi, które pełnić będzie rolę klienta, użyj poniższej komendy do uruchomienia pomiaru:
iperf3 -c IP_DRUGIEGO_RASPBERRY_PI -p 11111
- Po pomyślnym zestawieniu połączenia pomiędzy serwerem, a klientem – rozpocznie się pomiar. Rezultat powinien wyglądać podobnie jak poniżej:
Connecting to host XXX.XXX.XXX.XXX, port 11111
[ 5] local XXX.XXX.XXX.XXX port 38668 connected to XXX.XXX.XXX.XXX port 11111
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 101 MBytes 851 Mbits/sec 0 573 KBytes
[ 5] 1.00-2.00 sec 93.3 MBytes 783 Mbits/sec 0 601 KBytes
[ 5] 2.00-3.00 sec 83.8 MBytes 703 Mbits/sec 0 826 KBytes
[ 5] 3.00-4.00 sec 97.5 MBytes 818 Mbits/sec 0 826 KBytes
[ 5] 4.00-5.00 sec 93.8 MBytes 786 Mbits/sec 0 872 KBytes
[ 5] 5.00-6.00 sec 97.5 MBytes 818 Mbits/sec 0 1004 KBytes
[ 5] 6.00-7.00 sec 95.0 MBytes 797 Mbits/sec 0 1.03 MBytes
[ 5] 7.00-8.00 sec 98.8 MBytes 827 Mbits/sec 29 812 KBytes
[ 5] 8.00-9.00 sec 85.0 MBytes 714 Mbits/sec 0 812 KBytes
[ 5] 9.00-10.00 sec 100 MBytes 839 Mbits/sec 0 812 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 946 MBytes 794 Mbits/sec 29 sender
[ 5] 0.00-10.04 sec 943 MBytes 788 Mbits/sec receiver
iperf Done.
Zmiana warunku wyświetlania przepustowości
- Możemy zmienić sposób wyświetlania rezultatów w kolumnie Bitrate korzystając z przełącznika –f – dostępne opcje: K (Kbps), M(Mbps), G (Gbps) oraz T (Tbps). Przykładowo dla wyniku pomiaru w Kbps – raport pomiaru wyjdzie następująco:
iperf3 -c XXX.XXX.XXX.XXX -p 11111 -f k
Connecting to host XXX.XXX.XXX.XXX, port 11111
[ 5] local XXX.XXX.XXX.XXX port 38668 connected to XXX.XXX.XXX.XXX port 11111
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 89.2 MBytes 747852 Kbits/sec 0 503 KBytes
[ 5] 1.00-2.00 sec 91.7 MBytes 768921 Kbits/sec 0 559 KBytes
[ 5] 2.00-3.00 sec 99.6 MBytes 835087 Kbits/sec 0 745 KBytes
[ 5] 3.00-4.00 sec 93.8 MBytes 786487 Kbits/sec 0 783 KBytes
[ 5] 4.00-5.00 sec 95.0 MBytes 796908 Kbits/sec 0 1.08 MBytes
[ 5] 5.00-6.00 sec 92.5 MBytes 775914 Kbits/sec 0 1.08 MBytes
[ 5] 6.00-7.00 sec 92.5 MBytes 775956 Kbits/sec 0 1.13 MBytes
[ 5] 7.00-8.00 sec 91.2 MBytes 765473 Kbits/sec 0 1.13 MBytes
[ 5] 8.00-9.00 sec 102 MBytes 859814 Kbits/sec 0 1.13 MBytes
[ 5] 9.00-10.00 sec 91.2 MBytes 765477 Kbits/sec 0 1.13 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 939 MBytes 787789 Kbits/sec 0 sender
[ 5] 0.00-10.04 sec 936 MBytes 782272 Kbits/sec receiver
iperf Done.
Dodatkowe źródła i informacje
- iPerf3 User Documentation – Command line options: https://iperf.fr/iperf-doc.php#3doc
Przeczytaj także
- UniFi Controller w Dockerze: Migracja do UniFi Network Application
- Home Assistant: Instalacja oświetlenia lustra na ESPHome
- Jak wykonać test prędkości Internetu na Raspberry Pi
- ADS-B: Instalacja i konfiguracja odbiornika na Raspberry Pi
- Traccar: Przewodnik instalacji na Synology w Dockerze
- Traccar: Konfiguracja komunikacji z GPSem w Dockerze
Dodaj komentarz