PERF05-BP05 Auswählen leistungsfördernder Netzwerkprotokolle
Bewerten Sie die Leistungsanforderungen für Ihren Workload und wählen Sie die Netzwerkprotokolle aus, die die Gesamtleistung Ihres Workloads optimieren.
In Bezug auf die Erzielung eines höheren Durchsatzes besteht eine Beziehung zwischen der Latenz und der Bandbreite. Wenn Ihre Dateiübertragung beispielsweise über TCP (Transmission Control Protocol) erfolgt, verringern höhere Latenzen den gesamten Durchsatz. Es gibt Ansätze, dies mit der TCP-Optimierung und optimierten Übertragungsprotokollen zu lösen (einige Ansätze verwenden das User Datagram Protocol (UDP)).
Das SRD-Protokoll (Scalable Reliable Datagram
Typische Anti-Muster:
-
Nutzung von TCP für alle Workloads unabhängig von den Leistungsanforderungen.
Vorteile der Nutzung dieser bewährten Methode:
-
Die Auswahl des richtigen Protokolls für die Kommunikation zwischen Workload-Komponenten gewährleistet die bestmögliche Leistung für die jeweilige Workload.
-
Wenn Sie sicherstellen, dass ein geeignetes Protokoll für die Kommunikation zwischen Benutzern und Workload-Komponenten verwendet wird, können Sie das Benutzererlebnis für Ihre Anwendungen insgesamt verbessern. Indem Sie beispielsweise TCP und UDP verwenden, können VDI-Workloads die Zuverlässigkeit von TCP für kritische Daten und die Geschwindigkeit von UDP für Echtzeitdaten nutzen.
Risikostufe, wenn diese bewährte Methode nicht eingeführt wird: mittel (Die Verwendung eines ungeeigneten Netzwerkprotokolls kann zu einer schlechten Leistung führen – z. B. zu langsamen Reaktionszeiten, einer hohen Latenz und einer schlechteren Skalierbarkeit)
Implementierungsleitfaden
Um die Leistung Ihres Workloads zu verbessern, sollten Sie in erster Linie die Anforderungen an die Latenz und den Durchsatz kennen und dann Netzwerkprotokolle auswählen, die die Leistung optimieren.
Wann sollten Sie TCP verwenden
TCP bietet eine zuverlässige Zustellung von Daten und kann für die Kommunikation zwischen Workload-Komponenten verwendet werden, bei denen die Zuverlässigkeit und die garantierte Zustellung von Daten wichtig sind. Viele webbasierte Anwendungen verlassen sich auf TCP-basierte Protokolle wie HTTP und HTTPS, um TCP-Sockets für die Kommunikation mit AWS-Servern zu öffnen. E-Mail und die Übertragung von Dateien sind gängige Anwendungen, die ebenfalls auf TCP zurückgreifen, da TCP in der Lage ist, die Geschwindigkeit des Datenaustauschs und die Netzwerklast zu steuern. Die Verwendung von TLS mit TCP kann zu einem gewissen Overhead bei der Kommunikation führen, was eine erhöhte Latenz und einen verringerten Durchsatz zur Folge haben kann. Der Overhead entsteht vor allem durch den zusätzlichen Aufwand des Handshake-Prozesses, der mehrere Roundtrips in Anspruch nehmen kann. Sobald der Handshake abgeschlossen ist, ist der Overhead für die Ver- und Entschlüsselung der Daten relativ gering.
Wann sollten Sie UDP verwenden
UDP ist ein verbindungsloses Protokoll und eignet sich daher für Anwendungen, die eine schnelle, effiziente Übertragung benötigen, wie z. B. die Protokollierung, die Überwachung und VoIP-Daten. Ziehen Sie die Verwendung von UDP auch in Betracht, wenn Sie Workload-Komponenten haben, die auf kleine Abfragen von einer großen Anzahl von Clients reagieren, um eine optimale Leistung des Workloads zu gewährleisten. Datagram Transport Layer Security (DTLS) ist die UDP-Entsprechung von TLS. Bei der Verwendung von DTLS mit UDP entsteht der Overhead durch die Verschlüsselung und Entschlüsselung der Daten, da der Handshake-Prozess vereinfacht ist. DTLS fügt den UDP-Paketen außerdem einen geringen Overhead hinzu, da es zusätzliche Felder zur Angabe der Sicherheitsparameter und zur Erkennung von Manipulationen umfasst.
Wann sollten Sie SRD verwenden
Scalable Reliable Datagram (SRD) ist ein Netzwerktransportprotokoll, das für Workloads mit hohem Durchsatz optimiert ist, da es in der Lage ist, den Datenverkehr über mehrere Pfade zu verteilen und sich schnell von Paketverlusten oder Verbindungsfehlern zu erholen. SRD eignet sich daher am besten für HPC-Workloads (High Performance Computing), die einen hohen Durchsatz und eine geringe Latenz bei der Kommunikation zwischen Computing-Knoten erfordern. Dazu gehören z. B. parallele Verarbeitungsaufgaben wie Simulationen, Modellierung und Datenanalyse, bei denen eine große Menge an Daten zwischen den Knoten übertragen werden muss.
Implementierungsschritte
-
Verwenden Sie die AWS Global Accelerator
- und AWS Transfer Family -Services, um den Durchsatz Ihrer Anwendungen für die Onlineübertragung von Dateien zu verbessern. Der AWS Global Accelerator-Service hilft Ihnen, die Latenz zwischen Ihren Client-Geräten und Ihrem Workload auf AWS zu verringern. Mit AWS Transfer Family können Sie TCP-basierte Protokolle wie Secure Shell File Transfer Protocol (SFTP) und File Transfer Protocol over SSL (FTPS) verwenden, um Ihre Dateiübertragungen zu AWS-Speicherdiensten sicher zu skalieren und zu verwalten. -
Bestimmen Sie anhand der Netzwerklatenz, ob TCP für die Kommunikation zwischen Workload-Komponenten geeignet ist. Wenn die Netzwerklatenz zwischen Ihrer Client-Anwendung und dem Server hoch ist, kann der TCP-Drei-Wege-Handshake einige Zeit in Anspruch nehmen, was sich auf die Reaktionsfähigkeit Ihrer Anwendung auswirkt. Metriken wie Time to First Byte (TTFB) und Round-Trip Time (RTT) können zur Messung der Netzwerklatenz verwendet werden. Wenn Ihr Workload dynamische Inhalte für Benutzer bereitstellt, sollten Sie die Verwendung von Amazon CloudFront
in Betracht ziehen. So wird eine dauerhafte Verbindung zu jeder Quelle für dynamische Inhalte hergestellt, um die Zeit für den Verbindungsaufbau zu vermeiden, die sonst jede Client-Anfrage verlangsamen würde. -
Die Verwendung von TLS mit TCP oder UDP kann aufgrund der Auswirkungen der Ver- und Entschlüsselung zu einer erhöhten Latenz und einem reduzierten Durchsatz für Ihren Workload führen. Ziehen Sie für solche Workloads das SSL/TLS-Offloading von Elastic Load Balancing
in Betracht, um die Leistung des Workloads zu verbessern, indem Sie den Load-Balancer die SSL/TLS-Verschlüsselung und -Entschlüsselung übernehmen lassen, anstatt dies den Backend-Instances zu überlassen. Dies kann dazu beitragen, die CPU-Auslastung der Backend-Instances zu reduzieren, was die Leistung verbessern und die Kapazität erhöhen kann. -
Verwenden Sie den Network Load Balancer (NLB)
, um Services bereitzustellen, die auf dem UDP-Protokoll basieren (wie die Authentifizierung und Autorisierung, die Protokollierung, DNS, IoT und das Streamen von Medien), um die Leistung und Zuverlässigkeit Ihres Workloads zu verbessern. Der NLB verteilt den eingehenden UDP-Datenverkehr auf mehrere Ziele, sodass Sie Ihren Workload horizontal skalieren, die Kapazität erhöhen und den Overhead eines einzelnen Ziels reduzieren können. -
Für Ihre HPC-Workloads (High Performance Computing) sollten Sie die Elastic Network Adapter (ENA) Express
-Funktionalität in Betracht ziehen, die das SRD-Protokoll nutzt, um die Leistung des Netzwerks zu verbessern, indem sie eine höhere Bandbreite für einen einzelnen Datenfluss (25 Gbit/s) und eine niedrigere Latenz (99,9 Perzentil) für den Netzwerkverkehr zwischen EC2-Instances bietet. -
Verwenden Sie den Application Load Balancer (ALB), um Ihren gRPC-Datenverkehr (Remote Procedure Calls) zwischen Workload-Komponenten oder zwischen gRPC-fähigen Clients und Services zu routen und ein Load-Balancing durchzuführen. gRPC verwendet das TCP-basierte HTTP/2-Protokoll für den Transport und bietet Vorteile in Bezug auf die Leistung, wie z. B. einen geringeren Netzwerk-Footprint, Komprimierung, effiziente binäre Serialisierung, Unterstützung zahlreicher Sprachen und bidirektionales Streaming.
Ressourcen
Zugehörige Dokumente:
Zugehörige Videos:
-
Konnektivität mit AWS und AWS-Hybrid-Netzwerkarchitekturen (NET317-R1)
-
Optimieren der Netzwerkleistung für Amazon EC2-Instances (CMP308-R1)
-
Tuning Your Cloud: Improve Global Network Performance for Application
(Optimierung Ihrer Cloud: Verbessern der globalen Netzwerkleistung für Anwendungen) -
Application Scaling with EFA and SRD
(Anwendung skalieren mit EFA und SRD)
Zugehörige Beispiele: