Heute will ich mal ein kleines anerkanntes Tool zur Bandbreitenmessung vorstellen. iperfist der Name und Bandbreiten-/Durchsatzmessung die Aufgabe. Es ist eine client/server Applikation, also muss es auf beiden Seiten installiert sein. Um diesen kleinen Kerl zu installieren, habe ich das Standard-Repository von dem System genutzt, auf dem ich mich befand. Auf einem RHEL muss man sich das Repo: epel-repo hinzufügen. Auf ubuntu or debian nutzt man dann einfach

sudo apt-get install iperf

Sobald es auf beiden Systemen installiert ist muss es nur noch gestartet werden. Irgendwie so:

iperf -s
# Falls ein anderer Port genutzt werden soll
iperf -s -p 12345

Die Ausgabe sollte in etwa so aussehen (Standardport)

[root@weichert ~] # iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------

Auf der Clientseite kann man sich nun mit dem Server verbinden. Mit dem Parameter -r kann man direkt bidirektional testen. Mit -P 5 öffnet man 5 parallele Streams. -w passt die TCP Window Size an.

Dann lasst uns das Thema einmal anschauen.

# Start the test on clientside
[root@test-vm ~] # iperf -c weichert.it -P 5
------------------------------------------------------------
Client connecting to weichert.it, TCP port 5001
TCP window size: 2.50 MByte (default)
------------------------------------------------------------
[  7] local 85.114.145.4 port 36718 connected with 85.114.145.4 port 12345
[  3] local 85.114.145.4 port 36714 connected with 85.114.145.4 port 12345
[  4] local 85.114.145.4 port 36715 connected with 85.114.145.4 port 12345
[  5] local 85.114.145.4 port 36716 connected with 85.114.145.4 port 12345
[  6] local 85.114.145.4 port 36717 connected with 85.114.145.4 port 12345
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  6.19 GBytes  5.34 Gbits/sec
[  4]  0.0-10.0 sec  4.62 GBytes  3.98 Gbits/sec
[  5]  0.0-10.0 sec  4.76 GBytes  4.11 Gbits/sec
[  6]  0.0-10.0 sec  5.83 GBytes  5.03 Gbits/sec
[  7]  0.0-10.0 sec  6.35 GBytes  5.46 Gbits/sec
[SUM]  0.0-10.0 sec  27.8 GBytes  23.8 Gbits/sec
# The server generate some similiar output
[root@weichert ~] # iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 85.114.145.4 port 12345 connected with 85.114.145.4 port 36714
[  5] local 85.114.145.4 port 12345 connected with 85.114.145.4 port 36715
[  6] local 85.114.145.4 port 12345 connected with 85.114.145.4 port 36716
[  7] local 85.114.145.4 port 12345 connected with 85.114.145.4 port 36717
[  8] local 85.114.145.4 port 12345 connected with 85.114.145.4 port 36718
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  6.19 GBytes  5.31 Gbits/sec
[  5]  0.0-10.0 sec  4.62 GBytes  3.96 Gbits/sec
[  7]  0.0-10.0 sec  5.83 GBytes  5.01 Gbits/sec
[  6]  0.0-10.0 sec  4.76 GBytes  4.09 Gbits/sec
[  8]  0.0-10.0 sec  6.35 GBytes  5.43 Gbits/sec
[SUM]  0.0-10.0 sec  27.8 GBytes  23.7 Gbits/sec

So weit so gut..., aber was machen wenn iperf nicht installiert ist, oder man es aus irgendwelchen Gründen nicht installieren kann/darf? Schaut euch dafür mal dd. Ich habe dazu mal ein kleines HowTo mit dd und ssh/netcat geschrieben.