Netzwerk Bandbreite mit iperf messen

Das OpenSource Tool iperf erlaubt das Messen der maximalen TCP und UDP Netzwerk Bandbreite.

Installation

Bei Debian und Ubuntu ist es im Repository bereits enthalten, d.h. eine Installation ist recht einfach möglich mittels der Standard Paketverwaltung von Ubuntu oder Debian.

bash# apt-get install iperf

Für RHEL und CentOS ist das Paket im EPEL Repository verfügbar.

bash# wget https://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
bash# rpm -ivh epel-release-6-8.noarch.rpm
bash# yum install iperf

Verwendung von iperf

Iperf funktioniert nach dem Client-Server Modell. D.h. man startet zuerst den Daemon auf einem Server und verbindet sich danach mit dem Client.

TCP Performance messen

In der Standardeisntellung von iperf wird der TCP Datentransfer zwischen Server und Client gemessen. Siehe unten.

Server

bash# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.1.100 port 5001 connected with 172.17.1.20 port 48828
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec   607 MBytes   507 Mbits/sec

Client

bash# iperf -c 192.168.1.100
------------------------------------------------------------
Client connecting to 192.168.1.100, TCP port 5001
TCP window size: 19.3 KByte (default)
------------------------------------------------------------
[  3] local 172.17.1.20 port 48828 connected with 192.168.1.100 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   607 MBytes   509 Mbits/sec

Bandbreite testen

Wenn wir nun die Bandbreite testen wollen müssen wir das per UDP tun. Zusätzlich wird mit --bandwith oder -b die Bandbreite angegeben. Default Wert ist 1Mbit/s.

Server

bash# iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  122 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.100 port 5001 connected with 172.17.1.20 port 58150
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0-10.3 sec   918 MBytes   751 Mbits/sec  14.786 ms 25994/680611 (3.8%)
[  3]  0.0-10.3 sec  1 datagrams received out-of-order

Client

bash# iperf -c 192.168.1.100 -u -b 1000M
------------------------------------------------------------
Client connecting to 192.168.1.100, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  122 KByte (default)
------------------------------------------------------------
[  3] local 172.17.1.20 port 58150 connected with 192.168.1.100  port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   954 MBytes   800 Mbits/sec
[  3] Sent 680612 datagrams
[  3] Server Report:
[  3]  0.0-10.3 sec   918 MBytes   751 Mbits/sec  14.786 ms 25994/680611 (3.8%)
[  3]  0.0-10.3 sec  1 datagrams received out-of-order