Performance von Netzwerken messen mit dem kostenlosen iPerf
Möchte man Performance-Problemen auf den Grund gehen und dafür den Durchsatz von Netzwerken messen, dann empfiehlt sich das Open-Source-Tool iPerf besonders in heterogenen Umgebungen. Es läuft unter anderem auf Windows, Linux, MacOS, ESXi und Android.
Gerade in virtualisierten Umgebungen, wo sich mehrere VMs das Netzwerk des Hosts teilen und verschiedene Dienste über eine Verbindung laufen, ist es nicht ohne weiteres klar, welcher Durchsatz sich zwischen zwei Endpunkten erreichen lässt. Dabei kann es sich um Hosts, virtuelle Maschinen, Speichersysteme oder Endgeräte von Benutzern handeln.
Start auf der Server-Seite
Die Nutzung des Programms ist relativ einfach. Man startet es auf einer Maschine im Server-Modus, wo es dann auf eingehende Anfragen von Clients wartet:
iPerf3.exe -s
Dabei kann man einige Optionen angeben, allen voran den Port, auf den das Tool horchen soll. Es ist sinnvoll, diesen mit dem Parameter -p explizit zu wählen, weil die Versionen von iPerf für andere Systeme per Voreinstellung oft abweichende Werte wählen.
Je nachdem wofür man sich hier entscheidet, muss man dafür sorgen, dass die Firewall die Kommunikation nicht blockiert. Auf Rechnern, die über eine GUI verfügen, löst sich dieses Problem meist von selbst, weil Windows um entsprechende Erlaubnis nachfragt.
Auf einem Server Core oder Nano Server kann man die Firewall für den Test mittels PowerShell abschalten, in diesem Beispiel für alle Profile:
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
Soll der Server eine bestimmte Datei an die Clients übertragen, dann gibt man diese mit dem Schalter -F an. Möchte man die Messung auf ein bestimmtes Interface einschränken, dann kann man dafür den Parameter -B plus IP-Adresse verwenden.
iPerf im Client-Modus aufrufen
Auf der Gegenstelle startet man iPerf mit dem Parameter -c, gefolgt vom Hostname oder der IP-Adresse des Servers. Neben den erwähnten Optionen für den Server unterstützt das Programm im Client-Modus noch weitere Schalter. Dazu zählen etwa -t für die Dauer des Tests in Sekunden, -4 bzw. -6 für IPv4 bzw. IPv6 oder -u für UDP. Eine komplette Liste erhält man über den Parameter /?.
Um die Werte in GB/s auszugeben, verwendet man den Schalter -fG:
iPerf3.exe -c 192.168.0.52 -t30 -fG -p 5201
Auch als App für mobile Systeme
Wie erwähnt, existiert iPerf für eine Vielzahl von Plattformen. Die Binaries für die meisten Systeme kann man kostenlos von iperf.fr herunterladen. Die Ausführungen für mobile Geräte finden sich in den jeweiligen App Stores. Dabei existiert sogar eine Universal Windows Platform (UWP) App, die auf Windows Phone läuft.
iPerf für VMware ESXi nutzen
Bei manchen Betriebssystemen, in erster Linie einige Linux-Distributionen, gehört iPerf zum Lieferumfang. Das gilt auch für VMware ESXi, das seit der Version 6.0 das Performance-Tool mitbringt. Es befindet sich unter /usr/lib/vmware/vsan/bin. Um es aufrufen zu können, muss man entweder die Shell auf der DCUI starten oder eine SSH-Verbindung mit dem Host herstellen.
Dort sind allerdings ein paar Besonderheiten zu beachten. So scheitert der Aufruf des Programm üblicherweise mit der Meldung bind failed: Operation not permitted. In diesem Fall hilft es, die Datei umzukopieren:
cp perf perf.exe
Diese neue Datei kann man mit den beschriebenen Client-Parametern aufrufen. Startet man sie im Server-Modus, dann kommt kein Datentransfer zustande, zumindest wenn auf der Gegenstelle Windows läuft. Um dennoch die Kommunikation von einem Endpunkt zum ESXi-Host zu testen, kann man am Client den Schalter -R angeben, um die Richtung umzudrehen.
Auch unter ESXi muss man die Firewall kurzfristig deaktivieren. Dies lässt sich mit
esxcli network firewall set --enabled false
erreichen.
Keine Kommentare