Geschwindigkeitsmessung mit iperf

Aus Synology Wiki
Wechseln zu: Navigation, Suche

Voraussetzungen

- Installiertes ipkg auf der DS und Zugriff via SSH/Telnet inkl. admin-Zugriff und Client.

- Einen PC mit aktiver Verbindung zur DS und einen ssh- oder telnet-Client (unter Windows z.B. putty, unter Linux z.B. openssh-client).

- Windows-Version von iperf (z.B. von heise.de) oder entsprechend Linux iperf aus der Paketverwaltung.

Einrichtung von iperf

Nun zur eigentlichen Arbeit.

Installation via ipkg auf der DS

Wer ipkg bereits installiert hat sollte recht einfach wissen wie dies zu bewerkstelligen ist:

ipkg update
ipkg list iperf
ipkg install iperf

Die Installation sollte vollautomatisch erfolgen und keine Fehler anzeigen. Die Bearbeitung von Konfigurationsdateien ist auch nicht notwendig.

Installation auf dem PC

Eine Installation im eigentlichen Sinne ist auf einem Windows-PC nicht notwendig, da iperf als exe vorliegt welche eigenständig lauffähig ist. Unter Linux liegt iperf bei den meisten Distributionen bereits als Paket vor das über die Softwareverwaltung oder auf der Kommandozeile (Debian/Ubuntu z.B. apt-get install iperf) installiert wird.

Aber: Die fertige Windows-Version ist bei Sourceforge unter "Alle Dateien anzeigen" im Ordner "jperf" zu finden. Das eigentliche iperf-Paket enthält die Quelldateien zum selbst erstellen. Dazu ist allerdings ein gewisses Fachwissen sowie ein Compiler notwendig. Wir greifen daher lieber zum fertigen "jperf". Das schöne daran: Wir kriegen gleich ein grafisches Interface mitgeliefert. Wer trotzdem lieber zur Kommandozeilen-Version greifen möchte, der findet diese im Unterordner "bin" als iperf.exe

Die Installation unter Linux ist in der Regel mit

 sudo apt-get install iperf

erledigt. Alternativ kann man natürlich auch eine andere Paketverwaltung (mit oder ohne GUI) nutzen.

Den Test vorbereiten: Den Server starten

Und wieder geht es mittels SSH/Telnet auf die DS. Dieses mal um iperf als Server zu starten. iperf sollte sich nun wie folgt melden:

DiskStation> iperf
Usage: iperf [-s|-c host] [options]
Try `iperf --help' for more information.

Um iperf zu starten gibt es zwei Möglichkeiten. Die erste wäre als normaler Server, also als ein ganz normaler Prozess, oder als sogenannter Daemon also ein Hintergrunddienst der sich erst meldet sobald er gebraucht wird.

Ein Beispielaufruf als Server:

iperf -s -p 4000

Die Option -p bestimmt den Port auf welchem iperf wartet.

Nun wartet iperf auf Anfragen von Clienten und vermeldet dies wie folgt:

DiskStation> iperf -s -p 4000
------------------------------------------------------------
Server listening on TCP port 4000
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Den Client starten und die letzten Vorbereitungen treffen

Die Java-Anwendung jperf besitzt eine recht aufgeräumte Oberfläche.

Ganz oben sind die wichtigsten Optionen: Adresse und Port des Servers. Viel mehr ist eigentlich nicht notwendig um eine Messung durchzuführen.

Doch ein paar letzte Vorbereitungen müssen noch getroffen werden:

- Alle anderen Anwendungen schließen,

- Sicherstellen das die DS nicht durch andere Prozesse abgelenkt werden kann,

- Alle möglichen Störfaktoren wie Antivirenprogramme und Firewalls deaktivieren.

Der Test

Welche Kommandozeile von der Java-Umgebung genutzt wird, demonstriert die oberste Zeile. Ein Klick auf das linke Symbol auf der rechten oberen Seite des Clients starten den Test. Nun sollten beide beteiligten Seiten anfangen Ergebnisse zu produzieren. jperf stellt diese außerdem in einer Grafik übersichtlich dar.

Fehlerbehandlung unter Windows

Für den Fall, dass sich jperf nicht starten lässt, ist höchstwahrscheinlich der Classpath von Java nicht korrekt gesetzt. Das ist auch der Grund, warum javaw.exe nicht gefunden werden kann.

Bevor ihr also jperf.bat ausführt, müsste ihr die Datei jperf.bat in einem Texteditor Eurer Wahl bearbeiten und die Zeile

     PATH C:\Program Files (x86)\Java\jre6\bin

in die erste Zeile einfügen.

Das Ergebnis sollte folgendermaßen aussehen.

     PATH C:\Program Files (x86)\Java\jre6\bin
     start javaw -classpath jperf-2.0.0.jar;lib\forms-1.1.0.jar;lib\jcommon-1.0.10.jar;lib\jfreechart-1.0.6.jar;lib\swingx-2008_02_03.jar net.nlanr.jperf.JPerf
     exit

Beachtet, dass sich der Installation-Pfad von Java bei jedem anders sein kann. Habt ihr das erledigt, braucht ihr jperf.bat nur noch speichern und aufrufen.

Alternativ kann der Pfad auch dauerhaft in den Umgebungsvariablen von Windows eingetragen werden.

Unter Windows Vista/7 findet man die Umgebungsvariablen unter Systemsteuerung-->Erweiterte Systemeinstellungen-->Tab Erweitert-->Umgebungsvariablen. Dort muss die Variable PATH herausgesucht und bearbeitet werden.

Dazu einfach ein ";" an die letzte Stelle anhängen und den Installationspfad von Java (etwas wie oben angegeben) einfügen.

Unter Linux

Auf der DS den Server starten

 ssh root@IP_der_DS
 iperf -s -p 4000

und dann in einer zweiten Shell ahnlich wie eben auf der DS nur eben jetzt nicht als Server (Option -s) sonder als Client (Option -c server-ip) den Test starten:

 iperf -p 4000 -c IP_der_DS -t 60

Man kann das natürlich auch umgekehrt machen und den Server auf dem Linux-Host und entsprechend den Client auf der DS starten. Aber VORSICHT: Dieser Versuch führt unweigerlich dazu, dass man danach eine ganze Weile am grübeln ist, warum da jetzt nicht das gleiche heraus kam :-) Tip: Es liegt nicht daran dass die Bits vom Keller hoch langsamer laufen als in den Keller hinunter. Wer das nicht glaubt einfach die DS statt in den Keller mal in den Dachboden stellen.


Links

- itaris Post im Forum zum Thema iperf

- iperf bei Sourceforge