TCP und UDP Netzwerk Performance mit iperf messen
Das OpenSource Tool iperf erlaubt das Messen der maximalen TCP und UDP Netzwerk Bandbreite. Es ist eine Alternative zu netperf[1].
Installation
Iperf ist im Debian und Ubuntu Repository bereits enthalten, d.h. eine Installation ist ganz einfach via apt-get install iperf
möglich.
Für RHEL und CentOS ist das Paket im EPEL[2] Repository verfügbar.
Alternativ kann auch der Sourcecode von der IPerf Webseite[3] heruntergeladen werden.
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 Fall wird die TCP Performance einer 1 GBit Netzwerkkarte gemessen.
Server1:
[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
Server2:
[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.
Server1:
[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
Server2:
[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 für 10G/40G Tests
Bei Tests mit 40 Gbit/s Verbindungen kann es sein, dass ein einzelner CPU-Core zum Bottleneck werden kann. In diesem Fall empfiehlt es sich, mehrere parallele Tests auf unterschiedlichen Ports zu betreiben.
Weitere Informationen hierzu sind z.B. auf folgenden Seiten zu finden:
- 40G/100G Tuning (fasterdata.es.net)
- iperf3 at 40Gbps and above (fasterdata.es.net)
- Network Tuning and Performance: a simple guide to enhancing network speeds (calomel.org)
Einzelnachweise
Autor: Christoph Mitasch Christoph Mitasch arbeitet in der Abteilung Web Operations & Knowledge Transfer bei Thomas-Krenn. Er ist für die Betreuung und Weiterentwicklung der Webshop Infrastruktur zuständig. Seit einem Studienprojekt zum Thema Hochverfügbarkeit und Daten Replikation unter Linux beschäftigt er sich intensiv mit diesem Themenbereich. Nach einem Praktikum bei IBM Linz schloss er sein Diplomstudium „Computer- und Mediensicherheit“ an der FH Hagenberg ab. Er wohnt in der Nähe von Linz und ist neben der Arbeit ein begeisterter Marathon-Läufer und Jongleur, wo er mehrere Weltrekorde in der Team-Jonglage hält.
|