Linux: TCP und UDP Netzwerk Performance mit iperf messen

Navigation:
< zurück
Inhalt

Allgemein

Das OpenSource Tool iperf erlaubt das Messen der maximalen TCP und UDP Netzwerk Bandbreite. Es ist eine Alternative zu netperf.

Installation

Iperf ist im Debian und Ubuntu Repository bereits enthalten, d.h. eine Installation ist ganz einfach via apt-get install iperf möglich.

Verwendung

Iperf funktioniert nach dem Client-Server Modell. D.h. man startet zuerst den iperf Daemon auf einem Server und verbindet sich danach mit dem iperf Client. Client und Server sind praktischerweise im selben Binary enthalten. Beachten Sie bei der Angabe der IP Adresse beim Client, dass Sie jene wählen welche zum Netzwerkinterface gehört, welches Sie testen wollen.

TCP Performance messen

In diesem Beispiel wird die TCP Performance von 1 GBit/s Netzwerkkarte gemessen:

Server 1

[root@server1 ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local 192.168.255.1 port 5001 connected with 192.168.255.2 port 39838
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  1.10 GBytes   941 Mbits/sec

Server 2

[root@server2 ~]# iperf -c 192.168.255.1
------------------------------------------------------------
Client connecting to 192.168.255.1, TCP port 5001
TCP window size: 16.0 KByte (default)
------------------------------------------------------------
[  3] local 192.168.255.2 port 39838 connected with 192.168.255.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec  1.10 GBytes   944 Mbits/sec

UDP Performance messen

Am gleichen System wird nun noch die UDP Performance gemessen. In diesem Fall muss zusätzlich noch die zu verwendende Bandbreite (-b) angegeben werden, Default ist hier nur 1 MBit pro Sekunde.

Server 1

[root@server1 ~]# iperf -s -u
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size:  126 KByte (default)
------------------------------------------------------------
[  3] local 192.168.255.1 port 5001 connected with 192.168.255.2 port 40612
[ ID] Interval       Transfer     Bandwidth        Jitter   Lost/Total Datagrams
[  3]  0.0-10.0 sec   889 MBytes   746 Mbits/sec   0.065 ms  621/634707 (0.098%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order

Server 2

[root@server2 ~]# iperf -c 192.168.255.1 -u -b 1000M
------------------------------------------------------------
Client connecting to 192.168.255.1, UDP port 5001
Sending 1470 byte datagrams
UDP buffer size:  126 KByte (default)
------------------------------------------------------------
[  3] local 192.168.255.2 port 40612 connected with 192.168.255.1 port 5001
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0-10.0 sec   890 MBytes   746 Mbits/sec
[  3] Sent 634708 datagrams
[  3] Server Report:
[  3]  0.0-10.0 sec   889 MBytes   746 Mbits/sec   0.065 ms  621/634707 (0.098%)
[  3]  0.0-10.0 sec  1 datagrams received out-of-order

Hinweise bei Tests mit schnellen Netzwerkverbindungen

Bei Netzwerkverbindungen über 10GBit/s (40/100 und mehr GBit/s) ist auf eine ausreichend dimensionierte Hardware zu achten. Auch wenn die Netzwerkkarten Offloading beherrschen, so sollte man mit top die Systemauslastung im Auge behalten.