Das iperf ist ein Tool zum Testen der Netzwerkleistung zwischen zwei Systemen. Die iperf-Anwendung bietet mehr Metriken für die Leistung eines Netzwerks. Die iperf-Anwendung wird nicht standardmäßig installiert, aber sie wird vom Paketmanager der meisten Distributionen bereitgestellt.
Für CentOS/RHEL/Fedora-Systeme verwenden Sie yum, um das iperf-Paket zu installieren.
# yum install iperf
iperf hat die Begriffe „Client“ und „Server“ zum Testen des Netzwerkdurchsatzes zwischen zwei Systemen.
Das folgende Beispiel legt eine große Sende- und Empfangspuffergröße fest, um den Durchsatz zu maximieren, und führt einen Test für 60 Sekunden durch, was lang genug sein sollte, um ein Netzwerk vollständig auszulasten.
Server
Auf dem Serversystem wird iperf angewiesen, auf eine Clientverbindung zu warten:
server # iperf3 -i 10 -s
Hier
-ich – das Intervall zur Bereitstellung regelmäßiger Bandbreitenaktualisierungen
-s – als Server lauschen
Weitere Informationen zu bestimmten Befehlszeilenschaltern finden Sie in man iperf3.
Kunde
Auf dem Client-System wird iperf angewiesen, sich über den Hostnamen oder die IP-Adresse mit dem lauschenden Server zu verbinden:
client # iperf3 -i 10 -w 1M -t 60 -c [server hostname or ip address]
Hier
-ich – das Intervall zur Bereitstellung regelmäßiger Bandbreitenaktualisierungen
-w – die Socket-Puffergröße (die das TCP-Fenster beeinflusst). Die Puffergröße wird auch auf dem Server durch diesen Client-Befehl festgelegt
-t – die Zeit zum Ausführen des Tests in Sekunden
-c – Verbinden Sie sich mit einem lauschenden Server unter …
Weitere Informationen zu bestimmten Befehlszeilenschaltern finden Sie in man iperf3.
Testergebnisse
Sowohl der Client als auch der Server melden ihre Ergebnisse, sobald der Test abgeschlossen ist:
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
Kunde
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
Lesen der Ergebnisse
Zwischen diesen beiden Systemen konnten wir eine Bandbreite von 15,4 Gigabit pro Sekunde oder ungefähr 1835 MiB (Mebibyte) pro Sekunde erreichen.
Hier
Intervall bedeutet das Testintervall, der Standardwert ist 10 Sekunden und wird als „0,0-10,0 Sek.“ angezeigt
Übertragung bedeutet, wie viele Daten während des Testvorgangs zwischen den beiden Knoten übertragen werden.
Bandbreite ist der Leistungsindikator, für den wir iperf-Tests verwenden.
Testen der Netzwerkleistung mit dem UDP-Protokoll
Das Standard-iperf verwendet das TCP-Protokoll zum Testen, wie oben gezeigt. Option „-u hinzufügen “, um das UDP-Protokoll für Leistungstests zu verwenden.
1. Der erste Schritt besteht darin, den Server zu starten.
# 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. Der Befehl auf der Client-Seite ist wie unten gezeigt.
# 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%)
Ändern der Standardbandbreite im UDP-Modus
Im UDP-Modus verwendet der Client die Standardbandbreite (1 Mbit/s), um die Pakete an den Server zu senden, sodass wir sehen können, dass das Testergebnis für die Bandbreite des UDP 1,05 Mbit/s beträgt. Um die beste Netzwerkbandbreite zu erhalten, können wir die Option „-b value hinzufügen ” um die Sendebandbreite zu erhöhen:
# 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%)
Messen der maximalen Übertragungsgröße (MTU)
Die Option -m weist iperf an, auch die maximale Übertragungsgröße (MTU) zu finden:
# 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)