AktualnościPorady Admina

Porady Admina: iperf

Dzisiejszy tutorial z cyklu Porady Admina poświęcony jest aplikacji iperf.

iperf to narzędzie testowe, które wykonuje pomiary ruchu sieciowego za pomocą gniazd sieciowych. Obsługiwane metryki wydajności obejmują przepustowość i opóźnienie (lub przepustowość łącza i responsywność). Pomiary opóźnień obejmują zarówno opóźnienie jednokierunkowe (OWD), jak i czasy obiegu (RTT). Iperf może korzystać zarówno z gniazd (lub protokołów) TCP, jak i UDP. Obsługuje ruch jednokierunkowy, pełnodupleksowy (to samo gniazdo) i dwukierunkowy oraz wiele jednoczesnych strumieni ruchu. Obsługuje ruch multicastowy, w tym połączenia multicastowe ze źródłem (SSM).

Jego wielowątkowa konstrukcja zapewnia maksymalną wydajność. Wyświetlane metryki pomagają scharakteryzować wydajność sieci host-host. Ustawienie opcji rozszerzonej (-e) udostępnia wszystkie dostępne metryki. Uwaga: metryki dotyczą odczytów i zapisów na poziomie gniazda. Nie uwzględniają one narzutu związanego z nagłówkami warstwy protokołu niższego poziomu.

Aby test się odbył, użytkownik musi skonfigurować zarówno serwer (do odbierania ruchu), jak i klienta (do generowania i wysyłania ruchu). Klient i serwer zazwyczaj znajdują się na różnych hostach lub komputerach, ale nie jest to konieczne.

Funkcje
– Pomiar przepustowości, utraty pakietów i jittera opóźnienia
– Raportowanie rozmiaru MSS/MTU i obserwowanych rozmiarów odczytu.
– Obsługa rozmiaru okna TCP poprzez bufory gniazd.
– Wielowątkowość. Klient i serwer mogą mieć wiele jednoczesnych połączeń.
– Klient może tworzyć strumienie UDP o określonej przepustowości.
– Obsługa multicastu i IPv6.
– Opcje można określić za pomocą K (kilo-) i M (mega-).
– Możliwość działania przez określony czas, zamiast określonej ilości danych do przesłania.
– Wybieranie najlepszych jednostek dla rozmiaru raportowanych danych.
– Serwer obsługuje wiele połączeń.
– Drukowanie okresowych, pośrednich raportów dotyczących przepustowości, jittera i strat w określonych odstępach czasu.
– Serwer może działać jako demon.
– Używanie reprezentatywnych strumieni do testowania, jak kompresja warstwy łącza wpływa na osiągalną przepustowość.

Składnia
iperf [-s|-c host] [opcje]

Opcje Klient/Serwer
-b, –bandwidth #[kmgKMG | [pps] : przepustowość do odczytu/wysyłania w bitach/s lub pakietach/s
-e, –enhanced : użyj rozszerzonego raportowania, aby uzyskać więcej informacji o protokole TCP/UDP i ruchu
-f, –format [kmgKMG] : format raportowania: kb/s, Mb/s, KB/s, MB/s
–hide-ips : ukryj adresy IP i nazwy hostów w wynikach
–histograms : włącz histogramy (więcej informacji w sekcji „klient” lub „serwer”)
-i, –interval # : sekundy między okresowymi raportami przepustowości
-l, –len #[kmKM] : długość bufora w bajtach do odczytu lub zapisu (domyślnie: TCP=128 KB, v4 UDP=1470, v6 UDP=1450)
-m, –print_mss : wyświetl maksymalny rozmiar segmentu TCP
-o, –output : wyślij raport lub komunikat o błędzie do określonego pliku
-p, –port # : port klienta/serwera do nasłuchiwania/wysyłania i łączenia się
–permit-key : zezwala na użycie klucza do weryfikacji klienta i serwera (tylko TCP)
–tcp-tx-delay : ustawia opcję gniazda TCP_TX_DELAY (jednostką jest milisekunda)
–sum-only : wyświetla tylko raporty sumaryczne
-u, –udp : używa UDP zamiast TCP
–utc : używa uniwersalnego czasu koordynowanego (UTC) z wyjściem czasowym
-w, –window #[KM] : Rozmiar okna TCP (rozmiar bufora gniazda)
-z, –realtime : harmonogram żądania w czasie rzeczywistym
-B, –bind [:][%] : powiązanie z , adresem IP (w tym adresem multicast) oraz opcjonalnym portem i urządzeniem
-C, –compatibility : do użytku ze starszymi wersjami nie wysyła dodatkowych wiadomości
–NUM_REPORT_STRUCTS : zwiększa pamięć współdzieloną między wątkami ruchu a wątkiem raportującym (domyślnie 10 000 wpisów)
-M, –mss # : ustawia maksymalny rozmiar segmentu TCP za pomocą TCP_MAXSEG
-N, –nodelay : ustaw brak opóźnienia TCP, wyłączając algorytm Nagle’a
-S, –tos # ustaw pole IP_TOS (bajt) gniazda
-Z, –tcp-congestion : ustaw algorytm kontroli przeciążenia TCP (tylko Linux)

Przykłady

iperf działa zarówno z klientem, jak i serwerem, więc musimy uruchomić serwer przed uruchomieniem klienta:
iperf -s

Zainicjuj klienta za pomocą polecenia:
iperf -c 192.168.0.111 -u 100

Gdzie:
– c oznacza tryb klienta.
– 192.168.0.111 oznacza adres IP serwera, z którym ma zostać połączony klient.
– u oznacza generowanie pakietów UDP.
– 100 oznacza długość danych UDP.

Więcej informacji o programie iperf uzyskasz wpisując:
man iperf
iperf --help

Click to rate this post!
[Total: 0 Average: 0]

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.

Accessibility Toolbar