samouczek iperf3: Testowanie prędkości sieci w systemach Linux i Windows
10 min czytania - 7 maja 2026

Zainstaluj iperf3, uruchom testy przepustowości i dostrój bufory TCP, aby uzyskać dokładne wyniki w systemach Linux i Windows. Obejmuje testy UDP, dwukierunkowe i 10GbE+
Samouczek iperf3: Pomiar wydajności sieci w systemach Linux i Windows
iperf3 to narzędzie wiersza poleceń służące do pomiaru przepustowości sieci, jittera i utraty pakietów między dwoma komputerami. Wykorzystuje model klient-serwer: jeden komputer nasłuchuje, drugi wysyła ruch, a użytkownik otrzymuje precyzyjne dane dotyczące przepustowości. Niniejszy przewodnik obejmuje instalację, testy podstawowe i zaawansowane oraz sposób dostrojenia systemu w celu uzyskania dokładnych wyników w przypadku łączy o dużej prędkości.
Instalacja iperf3
Debian / Ubuntu
sudo apt update
sudo apt install iperf3
Potwierdź instalację za pomocą iperf3 --version. Zainstaluj go zarówno na serwerze, jak i na komputerach klienckich.
Fedora / CentOS / Rocky / Alma
W systemach Fedora 22+ lub CentOS 8+, Rocky lub AlmaLinux:
sudo dnf install iperf3
W systemie CentOS 7 użyj yum . Jeśli pakiet nie zostanie znaleziony, najpierw włącz repozytorium EPEL:
sudo yum install epel-release
sudo yum install iperf3
Jeśli zapora sieciowa jest aktywna, otwórz port 5201:
sudo firewall-cmd --add-port=5201/tcp --permanent
sudo firewall-cmd --reload
Windows
Pobierz samodzielny plik wykonywalny ze strony iperf.fr lub z repozytorium GitHub ar51an/iperf3-win-builds. Rozpakuj go do folderu o nazwie C:\iperf3, a następnie sprawdź:
cd C:\iperf3
iperf3.exe -v
Aby uruchomić iperf3 z dowolnego katalogu, dodaj folder do ścieżki systemowej PATH poprzez Właściwości systemu > Zaawansowane > Zmienne środowiskowe. Konieczne będzie również utworzenie reguły zapory przychodzącej zezwalającej na TCP na porcie 5201 w zaporze Windows Defender.
Konfiguracja serwera
Uruchom serwer za pomocą:
iperf3 -s
Domyślnie nasłuchuje on na porcie TCP 5201. Aby uruchomić go w tle z rejestrowaniem:
iperf3 -s -D --logfile /var/log/iperf3.log
Sprawdź, czy działa, wpisując ss -tulpn | grep 5201.
Jeśli port 5201 jest zablokowany w Twojej sieci, użyj -p , aby wybrać inny port. Aby powiązać serwer z konkretnym interfejsem, użyj -B:
iperf3 -s -B 192.168.1.10
W przypadku jednorazowych testów iperf3 -s -1 obsługuje połączenie z jednym klientem, a następnie się zamyka. W przypadku łączy o dużej przepustowości (40 Gbps+) uruchom wiele instancji serwera na różnych portach, aby obejść ograniczenia jednowątkowego procesora.
Upewnij się, że zapora sieciowa zezwala na ruch na wybranym porcie. W systemie Ubuntu/Debian z UFW:
sudo ufw allow 5201/tcp
sudo ufw allow 5201/udp # if testing UDP
Przeprowadzanie testów klienta
Podstawowy test TCP
iperf3 -c 192.168.1.10
Mierzy przepustowość wysyłania przez TCP przez 10 sekund. Wydłuż czas trwania o -t:
iperf3 -c 192.168.1.10 -t 30
W przypadku łączy 10 Gb/s lub 25 Gb/s pojedynczy strumień TCP często osiąga maksymalną prędkość 3–5 Gb/s ze względu na ograniczenia jednordzeniowego procesora. Aby nasycić łącze, należy użyć strumieni równoległych:
iperf3 -c 192.168.1.10 -P 8
Odczyt wyników
Każda linia przedziału pokazuje transfer (wysłane dane) i przepływność (przepustowość). W przypadku TCP należy również zwrócić uwagę na:
- Retr (retransmisje). Wysokie wartości oznaczają utratę pakietów lub przeciążenie.
- Cwnd (okno przeciążenia). Jeśli jest niskie lub utknęło, ograniczenia rozmiaru bufora lub okna ograniczają przepustowość.
W przypadku czystego łącza 1 Gb/s można spodziewać się około 940 Mb/s po uwzględnieniu obciążenia protokołu. Test kończy się wierszami podsumowującymi nadawcę i odbiorcę. W stabilnej sieci powinny one być bardzo zbliżone.
W przypadku testów UDP (-u flag), wynik zawiera dodatkowo jitter (zmienność czasu przybycia pakietów) oraz liczbę utraconych i wszystkich datagramów. Jitter poniżej 1 ms i 0% utraty są idealne dla ruchu w czasie rzeczywistym, takiego jak VoIP.
Przydatne flagi
| Flaga | Cel |
|---|---|
-c <IP> | Połącz z serwerem |
-p <port> | Użyj określonego portu (domyślnie: 5201) |
-t <sec> | Czas trwania testu w sekundach (domyślnie: 10) |
-i <sec> | Interwał raportowania |
-P <num> | Strumienie równoległe |
-u | Tryb UDP |
-b <n>M | Docelowa przepustowość (UDP; domyślnie 1 Mb/s, jeśli nie podano) |
-R | Tryb odwrotny (serwer wysyła, klient odbiera) |
-w <n>K | Rozmiar okna TCP / bufora gniazda |
-J | Wyjście JSON |
-Z | Zerocopy (zmniejsza obciążenie procesora na szybkich łączach) |
Testy zaawansowane
Testy dwukierunkowe
Flaga --bidir (iperf3 3.7+) testuje jednocześnie wysyłanie i pobieranie danych:
iperf3 -c 192.168.1.10 --bidir
Oba połączenia pochodzą od klienta, więc działa to przez NAT bez otwierania dodatkowych portów. Jeśli wyniki testów dwukierunkowych są znacznie niższe niż testów jednokierunkowych, Twój router lub modem kablowy może mieć problemy z ruchem w trybie pełnego dupleksu.
Tryb odwrotny
Flaga -R flaga odwraca przepływ danych, tak aby serwer wysyłał, a klient odbierał. Pozwala to zmierzyć prędkość pobierania bez zamiany ról:
iperf3 -c 192.168.1.10 -t 30 -i 5 -R
Duże różnice między wynikami w trybie forward i reverse wskazują na asymetryczne ścieżki, przeciążenie lub błędną konfigurację bufora.
Testy UDP
Testy UDP ujawniają wahania (jitter) i utratę pakietów, które protokół TCP ukrywa za ponownymi transmisjami. Zawsze należy ustawić docelową przepustowość za pomocą -b, ponieważ iperf3 domyślnie ustawia 1 Mbps dla UDP:
iperf3 -c 192.168.1.10 -u -b 1G
Aby zasymulować ruch VoIP (100 połączeń, pakiety 200-bajtowe):
iperf3 -c 192.168.1.10 -u -b 8M -l 200
Wskaźniki jakości: zniekształcenia poniżej 5 ms są dobre dla VoIP, powyżej 30 ms powodują słyszalne problemy. Utrata pakietów powyżej 0,1% zauważalnie pogarsza jakość mediów w czasie rzeczywistym.
Optymalizacja i rozwiązywanie problemów
Typowe problemy
Osiągasz tylko 100 Mb/s na łączu gigabitowym? Sprawdź prędkość fizycznego interfejsu za pomocą ethtool eth0. Negocjacja automatyczna czasami kończy się niepowodzeniem i obniża prędkość łącza.
MSS pokazuje 536 bajtów w sieci Ethernet? Prawdopodobnie wyłączono funkcję Path MTU Discovery. Domyślna wartość MSS dla MTU wynoszącego 1500 bajtów to 1460 bajtów. Użyj -m podczas testów, aby to sprawdzić. MSS wynoszący 536 bajtów marnuje przepustowość i zwiększa obciążenie.
Procesor osiąga maksymalne obciążenie na szybkich łączach? Użyj -Z (zerocopy), aby zmniejszyć obciążenie procesora. W przypadku łączy 40 Gb/s i szybszych uruchom wiele instancji serwera na różnych portach i rozdziel je na rdzenie procesora.
Niespójne wyniki? Użyj -O 3 , aby pominąć pierwsze kilka sekund, podczas których okno przeciążenia TCP się zwiększa. Pozostaw 30 sekund między kolejnymi testami, aby wyczyścić bufory sieciowe.
Pojedynczy strumień znacznie wolniejszy niż połączone strumienie równoległe? Jeśli jeden strumień osiąga 200 Mb/s, ale osiem strumieni łącznie osiąga 1,6 Gb/s, okno TCP lub bufory systemu operacyjnego ograniczają ten pojedynczy strumień. Dostosuj poniższe bufory.
Dostosowanie bufora TCP
Zacznij od obliczenia iloczynu przepustowości i opóźnienia (BDP): przepustowość x RTT. Łącze 10 Gb/s z RTT wynoszącym 50 ms daje BDP na poziomie 62,5 MB. Ustaw maksymalny bufor na co najmniej dwukrotność wartości BDP.
Dodaj te wartości do /etc/sysctl.d/99-tcp-tuning.conf i zastosuj z sudo sysctl -p:
| Parametr | Zalecane (1–10 Gb/s) |
|---|---|
net.core.rmem_max | 134217728 (128 MB) |
net.core.wmem_max | 134217728 (128 MB) |
net.ipv4.tcp_rmem | 4096 131072 134217728 |
net.ipv4.tcp_wmem | 4096 131072 134217728 |
net.core.default_qdisc | fq |
net.ipv4.tcp_congestion_control | bbr |
Ustaw net.ipv4.tcp_moderate_rcvbuf ustawione na 1, aby jądro automatycznie dostosowywało się w tych zakresach. Włącz net.ipv4.tcp_window_scaling (ustaw na 1) dla okien TCP większych niż 64 KB.
Można również przełączyć się z domyślnego algorytmu przeciążeniowego CUBIC na algorytm BBR firmy Google. W przypadku łączy o dużym opóźnieniu z pewną utratą pakietów BBR konsekwentnie zapewnia wyższą przepustowość niż CUBIC.
Użyj -w w iperf3, aby przetestować konkretne rozmiary bufora, ale pamiętaj, że nie mogą one przekraczać wartości rmem_max lub wmem_max. Zacznij od 8 MB dla łączy gigabitowych, 512 KB dla 100 Mb/s.
Jeśli wdrażasz serwery dedykowane i chcesz zweryfikować wydajność sieci, uruchom testy porównawcze iperf3 zaraz po konfiguracji oraz po każdej zmianie w sieci, aby wcześnie wykryć regresję.
Rekomendacja wideo
Dlaczego ważne jest posiadanie wydajnego i niezmierzonego serwera VPS?
Potrzebujesz niezawodnej wydajności i nieograniczonego ruchu? Potężny, nielimitowany serwer VPS oferuje szybkość, skalowalność i przepustowość, których potrzebujesz, bez martwienia się o limity użytkowania.
3 min czytania - 9 maja 2025
Jak zoptymalizować przestrzeń dyskową w systemie Linux
15 min czytania - 22 maja 2026

Masz pytania lub potrzebujesz niestandardowego rozwiązania?
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie
Elastyczne opcje
Globalny zasięg
Natychmiastowe wdrożenie