iperf je nástroj používaný pro testování výkonu sítě mezi dvěma systémy. Aplikace iperf poskytuje více metrik pro výkon sítě. Aplikace iperf není standardně nainstalována, ale poskytuje ji správce balíčků většiny distribucí.
Pro systémy CentOS/RHEL/Fedora použijte k instalaci balíčku iperf yum.
# yum install iperf
iperf má pojem „klient“ a „server“ pro testování propustnosti sítě mezi dvěma systémy.
Následující příklad nastavuje velkou velikost vyrovnávací paměti pro odesílání a přijímání, aby se maximalizovala propustnost, a provádí test po dobu 60 sekund, což by mělo být dostatečně dlouhé, aby bylo možné plně využít síť.
Server
V systému serveru je iperf řečeno, aby naslouchal připojení klienta:
server # iperf3 -i 10 -s
Zde,
-i – interval poskytování pravidelných aktualizací šířky pásma
-s – poslouchat jako server
Další informace o konkrétních přepínačích příkazového řádku naleznete v man iperf3.
Klient
Na klientském systému je iperf řečeno, aby se připojil k naslouchajícímu serveru prostřednictvím názvu hostitele nebo IP adresy:
client # iperf3 -i 10 -w 1M -t 60 -c [server hostname or ip address]
Zde,
-i – interval poskytování pravidelných aktualizací šířky pásma
-w – velikost vyrovnávací paměti soketu (která ovlivňuje okno TCP). Velikost vyrovnávací paměti se také nastavuje na serveru tímto klientským příkazem
-t – čas pro provedení testu v sekundách
-c – připojte se k naslouchajícímu serveru na…
Další informace o konkrétních přepínačích příkazového řádku naleznete v man iperf3.
Výsledky testu
Jakmile je test dokončen, klient i server hlásí své výsledky:
Server
server # iperf3 -i 10 -s ----------------------------------------------------------- Server listening on 5201 ----------------------------------------------------------- Accepted connection from 10.0.0.2, port 22216 [ 5] local 10.0.0.1 port 5201 connected to 10.0.0.2 port 22218 [ ID] Interval Transfer Bandwidth [ 5] 0.00-10.00 sec 17.5 GBytes 15.0 Gbits/sec [ 5] 10.00-20.00 sec 17.6 GBytes 15.2 Gbits/sec [ 5] 20.00-30.00 sec 18.4 GBytes 15.8 Gbits/sec [ 5] 30.00-40.00 sec 18.0 GBytes 15.5 Gbits/sec [ 5] 40.00-50.00 sec 17.5 GBytes 15.1 Gbits/sec [ 5] 50.00-60.00 sec 18.1 GBytes 15.5 Gbits/sec [ 5] 60.00-60.04 sec 82.2 MBytes 17.3 Gbits/sec - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth [ 5] 0.00-60.04 sec 0.00 Bytes 0.00 bits/sec sender [ 5] 0.00-60.04 sec 107 GBytes 15.3 Gbits/sec receiver
Klient
client # iperf3 -i 10 -w 1M -t 60 -c 10.0.0.1 Connecting to host 10.0.0.1, port 5201 [ 4] local 10.0.0.2 port 22218 connected to 10.0.0.1 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-10.00 sec 17.6 GBytes 15.1 Gbits/sec 0 6.01 MBytes [ 4] 10.00-20.00 sec 17.6 GBytes 15.1 Gbits/sec 0 6.01 MBytes [ 4] 20.00-30.00 sec 18.4 GBytes 15.8 Gbits/sec 0 6.01 MBytes [ 4] 30.00-40.00 sec 18.0 GBytes 15.5 Gbits/sec 0 6.01 MBytes [ 4] 40.00-50.00 sec 17.5 GBytes 15.1 Gbits/sec 0 6.01 MBytes [ 4] 50.00-60.00 sec 18.1 GBytes 15.5 Gbits/sec 0 6.01 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-60.00 sec 107 GBytes 15.4 Gbits/sec 0 sender [ 4] 0.00-60.00 sec 107 GBytes 15.4 Gbits/sec receiver
Čtení výsledků
Mezi těmito dvěma systémy bychom mohli dosáhnout šířky pásma 15,4 gigabitů za sekundu nebo přibližně 1835 MiB (mebibajtů) za sekundu.
Zde
Interval znamená testovací interval, výchozí hodnota je 10 sekund a zobrazuje se jako „0,0–10,0 s“
Přenos znamená, kolik dat se v procesu testování přenese mezi dvěma uzly.
Šířka pásma je ukazatel výkonu, pro který používáme testování iperf.
Testování výkonu sítě pomocí protokolu UDP
Výchozí iperf používá pro testování protokol TCP, jak je uvedeno výše. Přidejte možnost „-u ” pro použití protokolu UDP pro testování výkonu.
1. Prvním krokem je spuštění serveru.
# iperf -s -u ------------------------------------------------------------ Server listening on UDP port 5001 Receiving 1470 byte datagrams UDP buffer size: 124 KByte (default) ------------------------------------------------------------ [ 3] local 1.1.1.1 port 5001 connected with 1.1.1.2 port 51598 [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.004 ms 0/ 893 (0%)
2. Příkaz na straně klienta je uveden níže.
# iperf -u -c server ------------------------------------------------------------ Client connecting to 1.1.1.1, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 124 KByte (default) ------------------------------------------------------------ [ 3] local 1.1.1.2 port 51598 connected with 1.1.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec [ 3] Sent 893 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.25 MBytes 1.05 Mbits/sec 0.004 ms 0/ 893 (0%)
Změna výchozí šířky pásma v režimu UDP
V režimu UDP klient používá výchozí šířku pásma (1 Mbit/s) k odesílání paketů na server, takže můžeme vidět, že výsledek testování UDP je 1,05 Mbit/s. Abychom získali nejlepší šířku pásma sítě, můžeme přidat možnost „-b value ” pro zvýšení šířky pásma odesílání:
# iperf -u -c server -b 1000M ------------------------------------------------------------ Client connecting to 1.1.1.1, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 124 KByte (default) ------------------------------------------------------------ [ 3] local 1.1.1.2 port 58097 connected with 1.1.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 1.10 GBytes 948 Mbits/sec [ 3] Sent 806540 datagrams [ 3] Server Report: [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 3] 0.0-10.0 sec 1.08 GBytes 929 Mbits/sec 0.010 ms 16203/806540 (2%)
Měření maximální přenosové velikosti (MTU)
Volba -m dává iperf pokyn, aby také našel maximální velikost přenosu (MTU):
# iperf -mc 192.168.10.12 ------------------------------------------------------------ Client connecting to 192.168.10.12, TCP port 5001 TCP window size: 19.3 KByte (default) ------------------------------------------------------------ [ 3] local 192.168.10.13 port 46558 connected with 192.168.10.12 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 113 MBytes 94.7 Mbits/sec [ 3] MSS size 1448 bytes (MTU 1500 bytes, ethernet)