Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Wie vergleiche ich den Netzwerkdurchsatz zwischen Amazon EC2 Linux-Instances in derselben VPC?
Ich möchte die Netzwerkbandbreite zwischen Amazon Elastic Compute Cloud (Amazon EC2) Linux-Instances in derselben Amazon Virtual Private Cloud (Amazon VPC) messen.
Lösung
Definieren des Typs, der Größe und der Konfiguration der Instance, die zum Testen des Netzwerkdurchsatzes verwendet werden sollen
Wenn sich Instances in derselben VPC befinden, können mehrere Faktoren zu erheblichen Unterschieden bei der Netzwerkleistung zwischen verschiedenen Cloud-Umgebungen führen. Es hat sich bewährt, die Netzwerkleistung der Umgebung regelmäßig zu bewerten und die Baseline festzulegen, um die Anwendungsleistung zu verbessern. Netzwerkleistungstests bieten wertvolle Einblicke, um die besten EC2-Instance-Typen, -Größen und -Konfigurationen für deine Bedürfnisse zu ermitteln.
Instances für eine bessere Netzwerkleistung ändern
Instances nahe beieinander halten
Stelle sicher, dass sich die Instances untereinander in der Nähe befinden. Instances, die physisch näher beieinander liegen, bieten eine bessere Leistung. Instances, die weiter voneinander entfernt sind, können zu Netzwerklatenz führen. Instances in derselben Availability Zone oder AWS-Region haben einen besseren Netzwerkdurchsatz als EC2-Instances in verschiedenen Availability Zones oder Regionen. In den folgenden Szenarien sind die Instances zunehmend weiter voneinander entfernt:
- Instances in derselben Availability Zone in derselben Region
- Instances in verschiedenen Availability Zones in derselben Region
- Instances in verschiedenen Regionen auf demselben Kontinent
- Instances in verschiedenen Regionen auf verschiedenen Kontinenten
Die MTU deiner Instance erhöhen
Erhöhe die maximale Übertragungseinheit (MTU). Alle EC2-Instance-Typen unterstützen 1500 MTU. Alle Instances der aktuellen Generation und die C3-, G2-, I2-, M3- und R3-Instances der vorherigen Generation unterstützen Jumbo-Frames. Jumbo-Frames ermöglichen mehr als 1500 MTU. Instances, die Jumbo-Frames unterstützen, können jedoch in bestimmten Szenarien auf 1500 MTU begrenzt werden.
Die Größe der Instance erhöhen
Erhöhe die Größe deiner Instance. Größere Instances für einen Instance-Typ bieten in der Regel eine bessere Netzwerkleistung als kleinere Instances desselben Typs.
Support für Enhanced Networking für Linux verwenden
Verwende Enhanced Networking. Enhanced Networking bietet eine höhere Leistung und eine durchweg geringere Latenz zwischen Instances. Alle Instances der aktuellen Generation verwenden standardmäßig Elastic Network Adaptor (ENA)- oder ENA Express-Treiber, um Enhanced Networking zu aktivieren.
Instance-Typen früherer Generationen, die Enhanced Networking unterstützen, erfordern möglicherweise zusätzliche Konfigurationen, um Enhanced Networking nutzen zu können.
Weitere Informationen findest du unter Wie aktiviere und konfiguriere ich Enhanced Networking auf meinen EC2-Instances?
Instances in Platzierungsgruppen ablegen
Starte voneinander abhängige Instances in einer Platzierungsgruppe, um den Anforderungen der Workload gerecht zu werden. High Performance Computing (HPC) bietet volle Bisektionsbandbreite und niedrige Latenz und unterstützt je nach Instance-Typ Netzwerkgeschwindigkeiten von bis zu 100 GB.
Einen Netzwerk-E/A-Guthabenmechanismus verwenden, um Netzwerkbandbreite zuzuweisen
Um zu überprüfen, ob der Instance-Typ ein E/A-Netzwerkguthaben verwenden kann, um die Baseline-Bandbreite zu überschreiten, lies die Netzwerkspezifikationen.
Test-Instances einrichten
Führe die folgenden Schritte aus:
- Starte zwei Linux-Test-Instances.
- Stelle sicher, dass die Instances Enhanced Networking für Linux unterstützen und sich in derselben VPC befinden.
- (Optional) Wenn du Netzwerktests zwischen Instances durchführst, die keine Jumbo-Frames unterstützen, lege die Netzwerk-MTU auf der Instance fest.
- Verwende SSH, um eine Verbindung zu den Instances herzustellen und zu überprüfen, ob du auf sie zugreifen kannst.
Installieren des iperf3-Netzwerk-Benchmark-Tools auf beiden Instances
In einigen Verteilungen, wie Amazon Linux, ist iperf3 Teil des Extra Packages for Enterprise Linux (EPEL)-Repositorys. Informationen zum Aktivieren des EPEL-Repositorys findest du unter Wie aktiviere ich das EPEL-Repository für meine Amazon EC2-Instance, auf der CentOS, RHEL oder Amazon Linux ausgeführt wird?
Weitere Informationen zum iperf3-Tool findest du unter iperf2/iperf3 auf der ESNet-Website.
Verwende SSH, um eine Verbindung zur Linux-Instance herzustellen. Führe dann einen der folgenden Befehle für das Betriebssystem (OS) aus, um iperf3 zu installieren.
Red Hat Enterprise Linux (RHEL) 9:
$ sudo dnf -y install iperf3
Debian oder Ubuntu:
$ sudo apt-get install -y iperf3
CentOS 6/7:
$ sudo yum -y install epel-release && yum -y install iperf3
Amazon Linux 2023:
$ sudo yum -y install iperf3
Testen der TCP-Netzwerkleistung zwischen den Instances
Standardmäßig kommuniziert iperf3 beim Testen der TCP-Leistung über den Port 5001. Du kannst jedoch den Switch -p verwenden, um den Port zu ändern. Stelle sicher, dass du die Sicherheitsgruppen so konfigurierst, dass sie die Kommunikation über den Port zulassen, den iperf3 verwendet.
Führe den folgenden Befehl aus, um die erste Instance als Server für das Lauschen an einem bestimmten TCP-Port zu konfigurieren:
$ sudo iperf3 -s -p 5001
Hinweis: Wenn du den Port ändern möchtest, ersetze 5001 durch deine Portnummer.
Konfiguriere die zweite Instance als Client und führe dann einen Test mit den relevanten Parametern auf dem Server durch. Beispielsweise initiiert der folgende Befehl einen TCP-Test mit 40 parallelen Verbindungen auf einer Server-Instance:
$ sudo iperf3 -c 172.31.30.41 --parallel 40 -i 1 -t 2
Die Ausgabe zeigt das Intervall und die Daten, die in jedem Client-Stream übertragen werden, sowie die Bandbreite, die jeder Client-Stream verwendet. Die folgende iperf3-Ausgabe zeigt Testergebnisse für zwei c5n.18xlarge-EC2-Linux-Instances an, die in einer Cluster-Placement-Gruppe gestartet wurden. Die Gesamtbandbreite, die über alle Verbindungen übertragen wird, beträgt 97,6 Gbit/s.
Beispielausgabe:
------------------------------------------------------------------------------------Client connecting to 172.31.30.41, TCP port 5001 TCP window size: 975 KByte (default) ------------------------------------------------------------------------------------ [ 8] local 172.31.20.27 port 49498 connected with 172.31.30.41 port 5001 [ 38] local 172.31.20.27 port 49560 connected with 172.31.30.41 port 5001 [ 33] local 172.31.20.27 port 49548 connected with 172.31.30.41 port 5001 [ 40] local 172.31.20.27 port 49558 connected with 172.31.30.41 port 5001 [ 36] local 172.31.20.27 port 49554 connected with 172.31.30.41 port 5001 [ 39] local 172.31.20.27 port 49562 connected with 172.31.30.41 port 5001 ... [SUM] 0.0- 2.0 sec 22.8 GBytes 97.6 Gbits/sec
Testen der UDP-Netzwerkleistung zwischen den Instances
Standardmäßig kommuniziert iperf3 beim Testen der UDP-Leistung über den Port 5001. Du kannst jedoch den Switch -p verwenden, um den Port zu ändern. Stelle sicher, dass du die Sicherheitsgruppen so konfigurierst, dass sie die Kommunikation über den Port zulassen, den iperf3 verwendet.
Hinweis: Die Standardeinstellung für UDP ist 1 Mbit/s, sofern du keine andere Bandbreite angibst.
Um die erste Instance als Server für die Überwachung eines bestimmten UDP-Ports zu konfigurieren, führe den folgenden Befehl aus:
$ sudo iperf3 -s -u -p 5001
Hinweis: Wenn du den Port ändern möchtest, ersetze 5001 durch deine Portnummer.
Konfiguriere eine zweite Instance als Client und führe dann einen Test mit den gewünschten Parametern auf dem Server durch. Das folgende Beispiel führt einen UDP-Test für die Server-Instance aus, wobei der Parameter -b auf 5g gesetzt ist. Der Parameter**-b** ändert die Bandbreite von der UDP-Standardeinstellung von 1 Mbit/s auf 5 Gbit/s. 5 Gbit/s ist die maximale Netzwerkleistung, die eine Instance vom Typ c5n.18xlarge für einen einzigen Datenverkehrsfluss innerhalb einer VPC bereitstellen kann:
$ sudo iperf3 -c 172.31.1.152 -u -b 5g
Hinweis: UDP ist verbindungslos und verfügt über keine Algorithmen zur Überlastungskontrolle wie TCP. Wenn du Tests mit iperf3 durchführst, ist die Bandbreite, die du von UDP erhältst, möglicherweise niedriger als die Bandbreite, die du von TCP erhältst.
Beispielausgabe:
$ sudo iperf3 -c 172.31.30.41 -u -b 5g ------------------------------------------------------------------------------------ Client connecting to 172.31.30.41, UDP port 5001 Sending 1470 byte datagrams, IPG target: 2.35 us (kalman adjust) UDP buffer size: 208 KByte (default) ------------------------------------------------------------------------------------ [ 3] local 172.31.20.27 port 39022 connected with 172.31.30.41 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-10.0 sec 5.82 GBytes 5.00 Gbits/sec [ 3] Sent 4251700 datagrams [ 3] Server Report: [ 3] 0.0-10.0 sec 5.82 GBytes 5.00 Gbits/sec 0.003 ms 1911/4251700 (0.045%) [ 3] 0.00-10.00 sec 1 datagrams received out-of-order
Die vorhergehende Beispielausgabe zeigt die folgenden Werte:
- Intervall (Zeit)
- Menge der übertragenen Daten
- Erreichte Bandbreite
- Jitter (die Zeitabweichung bei der periodischen Ankunft von Datengrammen)
- Verlust und Summe der UDP-Datagramme
Ähnliche Informationen
Disk testing using iperf3 (Festplattentests mit iperf3) auf der ESnet-Website
Network tuning (Netzwerk-Tuning) auf der ESnet-Website
Throughput tool comparison (Vergleich der Durchsatz-Tools) auf der ESnet-Website
iperf2 auf der SourceForge-Website
iperf3 FAQ auf der ESnet-Website
- Themen
- Compute
- Tags
- Amazon EC2Linux
- Sprache
- Deutsch

Relevanter Inhalt
AWS OFFICIALAktualisiert vor 5 Jahren
AWS OFFICIALAktualisiert vor 9 Monaten
AWS OFFICIALAktualisiert vor 3 Jahren