Wie können wir helfen?
Linux: TCP und UDP Netzwerk Performance mit iperf messen
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.