2.8 iPerf3 – Bandbreite, Durchsatz, Jitter und Paketverlust messen
Ziel dieser Seite
iPerf3 erzeugt kontrollierten Netzwerkverkehr zwischen zwei Systemen und misst dabei die erreichbare Übertragungsleistung. Es hilft unter anderem bei der Untersuchung von:
- zu geringem TCP-Durchsatz;
- langsamen LAN-, WLAN-, VPN- oder WAN-Verbindungen;
- unterschiedlichen Übertragungsraten je Richtung;
- UDP-Paketverlust;
- UDP-Jitter;
- Performanceproblemen zwischen VLANs oder Standorten;
- möglichen Engpässen an Netzwerkadaptern, Firewalls oder VPN-Gateways;
- Auswirkungen von Parallelverbindungen;
- Unterschieden zwischen Anwendungs- und Netzwerkleistung.
iPerf3 besteht aus einem Server und einem Client:
iPerf3-Client → Netzwerkpfad → iPerf3-Server
Standardmäßig sendet der Client TCP-Testdaten an den Server. Mit -R wird die Richtung umgekehrt.
Wichtig: iPerf3 erzeugt aktiv Datenverkehr und kann eine Netzwerkverbindung vollständig auslasten. Tests dürfen nur zwischen autorisierten Systemen und mit abgestimmter Testdauer und Datenrate durchgeführt werden.
Kennzeichnungen
| Kennzeichnung | Bedeutung |
|---|---|
[RO] |
Lokale Abfrage ohne Netzwerktest |
[TEST] |
Aktiver Netzwerk- oder Leistungstest |
[PRIV] |
Erhöhte Berechtigungen können erforderlich sein |
[FILE] |
Befehl erstellt oder verarbeitet eine Datei |
[SENS] |
Ausgabe kann sensible Infrastrukturinformationen enthalten |
[CHANGE] |
Befehl verändert eine Einstellung oder Datei |
[DISRUPT] |
Test kann Netzwerk, Endgeräte oder andere Verbindungen belasten |
1. Was misst iPerf3 – und was misst es nicht?
Messumfang anzeigen
| Messwert | TCP | UDP |
|---|---|---|
| Übertragene Datenmenge | Ja | Ja |
| Durchschnittlicher Durchsatz | Ja | Ja |
| Durchsatz je Messintervall | Ja | Ja |
| TCP-Wiederholungsübertragungen | Systemabhängig, häufig auf Senderseite | Nein |
| TCP Congestion Window | Systemabhängig | Nein |
| UDP-Jitter | Nein | Ja |
| UDP-Paketverlust | Nein | Ja |
| Verlorene Datagramme | Nein | Ja |
| Empfangene Datagramme | Nein | Ja |
| Reihenfolgefehler | Teilweise über UDP-Zähler erkennbar | Ja |
iPerf3 misst den Durchsatz zwischen den beiden iPerf3-Prozessen. Das Ergebnis ist nicht automatisch identisch mit:
- der Leitungsgeschwindigkeit des Netzwerkadapters;
- der Brutto-Datenrate eines WLANs;
- der Geschwindigkeit eines Internetanschlusses;
- der Geschwindigkeit einer Dateiübertragung;
- der Leistung einer Webanwendung;
- der Festplattenleistung;
- der nutzbaren Geschwindigkeit für jeden einzelnen Benutzer.
iPerf3 umgeht normalerweise folgende Anwendungsfaktoren
- Dateisystem;
- Festplattenzugriffe;
- SMB- oder NFS-Protokollverarbeitung;
- HTTP-Anwendung;
- Datenbankabfragen;
- Verschlüsselung einer konkreten Anwendung;
- Benutzeranmeldung;
- Virenscan einer übertragenen Datei.
Dadurch kann iPerf3 helfen, Netzwerkpfad und Anwendung voneinander zu trennen:
iPerf3 schnell + Anwendung langsam
→ Ursache wahrscheinlich nicht ausschließlich der reine Netzwerkdurchsatz
iPerf3 langsam + Anwendung langsam
→ Netzwerkpfad oder beteiligte Systeme weiter untersuchen
2. Auf welchen Betriebssystemen wird iPerf3 offiziell unterstützt?
Betriebssystemübersicht anzeigen
| Betriebssystem | Offizielle ESnet-Unterstützung | Hinweis |
|---|---|---|
| Linux | Ja | Vollständiger Haupteinsatzbereich |
| FreeBSD | Ja | Offiziell unterstützt |
| macOS | Ja | In der ESnet-Dokumentation als OSX bezeichnet |
| Windows | Nein | ESnet empfiehlt für Windows iPerf2 |
| Andere Systeme | Nicht generell zugesichert | Funktionsumfang kann abweichen |
Nach der offiziellen ESnet-FAQ wird iPerf3 nicht offiziell unter Windows unterstützt. Es existieren Community-Builds für Windows, bei denen jedoch nicht alle Optionen funktionieren müssen.
Konsequenz für dieses Buch
- Linux, FreeBSD und macOS: iPerf3 nach offizieller ESnet-Dokumentation;
- Windows mit Community-iPerf3: Version, Quelle und Funktionsumfang ausdrücklich dokumentieren;
- Windows mit offiziell unterstützter Alternative: iPerf2 verwenden;
- iPerf2 und iPerf3 nicht als untereinander kompatibel behandeln.
Ein iPerf3-Client benötigt einen iPerf3-Server. Ein iPerf2-Client benötigt einen iPerf2-Server.
3. Wie wird die installierte Version geprüft?
Versions- und Hilfebefehle anzeigen
| Aufgabe | Windows mit Community-Build | Linux | macOS |
|---|---|---|---|
| Programmpfad | [RO] Get-Command iperf3 |
[RO] command -v iperf3 |
[RO] command -v iperf3 |
| Version | [RO] iperf3 --version |
[RO] iperf3 --version |
[RO] iperf3 --version |
| Kurzform der Version | [RO] iperf3 -v |
[RO] iperf3 -v |
[RO] iperf3 -v |
| Hilfe | [RO] iperf3 -h |
[RO] iperf3 -h |
[RO] iperf3 -h |
| Handbuch | Nicht standardmäßig | [RO] man iperf3 |
[RO] man iperf3 |
Die Version muss auf Client und Server dokumentiert werden:
Client: iPerf 3.x
Server: iPerf 3.x
Unterschiedliche iPerf3-Versionen funktionieren häufig miteinander, können aber:
- unterschiedliche Optionen unterstützen;
- Ergebnisse unterschiedlich darstellen;
- andere Standardwerte verwenden;
- Fehlerkorrekturen enthalten;
- bei neueren Funktionen inkompatibel sein.
Seit iPerf3 3.16 verwendet jeder parallele Teststream einen eigenen Thread. Ältere Versionen waren für den Testdatenverkehr grundsätzlich auf einen Thread begrenzt. Bei hohen Datenraten kann die verwendete Version deshalb das Ergebnis wesentlich beeinflussen.
4. Welche Freigaben müssen vor einem Leistungstest vorliegen?
Testplanung anzeigen
| Punkt | Beispiel |
|---|---|
| Client | 192.0.2.10 |
| Server | 192.0.2.20 |
| Port | TCP/UDP 5201 |
| Testprotokoll | TCP und anschließend UDP |
| Testdauer | 30 Sekunden je Richtung |
| Maximale UDP-Rate | 100 Mbit/s |
| Parallelstreams | Zunächst 1, anschließend 4 |
| Netzwerkpfad | Client-VLAN → Firewall → Server-VLAN |
| Testzeitraum | Wartungsfenster |
| Verantwortliche Person | Max Mustermann |
| Abbruchkriterium | Hohe Last, Paketverlust anderer Anwendungen oder Alarmmeldung |
Vorher prüfen:
- Darf die Verbindung ausgelastet werden?
- Gibt es produktive Sprach-, Video- oder Echtzeitanwendungen?
- Befindet sich der Testpfad hinter einer volumenbasierten Internetabrechnung?
- Gibt es QoS- oder Rate-Limit-Regeln?
- Muss eine Firewallfreigabe zeitlich begrenzt eingerichtet werden?
- Sind Client und Server leistungsfähig genug?
- Gibt es WLAN-Teilnehmer, die durch den Test beeinträchtigt werden?
- Wird der Test über VPN, Mobilfunk oder einen geteilten WAN-Link durchgeführt?
- Sind Monitoring und zuständige Administratoren informiert?
Ein unbegrenzter TCP-Test versucht, so viel Bandbreite wie möglich zu verwenden. Auch ein zehn Sekunden langer Standardtest kann deshalb andere Verbindungen beeinflussen.
5. Welche Netzwerkverbindungen benötigt iPerf3?
Ports und Verbindungsaufbau anzeigen
Der iPerf3-Server lauscht standardmäßig auf Port 5201.
TCP-Test
Client → Server: TCP 5201
UDP-Test
Client → Server: TCP 5201 für Steuerung
Client → Server: UDP 5201 für Testdaten
Auch bei einem UDP-Test verwendet iPerf3 eine TCP-Steuerverbindung. Daher muss neben UDP 5201 auch TCP 5201 erreichbar sein.
Benutzerdefinierter Port
Server:
[TEST][DISRUPT] iperf3 -s -p 5002
Client:
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -p 5002
Für einen UDP-Test auf Port 5002 müssen gegebenenfalls beide Protokolle freigegeben sein:
TCP 5002
UDP 5002
Port vor dem Test prüfen
Windows:
[TEST] Test-NetConnection 192.0.2.20 -Port 5201
Linux:
[TEST] nc -vz 192.0.2.20 5201
macOS:
[TEST] nc -vz 192.0.2.20 5201
Ein erfolgreicher TCP-Porttest bestätigt nur die Steuerverbindung. Er bestätigt noch nicht, dass ein UDP-Testdatenstrom funktioniert.
6. Wie wird ein iPerf3-Server gestartet?
Serverbefehle anzeigen
Server auf dem Standardport 5201 starten
[TEST][DISRUPT] iperf3 -s
Server auf einem anderen Port
[TEST][DISRUPT] iperf3 -s -p 5002
Server an eine bestimmte lokale IP-Adresse binden
[TEST][DISRUPT] iperf3 -s -B 192.0.2.20
Server nur für einen Test starten und danach beenden
[TEST][DISRUPT] iperf3 -s -1
-1 beziehungsweise --one-off bedeutet:
- höchstens eine Clientverbindung bearbeiten;
- danach den Serverprozess beenden.
Das ist für kontrollierte Einzeltests häufig sicherer als ein dauerhaft laufender Server.
Einmaliger Server auf bestimmter Adresse und bestimmtem Port
[TEST][DISRUPT] iperf3 -s -1 -B 192.0.2.20 -p 5201
Ausführliche Ausgabe
[TEST][DISRUPT] iperf3 -s -V
Serverausgabe in eine Datei schreiben
[TEST][FILE][SENS][DISRUPT] iperf3 -s --logfile iperf3-server.log --forceflush
--forceflush schreibt die Intervallergebnisse zeitnah in die Logdatei, statt sie länger zu puffern.
7. Wie wird der laufende Server kontrolliert?
Listener und Prozess prüfen
Linux: Listener prüfen
[RO] ss -lntp | grep ':5201'
macOS: Listener prüfen
[RO][PRIV] sudo lsof -nP -iTCP:5201 -sTCP:LISTEN
Windows mit Community-Build
[RO] Get-NetTCPConnection -LocalPort 5201 -State Listen
Prozess suchen
Linux:
[RO] pgrep -a iperf3
macOS:
[RO] pgrep -fl iperf3
Windows:
[RO] Get-Process iperf3 -ErrorAction SilentlyContinue
Nach dem Test sollte ein nicht mehr benötigter iPerf3-Server beendet werden. Bei Verwendung von -1 beendet er sich nach der Clientverbindung automatisch.
8. Wie wird ein grundlegender TCP-Test durchgeführt?
Standardtest anzeigen
Auf dem Server
[TEST][DISRUPT] iperf3 -s -1
Auf dem Client
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20
Standardmäßig:
- verwendet iPerf3 TCP;
- sendet der Client zum Server;
- dauert der Test zehn Sekunden;
- wird jede Sekunde ein Zwischenergebnis ausgegeben;
- wird Port 5201 verwendet.
Test für 30 Sekunden
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30
Ausgabe alle fünf Sekunden
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -i 5
Einheit Mbit/s erzwingen
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -f m
Serverausgabe zusätzlich am Client abrufen
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 --get-server-output
Die Serverausgabe wird nur abgerufen, wenn der Test vollständig abgeschlossen wird. Bei einem abgebrochenen Test kann sie fehlen.
9. Welche Richtung wird mit iPerf3 gemessen?
Normal-, Reverse- und Bidirektionstest anzeigen
Standardrichtung
Client → Server
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30
Dabei sendet der Client die Testdaten.
Umgekehrte Richtung
Server → Client
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -R
-R wird auf dem Client angegeben, obwohl anschließend der Server die Testdaten sendet.
Beide Richtungen gleichzeitig
Client ↔ Server
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 --bidir
--bidir testet beide Richtungen gleichzeitig. Das erzeugt mehr Last als zwei getrennte Einzeltests und erschwert die Interpretation.
Empfohlene Reihenfolge
- Client zum Server testen.
- Server zum Client mit
-Rtesten. - Ergebnisse vergleichen.
- Erst bei begründetem Bedarf
--bidirverwenden.
Mögliche Ursachen für unterschiedliche Richtungen
- asymmetrisches Routing;
- unterschiedliche QoS-Regeln;
- Firewall- oder VPN-Verarbeitung;
- WLAN-Uplink und WLAN-Downlink;
- Sender- oder Empfänger-CPU;
- Netzwerkkartentreiber;
- TCP-Offloading;
- unterschiedliche Upload- und Downloadkapazität;
- unterschiedliche Paketverlustrate.
10. Wie wird ein UDP-Test sicher durchgeführt?
UDP-Test mit kontrollierter Datenrate anzeigen
Wichtiger Unterschied
Bei TCP passt das Protokoll die Senderate unter anderem anhand von Bestätigungen, Verlust und Überlastung an. Bei UDP muss eine gewünschte Senderate festgelegt werden.
Die iPerf3-Standardrate für UDP beträgt laut aktueller Dokumentation 1 Mbit/s.
UDP-Test mit 10 Mbit/s
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 10M -t 30
UDP-Test mit 100 Mbit/s
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 100M -t 30
Umgekehrter UDP-Test
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 100M -t 30 -R
UDP-Test ohne iPerf3-interne Bitratenbegrenzung
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 0 -t 30
-b 0 deaktiviert die interne Begrenzung. Dadurch kann der Test sehr viel Verkehr erzeugen und erheblichen Paketverlust verursachen.
-b 0sollte in produktiven Netzen nicht als erster Test verwendet werden.
Sichere Steigerung
10 Mbit/s → 25 Mbit/s → 50 Mbit/s → 100 Mbit/s
Nach jeder Stufe werden geprüft:
- Paketverlust;
- Jitter;
- Netzwerkauslastung;
- CPU-Auslastung;
- Auswirkungen auf andere Anwendungen.
11. Wie werden UDP-Jitter und Paketverlust interpretiert?
UDP-Messwerte anzeigen
Eine UDP-Zusammenfassung kann sinngemäß enthalten:
0.00-30.00 sec 350 MBytes 97.9 Mbits/sec 0.250 ms 1250/250000 (0.5%)
| Wert | Bedeutung |
|---|---|
350 MBytes |
Übertragene beziehungsweise empfangene Datenmenge |
97.9 Mbits/sec |
Gemessene durchschnittliche Datenrate |
0.250 ms |
Berechneter Jitter |
1250/250000 |
Verlorene Datagramme im Verhältnis zur erwarteten Gesamtzahl |
0.5% |
Berechnete Verlustquote |
Jitter
Jitter beschreibt bei iPerf3 die Schwankung der Paketlaufzeit, nicht die absolute Latenz.
Daher gilt:
Niedriger Jitter ≠ automatisch niedrige Latenz
Für die absolute Laufzeit werden zusätzlich beispielsweise benötigt:
-
ping; -
fping; -
pathping; - Monitoringdaten;
- anwendungsspezifische Messungen.
Paketverlust
Verlustquote = verlorene Datagramme / erwartete Datagramme × 100
Ein Paketverlust unter hoher UDP-Last bedeutet nicht automatisch einen Defekt. Er kann auch entstehen, weil:
- die eingestellte Senderate höher als die verfügbare Bandbreite ist;
- ein QoS-Policer die Rate begrenzt;
- Empfangs- oder Sendepuffer überlaufen;
- Client oder Server CPU-limitiert ist;
- WLAN-Kollisionen oder Funkstörungen auftreten;
- die Firewall den Datenstrom nicht schnell genug verarbeitet.
Der Test sollte deshalb mit mehreren kontrollierten Datenraten wiederholt werden.
12. Wie wird die maximale UDP-Kapazität schrittweise angenähert?
Stufentest anzeigen
Beispiel für einen freigegebenen 100-Mbit/s-Pfad:
Stufe 1
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 10M -t 30
Stufe 2
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 25M -t 30
Stufe 3
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 50M -t 30
Stufe 4
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 90M -t 30
Dokumentation
| Zielrate | Empfangsrate | Paketverlust | Jitter | Bewertung |
|---|---|---|---|---|
| 10 Mbit/s | 10 Mbit/s | 0 % | 0,2 ms | Unauffällig |
| 25 Mbit/s | 25 Mbit/s | 0 % | 0,3 ms | Unauffällig |
| 50 Mbit/s | 49,8 Mbit/s | 0,1 % | 0,5 ms | Beobachten |
| 90 Mbit/s | 72 Mbit/s | 18 % | 5,2 ms | Kapazitätsgrenze überschritten |
Die Werte in dieser Tabelle sind lediglich ein Rechen- und Dokumentationsbeispiel und keine allgemein gültigen Grenzwerte.
Die sinnvoll nutzbare Rate liegt unterhalb des Punktes, an dem Verlust und Jitter deutlich ansteigen.
13. Wie werden parallele TCP-Streams verwendet?
Parallelverbindungen `-P` anzeigen
Vier parallele TCP-Streams
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -P 4 -t 30
Acht parallele Streams
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -P 8 -t 30
Umgekehrte Richtung mit vier Streams
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -P 4 -t 30 -R
Seit iPerf3 3.16 verwendet jeder Teststream einen eigenen Thread. Dadurch können mehrere Streams mehrere CPU-Kerne nutzen.
Warum mehrere Streams mehr Durchsatz erreichen können
- einzelne TCP-Verbindung ist durch Latenz und Empfangsfenster begrenzt;
- einzelne CPU oder ein einzelner Stream erreicht seine Grenze;
- Paketverlust reduziert das Congestion Window einer einzelnen Verbindung;
- Lastverteilung behandelt mehrere Flows unterschiedlich;
- mehrere Warteschlangen einer Netzwerkkarte werden verwendet.
Wichtige Interpretation
1 Stream langsam
4 Streams schnell
bedeutet nicht automatisch, dass die Verbindung fehlerfrei ist. Eine einzelne Anwendung verwendet möglicherweise nur eine TCP-Verbindung und erreicht dann weiterhin den niedrigeren Wert.
Empfohlener Vergleich
| Test | Zweck |
|---|---|
-P 1 |
Leistung einer einzelnen TCP-Verbindung |
-P 4 |
Verhalten mehrerer paralleler Verbindungen |
-P 8 |
Prüfung auf CPU-, Queue- oder Window-Limit |
-R |
Vergleich der Gegenrichtung |
14. Wie werden Testdauer, Datenmenge und Warmlaufphase festgelegt?
Zeit- und Mengenoptionen anzeigen
Testdauer
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 60
-t 60 testet 60 Sekunden.
Bestimmte Datenmenge übertragen
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -n 1G
Bestimmte Anzahl Blöcke übertragen
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -k 10000
Die Optionen -t, -n und -k schließen sich gegenseitig aus. Pro Test darf nur eine davon zur Begrenzung verwendet werden.
Erste fünf Sekunden nicht in die Statistik aufnehmen
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -O 5
-O 5 führt zunächst fünf Sekunden Warmlauf durch und lässt diese Messwerte aus der abschließenden Teststatistik heraus.
Das hilft, den Einfluss des TCP Slow Start auf die Zusammenfassung zu reduzieren.
Sinnvoller stabiler TCP-Test
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -O 5 -i 5
Die gesamte Verbindung besteht dabei aus Warmlaufphase und ausgewerteter Testphase. Die genaue Laufzeit ist daher länger als der reine Auswertungszeitraum.
15. Wie wird eine bestimmte lokale IP-Adresse verwendet?
Quelladresse und Schnittstellenbindung anzeigen
Ein System kann mehrere Netzwerkschnittstellen und IP-Adressen besitzen:
- Ethernet;
- WLAN;
- VPN;
- Managementnetz;
- Produktionsnetz;
- IPv4 und IPv6.
Client an eine lokale IP-Adresse binden
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -B 192.0.2.10
Server an eine lokale IP-Adresse binden
[TEST][DISRUPT] iperf3 -s -B 192.0.2.20
Linux: an ein Interface binden, sofern unterstützt
[TEST][PRIV][DISRUPT][SENS] sudo iperf3 -c 192.0.2.20 --bind-dev eth0
--bind-dev ist nicht auf allen Plattformen verfügbar und kann erhöhte Rechte erfordern.
Vorher prüfen
Windows:
[RO] Get-NetIPConfiguration
Linux:
[RO] ip address show
macOS:
[RO] ifconfig
Die Quelladresse beeinflusst:
- Routing;
- Firewallregeln;
- VPN-Auswahl;
- QoS;
- NAT;
- Rückweg;
- Aussagekraft des Messergebnisses.
16. Wie werden IPv4 und IPv6 getrennt getestet?
IPv4- und IPv6-Befehle anzeigen
IPv4 erzwingen
[TEST][DISRUPT][SENS] iperf3 -4 -c 192.0.2.20
IPv6 erzwingen
[TEST][DISRUPT][SENS] iperf3 -6 -c 2001:db8::20
IPv6-Reversetest
[TEST][DISRUPT][SENS] iperf3 -6 -c 2001:db8::20 -R
IPv6-Link-Local-Adresse
Bei einer Link-Local-Adresse muss die Schnittstelle beziehungsweise Zone angegeben werden:
[TEST][DISRUPT][SENS] iperf3 -6 -c fe80::20%en0
Der genaue Schnittstellenname ist betriebssystemspezifisch.
Vergleich
| Test | Ergebnis |
|---|---|
| IPv4 schnell, IPv6 langsam | IPv6-Routing, MTU, Firewall oder Tunnel prüfen |
| IPv4 funktioniert, IPv6 nicht | IPv6-Adresse, Route, Neighbor Discovery und Firewall prüfen |
| IPv6 funktioniert, IPv4 nicht | IPv4-Routing, NAT oder Firewall prüfen |
| Beide langsam | Gemeinsamen Netzwerkpfad und Endgeräte untersuchen |
17. Wie werden Ergebnisse als JSON gespeichert?
JSON- und Logausgabe anzeigen
JSON im Terminal ausgeben
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -J
Linux und macOS: JSON in Datei schreiben
[TEST][FILE][DISRUPT][SENS] iperf3 -c 192.0.2.20 -J > iperf3-result.json
PowerShell mit Community-iPerf3
[TEST][FILE][DISRUPT][SENS] iperf3 -c 192.0.2.20 -J | Out-File -Encoding utf8 iperf3-result.json
Direkte Logdatei
[TEST][FILE][DISRUPT][SENS] iperf3 -c 192.0.2.20 --logfile iperf3-result.log
Zeitstempel hinzufügen
[TEST][FILE][DISRUPT][SENS] iperf3 -c 192.0.2.20 --timestamps --logfile iperf3-result.log
Zeilenweise JSON-Objekte während des Tests
[TEST][FILE][DISRUPT][SENS] iperf3 -c 192.0.2.20 --json-stream > iperf3-stream.jsonl
--json-stream ist eine neuere Funktion. Vor Verwendung muss geprüft werden, ob die installierte Version sie unterstützt.
Für eine vollständige Dokumentation festhalten
- Client-IP;
- Server-IP;
- Netzwerkpfad;
- iPerf3-Versionen;
- Befehl;
- Datum und Uhrzeit;
- Testdauer;
- Protokoll;
- Richtung;
- Anzahl paralleler Streams;
- TCP- oder UDP-Rate;
- CPU-Auslastung;
- Interface-Zähler;
- Ergebnisdatei.
18. Wie werden TCP-Ergebnisse interpretiert?
TCP-Ausgabe erklären
Eine TCP-Ausgabe enthält am Ende typischerweise eine Sender- und eine Empfängerzeile:
[SUM] 0.00-30.00 sec 3.20 GBytes 916 Mbits/sec sender
[SUM] 0.00-30.00 sec 3.19 GBytes 913 Mbits/sec receiver
| Feld | Bedeutung |
|---|---|
| Intervall | Ausgewerteter Zeitraum |
| Transfer | Übertragene Datenmenge |
| Bitrate | Durchschnittliche Übertragungsrate |
| Sender | Messung aus Sicht des Senders |
| Receiver | Messung aus Sicht des Empfängers |
| Retr | TCP-Wiederholungsübertragungen, sofern verfügbar |
| Cwnd | TCP Congestion Window, sofern ausgegeben |
Sender und Receiver
Die Werte können geringfügig voneinander abweichen, beispielsweise durch:
- noch unterwegs befindliche Daten;
- unterschiedliche Messzeitpunkte;
- kurzen Test;
- Paketverlust;
- Abbruch der Steuerverbindung.
Bei sehr kurzen Tests kann die Differenz stärker auffallen. Die ESnet-FAQ weist darauf hin, dass Testdaten noch unterwegs sein können, wenn die Steuerverbindung bereits das Testende verarbeitet.
Retransmissions
Viele Wiederholungsübertragungen können hinweisen auf:
- Paketverlust;
- Überlastung;
- fehlerhafte Leitung;
- WLAN-Störungen;
- überfüllte Warteschlangen;
- MTU- oder Offloading-Probleme.
Sie beweisen allein jedoch noch keine bestimmte Ursache.
Schwankender Durchsatz
Mögliche Ursachen:
- konkurrierender Datenverkehr;
- WLAN-Funkbedingungen;
- TCP Congestion Control;
- CPU-Auslastung;
- Firewall- oder VPN-Verarbeitung;
- thermische Drosselung;
- Paketverlust;
- Load Balancing;
- dynamische QoS-Regeln.
19. Wie wird geprüft, ob Client oder Server der Engpass ist?
Endgerätevergleich anzeigen
1. Normalrichtung
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30
2. Gegenrichtung
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -R
3. Einzelstream
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -P 1 -t 30
4. Vier Streams
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -P 4 -t 30
5. CPU-Auslastung parallel beobachten
Linux:
[RO] top
macOS:
[RO] top
Windows:
[RO] Get-Counter '\Processor(_Total)\% Processor Time'
Interpretationsbeispiele
| Beobachtung | Mögliche Ursache |
|---|---|
| Normalrichtung langsam, Reverse schnell | Senderseite des Clients oder Empfängerseite des Servers prüfen |
| Normalrichtung schnell, Reverse langsam | Senderseite des Servers oder Empfängerseite des Clients prüfen |
| Ein Stream langsam, mehrere schnell | Einzelstream-, Latenz-, TCP-Window- oder CPU-Limit |
| Beide Richtungen gleich langsam | Gemeinsamer Pfad, Linkrate, Firewall, VPN oder CPU |
| CPU erreicht 100 % | Endsystem möglicherweise Messgrenze |
| Durchsatz schwankt mit CPU | Verarbeitungslimit wahrscheinlich |
| Nur WLAN langsam | Funkstrecke, Kanal, Signal oder Airtime prüfen |
| LAN schnell, VPN langsam | VPN-Gateway, Verschlüsselung, MTU oder Routing prüfen |
20. Wie werden Netzwerkkarten- und Interface-Zähler einbezogen?
Betriebssystemspezifische Kontrollbefehle anzeigen
Windows
[RO] Get-NetAdapter
[RO] Get-NetAdapterStatistics
[RO] Get-NetAdapter | Select-Object Name, Status, LinkSpeed
Linux
[RO] ip -s link show
[RO] ethtool eth0
[RO][PRIV] sudo ethtool -S eth0
macOS
[RO] ifconfig en0
[RO] netstat -ib
Vor und nach dem iPerf3-Test vergleichen
Zu prüfen sind unter anderem:
- Linkgeschwindigkeit;
- empfangene und gesendete Byte;
- RX- und TX-Fehler;
- Drops;
- Kollisionen, sofern relevant;
- Interface-Resets;
- Duplexmodus bei Ethernet;
- WLAN-Signal und Übertragungsrate;
- CPU-Auslastung.
Ein iPerf3-Ergebnis ohne Interface- und Systemauslastung zeigt nur den gemessenen End-to-End-Durchsatz, aber nicht automatisch die Engpassstelle.
21. Welche Rolle spielen MTU, MSS und Paketgröße?
MTU- und Längenoptionen anzeigen
TCP Maximum Segment Size setzen
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -M 1460
-M setzt die gewünschte TCP-MSS. Der tatsächlich verwendete Wert kann durch Betriebssystem und Netzwerkpfad beeinflusst werden.
Für Ethernet mit einer MTU von 1500 Byte ergibt sich bei IPv4 ohne zusätzliche Optionen häufig:
1500 Byte MTU
- 20 Byte IPv4-Header
- 20 Byte TCP-Header
= 1460 Byte TCP-MSS
Bei IPv6 sind die Basisheader größer:
1500 Byte MTU
- 40 Byte IPv6-Header
- 20 Byte TCP-Header
= 1440 Byte TCP-MSS
Zusätzliche Header, TCP-Optionen, VLAN, VPN oder Tunnel können die nutzbare Größe beeinflussen.
iPerf3-Puffer- beziehungsweise Blocklänge
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -l 512
-l bestimmt die Länge des von iPerf3 gelesenen oder geschriebenen Puffers. Sie ist nicht identisch mit der Ethernet-Framegröße.
UDP mit bestimmter Datagrammlänge
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 10M -l 1200
IPv4-UDP mit gesetztem Don't-Fragment-Bit
[TEST][DISRUPT][SENS] iperf3 -4 -c 192.0.2.20 -u -b 10M -l 1400 --dont-fragment
--dont-fragment gilt nach der offiziellen Dokumentation nur für UDP über IPv4.
Größenoptionen sollten nur gezielt verändert werden. Ungeeignete Werte können Fragmentierung, Verluste oder irreführende Ergebnisse verursachen.
22. Warum kann der TCP-Durchsatz plötzlich fast auf null fallen?
Offloading- und Segmentierungsprobleme anzeigen
Nach der offiziellen ESnet-FAQ kann ein fast vollständig einbrechender TCP-Durchsatz unter anderem mit fehlerhaftem TCP-Offloading zusammenhängen.
Mögliche beteiligte Funktionen:
- TCP Segmentation Offload, TSO;
- Large Send Offload, LSO;
- Generic Segmentation Offload, GSO;
- Generic Receive Offload, GRO;
- Large Receive Offload, LRO.
Diagnosevergleich
Normalrichtung
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30
Reverse-Richtung
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -R
Kleinere Schreibgröße
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -l 512
MSS testweise begrenzen
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -M 1460
Zusätzliche Prüfung
- Paketmitschnitt mit Wireshark oder tcpdump;
- ICMP-Fragmentation-Needed-Nachrichten;
- Wiederholungsübertragungen;
- Interface-Fehler;
- MTU des VPN- oder Tunnelpfads;
- Treiber- und Firmwarestand.
Das Deaktivieren von Offloading ist eine Systemänderung und kann die Leistung beeinflussen. Es sollte erst nach dokumentierter Diagnose, Freigabe und mit Rückfallplan erfolgen.
23. Wie werden WLAN-Verbindungen sinnvoll getestet?
WLAN-Testaufbau anzeigen
Ein geeigneter WLAN-Testaufbau ist:
WLAN-Client
↓ Funkstrecke
Access Point
↓ Ethernet
Kabelgebundener iPerf3-Server
Der Server sollte möglichst per Ethernet angebunden sein. Sind Client und Server beide im WLAN, teilen sie sich möglicherweise dieselbe Funkzeit. Das Ergebnis enthält dann zwei Funkübertragungen und ist schwerer zu interpretieren.
Empfohlene Tests
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -R
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 10M -t 30
Die UDP-Rate wird anschließend vorsichtig erhöht.
Zusätzlich dokumentieren
- Frequenzband;
- Kanal;
- Kanalbreite;
- Signalstärke;
- Noise Floor, sofern verfügbar;
- PHY-Linkrate;
- Abstand zum Access Point;
- Anzahl aktiver Clients;
- Roaming;
- Energiesparmodus;
- verwendeter Access Point.
Wichtiger Unterschied
WLAN-Linkrate ≠ nutzbarer TCP-Durchsatz
Die angezeigte PHY-Rate enthält Protokoll-, Funk-, Bestätigungs- und Verwaltungsanteile. Der tatsächlich nutzbare TCP-Durchsatz ist daher niedriger.
24. Wie werden VPN- und Standortverbindungen untersucht?
Vergleichsmessungen anzeigen
Messung ohne VPN
Client → lokaler iPerf3-Server
Messung durch VPN
Client → VPN-Tunnel → entfernter iPerf3-Server
Normalrichtung
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30
Reverse-Richtung
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -R
UDP mit kontrollierter Rate
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 20M -t 30
Mögliche VPN-Engpässe
- CPU des VPN-Gateways;
- Verschlüsselungsleistung;
- MTU und MSS;
- Paketfragmentierung;
- Internet-Uplink;
- asymmetrische Bandbreite;
- Paketverlust;
- hohe Laufzeit;
- Single-Stream-Limit;
- QoS oder Traffic Shaping;
- Cloud-Gateway-Größe;
- NAT- oder Firewall-Verarbeitung.
Vergleichstabelle
| Test | Ohne VPN | Mit VPN |
|---|---|---|
| TCP Client → Server | 940 Mbit/s | 180 Mbit/s |
| TCP Server → Client | 940 Mbit/s | 350 Mbit/s |
| UDP ohne Verlust | 800 Mbit/s | 150 Mbit/s |
| Jitter | 0,2 ms | 3,5 ms |
Diese Zahlen sind nur ein Dokumentationsbeispiel. Sie stellen keine allgemeinen Sollwerte dar.
25. Wie wird zwischen Netzwerk- und Speicherproblem unterschieden?
iPerf3 und Dateiübertragung vergleichen
Netzwerktest
[TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30
Anschließend reale Dateiübertragung prüfen
Beispielsweise:
- SMB;
- NFS;
- SFTP;
- HTTPS;
- Backupsoftware.
Interpretation
| iPerf3 | Dateiübertragung | Mögliche Ursache |
|---|---|---|
| Schnell | Schnell | Grundsätzlich unauffällig |
| Schnell | Langsam | Speicher, Dateisystem, Protokoll, Virenscan oder Anwendung |
| Langsam | Langsam | Netzwerkpfad oder Endsysteme weiter prüfen |
| Schwankend | Schwankend | Paketverlust, WLAN, CPU, QoS oder konkurrierender Verkehr |
iPerf3 bietet außerdem -F, um eine Datei als Datenquelle oder -senke zu verwenden:
[TEST][FILE][DISRUPT][SENS] iperf3 -c 192.0.2.20 -F testfile.bin
Diese Funktion bezieht Speicherzugriffe in die Messung ein.
-Fmacht iPerf3 nicht zu einem zuverlässigen Dateiübertragungsprogramm. Die empfangene Datei kann sich in Länge, Eigenschaften oder Inhalt vom Original unterscheiden.
26. Welche typischen Fehler treten bei iPerf3 auf?
Fehlertabelle anzeigen
| Fehler oder Beobachtung | Mögliche Ursache | Prüfung |
|---|---|---|
command not found |
iPerf3 nicht installiert oder nicht im Suchpfad | command -v iperf3 beziehungsweise Get-Command iperf3 |
unable to connect to server |
Server läuft nicht, falsche IP oder Firewall | Listener und TCP-Port 5201 prüfen |
Connection refused |
Ziel erreichbar, aber kein Listener am Port | Serverprozess und Port prüfen |
Connection timed out |
Firewall, Routing oder Rückwegproblem | Nmap, Traceroute und Paketmitschnitt |
| UDP-Test startet nicht | TCP-Steuerverbindung fehlt | TCP 5201 prüfen |
| TCP funktioniert, UDP nicht | UDP-Port gefiltert oder falsche Firewallregel | UDP-Freigabe und Paketmitschnitt |
| Ergebnis viel niedriger als Linkrate | Protokolloverhead, CPU, Verlust oder Pfadbegrenzung | CPU, Interface-Zähler und Gegenrichtung |
| Reverse deutlich schneller | Asymmetrie oder unterschiedlicher Endgeräteengpass | Sender- und Empfängerseite vergleichen |
| Ein Stream langsam, mehrere schnell | Einzelstream-, Window-, Latenz- oder CPU-Limit | -P 1 und -P 4 vergleichen |
| Hoher UDP-Verlust | Zielrate zu hoch oder Empfangspfad überlastet | Rate schrittweise reduzieren |
| Hoher Jitter | Warteschlangen, WLAN, Überlastung oder QoS | geringere Rate und paralleles Monitoring |
| TCP bricht fast auf null ein | Mögliches Offloading- oder MTU-Problem | -R, -l, -M und Paketmitschnitt |
| Ergebnis schwankt stark | Test zu kurz oder konkurrierender Verkehr | längerer Test und Monitoring |
| Windows-Option funktioniert nicht | Community-Build nicht vollständig kompatibel | Buildquelle und unterstützte Optionen prüfen |
| Server bleibt erreichbar | Server ohne -1 gestartet |
Prozess kontrolliert beenden |
| JSON-Datei leer | Test nicht abgeschlossen oder Ausgabeproblem | Befehl ohne Umleitung testen |
| Port bereits belegt | Anderer iPerf3-Prozess oder Dienst | Listener des Ports prüfen |
27. Welche Fehlinterpretationen müssen vermieden werden?
Prüfungs- und Praxisfallen anzeigen
| Fehlinterpretation | Richtige Einordnung |
|---|---|
| iPerf3 zeigt die Internetgeschwindigkeit | Es misst nur zwischen dem iPerf3-Client und -Server |
| 1-Gbit/s-Link muss exakt 1 Gbit/s TCP erreichen | Protokoll- und Systemanteile reduzieren den Nutzdurchsatz |
| Hoher TCP-Durchsatz bedeutet null Paketverlust | TCP kann Verlust durch Wiederholungen ausgleichen |
| UDP-Verlust bedeutet defektes Kabel | Die konfigurierte Senderate kann zu hoch sein |
| Jitter ist dasselbe wie Latenz | Jitter ist die Schwankung der Laufzeit |
-R wird auf dem Server eingegeben |
-R wird am Client angegeben |
| UDP verwendet nur UDP 5201 | Die Steuerverbindung verwendet weiterhin TCP |
| Mehrere Streams zeigen die Leistung einer einzelnen Anwendung | Eine Anwendung kann nur einen Stream verwenden |
--bidir entspricht zwei getrennten Tests |
Gleichzeitiger Verkehr beeinflusst beide Richtungen |
| Ein kurzer Test ist immer aussagekräftig | TCP Slow Start und kurzfristige Schwankungen beeinflussen ihn |
| iPerf3 prüft Festplattenleistung | Standardmäßig werden synthetische Daten verwendet |
| iPerf3 und iPerf2 sind kompatibel | Beide Werkzeuge verwenden unterschiedliche Protokolle |
| Community-iPerf3 unter Windows ist offiziell unterstützt | ESnet unterstützt iPerf3 unter Windows nicht offiziell |
| Höchstmögliche Rate ist automatisch der richtige Test | Produktive Netze müssen kontrolliert und stufenweise getestet werden |
28. Wie sieht ein systematischer iPerf3-Diagnoseablauf aus?
Empfohlene Schrittfolge anzeigen
Vorbereitung
- Fehlerbild und erwarteten Durchsatz dokumentieren.
- Client, Server und Netzwerkpfad festlegen.
- Testgenehmigung und Wartungszeitraum prüfen.
- Maximale Testdauer und Datenrate festlegen.
- iPerf3-Versionen auf beiden Endpunkten dokumentieren.
- CPU-, Interface- und Monitoringansichten vorbereiten.
- Firewallfreigabe für TCP und gegebenenfalls UDP prüfen.
Server
- Server möglichst kabelgebunden und leistungsfähig auswählen.
- Server an die richtige Adresse binden.
- Für Einzeltests möglichst
-1verwenden. - Listener auf Port 5201 kontrollieren.
Basistest
- TCP-Einzelstream für 30 Sekunden durchführen.
- TCP-Reverse-Test durchführen.
- Sender- und Receiverwerte dokumentieren.
- CPU- und Interface-Zähler prüfen.
Vertiefung
- Vier parallele Streams testen.
- Ergebnis mit Einzelstream vergleichen.
- UDP bei niedriger Rate beginnen.
- Rate schrittweise erhöhen.
- Jitter und Paketverlust dokumentieren.
- IPv4 und IPv6 bei Bedarf getrennt testen.
- WLAN-, VPN- oder VLAN-Pfade separat vergleichen.
Analyse
- Langsamen Pfad mit Ping, Traceroute und Paketmitschnitt untersuchen.
- Firewall-, Switch- und VPN-Monitoring vergleichen.
- MTU, MSS und Offloading nur bei konkreten Hinweisen untersuchen.
- iPerf3-Ergebnis mit realer Anwendung vergleichen.
Abschluss
- Testbefehle und Ergebnisse speichern.
- Temporäre Firewallfreigaben zurücknehmen.
- Nicht mehr benötigten Serverprozess beenden.
- Beobachtung, Hypothese, Änderung und Nachtest dokumentieren.
29. Kurzreferenz – iPerf3-Befehle
Befehlstabelle anzeigen
| Aufgabe | Befehl |
|---|---|
| Version | [RO] iperf3 --version |
| Hilfe | [RO] iperf3 -h |
| Server starten | [TEST][DISRUPT] iperf3 -s |
| Server für einen Test | [TEST][DISRUPT] iperf3 -s -1 |
| Server an IP binden | [TEST][DISRUPT] iperf3 -s -B 192.0.2.20 |
| Anderen Port verwenden | [TEST][DISRUPT] iperf3 -s -p 5002 |
| TCP-Standardtest | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 |
| 30 Sekunden testen | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 |
| Gegenrichtung | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -R |
| Beide Richtungen gleichzeitig | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 --bidir |
| Vier TCP-Streams | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -P 4 -t 30 |
| UDP mit 10 Mbit/s | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 10M -t 30 |
| UDP mit 100 Mbit/s | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 100M -t 30 |
| Reverse-UDP | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -u -b 100M -t 30 -R |
| Warmlaufphase auslassen | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -t 30 -O 5 |
| Lokale IP binden | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -B 192.0.2.10 |
| IPv4 erzwingen | [TEST][DISRUPT][SENS] iperf3 -4 -c 192.0.2.20 |
| IPv6 erzwingen | [TEST][DISRUPT][SENS] iperf3 -6 -c 2001:db8::20 |
| JSON-Ausgabe | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -J |
| Logdatei | [TEST][FILE][DISRUPT][SENS] iperf3 -c 192.0.2.20 --logfile result.log |
| Serverausgabe abrufen | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 --get-server-output |
| MSS setzen | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -M 1460 |
| Pufferlänge setzen | [TEST][DISRUPT][SENS] iperf3 -c 192.0.2.20 -l 512 |
30. Kurzreferenz – wichtigste Optionen
Optionstabelle anzeigen
| Option | Bedeutung |
|---|---|
-s |
Servermodus |
-c HOST |
Clientmodus und Zielserver |
-p PORT |
Server- beziehungsweise Zielport |
-1 |
Server nach einer Clientverbindung beenden |
-t SEKUNDEN |
Testdauer |
-n MENGE |
Zu übertragende Datenmenge |
-k ANZAHL |
Anzahl zu übertragender Blöcke |
-i SEKUNDEN |
Ausgabeintervall |
-f m |
Ausgabe beispielsweise in Mbit/s |
-R |
Testrichtung umkehren |
--bidir |
Beide Richtungen gleichzeitig testen |
-u |
UDP statt TCP |
-b RATE |
Zielbitrate setzen |
-P ANZAHL |
Parallele Streams |
-O SEKUNDEN |
Warmlaufzeit aus Statistik auslassen |
-B ADRESSE |
An lokale IP-Adresse binden |
--bind-dev |
An ein Interface binden, sofern unterstützt |
-4 |
IPv4 erzwingen |
-6 |
IPv6 erzwingen |
-J |
JSON-Ausgabe |
--json-stream |
Zeilenweise JSON-Ausgabe |
--logfile |
Ausgabe in Logdatei |
--forceflush |
Ausgabe je Intervall sofort schreiben |
--timestamps |
Zeitstempel voranstellen |
--get-server-output |
Serverausgabe am Client abrufen |
-M |
TCP-MSS festlegen |
-l |
Puffer- beziehungsweise UDP-Datagrammlänge |
-w |
Socketpuffergröße setzen |
-N |
Nagle-Algorithmus für TCP/SCTP deaktivieren |
-Z |
Zero-Copy-Sendemethode verwenden |
--dont-fragment |
IPv4-DF-Bit bei UDP setzen |
Merksätze
- iPerf3 benötigt immer einen iPerf3-Server und einen iPerf3-Client.
- iPerf2 und iPerf3 sind nicht miteinander kompatibel.
- iPerf3 wird von ESnet offiziell für Linux, FreeBSD und macOS, aber nicht für Windows unterstützt.
- Der Standardport ist 5201.
- Bei UDP wird weiterhin eine TCP-Steuerverbindung benötigt.
- Standardmäßig sendet der Client zum Server.
-
-Rwird am Client angegeben und kehrt die Datenrichtung um. - TCP versucht standardmäßig, die verfügbare Kapazität auszunutzen.
- UDP sollte immer mit einer kontrollierten niedrigen Rate begonnen werden.
- Jitter ist eine Laufzeitschwankung und nicht die absolute Latenz.
- UDP-Paketverlust kann durch eine zu hoch eingestellte Senderate entstehen.
- Ein Einzelstream und mehrere Parallelstreams beantworten unterschiedliche Fragen.
- Ein schneller iPerf3-Test beweist nicht, dass eine Anwendung schnell arbeitet.
- CPU, Interface-Zähler, Linkrate und Netzwerkpfad müssen zusammen mit dem Ergebnis dokumentiert werden.
- Vergleichstests müssen dieselben Endpunkte, Richtungen, Versionen und Parameter verwenden.
- Leistungstests können produktiven Datenverkehr beeinträchtigen und müssen abgestimmt durchgeführt werden.
Quellen