TCP und UDP Netzwerk Performance mit iperf messen

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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:

Einzelnachweise

  1. Netperf (www.netperf.org)
  2. IPerf Paket aus EPEL Repository (download.fedora.redhat.com)
  3. IPerf (sourceforge.net)


Foto Christoph Mitasch.jpg

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.


Das könnte Sie auch interessieren

Iptables Firewall Regeln dauerhaft speichern
Linux Netzwerk Analyse mit iptstate
Linux Netzwerk Analyse mit traceroute