View a markdown version of this page

Die Netzwerkleistung zwischen EC2-Instances mit ENA Express verbessern - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Die Netzwerkleistung zwischen EC2-Instances mit ENA Express verbessern

ENA Express basiert auf der SRD-Technologie ( AWS Scalable Reliable Datagram). SRD ist ein leistungsstarkes Netzwerktransportprotokoll, das dynamisches Routing verwendet, um den Durchsatz zu erhöhen und die Tail-Latenz zu minimieren. Mit ENA Express können Sie zwischen zwei EC2-Instances in derselben Availability Zone oder zwischen Availability Zones innerhalb derselben Region kommunizieren.

Vorteile von ENA Express
  • Erhöht die maximale Bandbreite, die ein einzelner Flow nutzen kann, von 5 Gbit/s auf bis zu 25 Gbit/s innerhalb derselben Region bis zum aggregierten Instance-Limit.

  • Reduziert die Latenz des Netzwerkverkehrs zwischen EC2-Instances in derselben Availability Zone, insbesondere in Zeiten hoher Netzwerklast.

  • Erkennt und vermeidet überlastete Netzwerkpfade.

  • Führt einige Aufgaben direkt auf der Netzwerkebene aus, z. B. die Neuordnung von Paketen auf der Empfängerseite und die meisten erforderlichen Neuübertragungen. Dadurch wird die Anwendungsebene für andere Arbeiten freigegeben.

Anmerkung
  • Wenn Ihre Anwendung hohe Anforderungen an Pakete pro Sekunde hat und die Latenz in Zeiten ohne Überlastung optimiert werden muss, ist dies möglicherweise besser geeignet. Enhanced Networking

  • ENA-Express-Datenverkehr kann nicht in einer Local Zone gesendet werden.

  • ENA Express-Support für Verkehr zwischen Availability Zones ist in Südamerika (São Paulo), dem Nahen Osten (Bahrain) und dem Nahen Osten (VAE) nicht verfügbar.

Nachdem Sie ENA Express für den Netzwerkschnittstellen-Anhang auf einer Instance aktiviert haben, initiiert die sendende Instance die Kommunikation mit der empfangenden Instance und SRD erkennt, ob ENA Express sowohl auf der sendenden als auch auf der empfangenden Instance ausgeführt wird. Wenn ENA Express in Betrieb ist, kann die Kommunikation eine SRD-Übertragung verwenden. Wenn ENA Express nicht funktioniert, fällt die Kommunikation auf die standardmäßige ENA-Übertragung zurück.

In Zeiten mit geringem Netzwerkverkehr stellen Sie möglicherweise einen leichten Anstieg der mittleren Paketlatenz (mehrere zehn Mikrosekunden) fest, wenn das Paket ENA Express verwendet. Während dieser Zeiten können Anwendungen, die bestimmte Netzwerkleistungsmerkmale priorisieren, von ENA Express wie folgt profitieren:

  • Prozesse können von einer erhöhten maximalen Single-Flow-Bandbreite von 5 Gbit/s bis zu 25 Gbit/s innerhalb derselben Region bis hin zum aggregierten Instance-Limit profitieren. Wenn ein bestimmter Instance-Typ beispielsweise bis zu 12,5 Gbit/s unterstützt, ist die Single-Flow-Bandbreite ebenfalls auf 12,5 Gbit/s begrenzt.

  • Bei länger laufenden Prozessen in derselben Availability Zone wird die Latenz am Ende reduziert, wenn das Netzwerk überlastet ist.

  • Prozesse können von einer gleichmäßigeren und einheitlicheren Verteilung der Reaktionszeiten des Netzwerks profitieren.

So funktioniert ENA Express

ENA Express basiert auf der SRD-Technologie ( AWS Scalable Reliable Datagram). Sie verteilt Pakete für jeden Netzwerkfluss auf verschiedene AWS Netzwerkpfade und passt die Verteilung dynamisch an, wenn Anzeichen einer Überlastung erkannt werden. Sie verwaltet auch die Neuordnung von Paketen auf der Empfängerseite.

Um sicherzustellen, dass ENA Express den Netzwerkverkehr wie vorgesehen verwalten kann, müssen sendende und empfangende Instances, sowie die Kommunikation zwischen ihnen, alle nachstehenden Anforderungen erfüllen:

  • Sowohl sendende als auch empfangende Instance-Typen werden unterstützt. Weitere Informationen finden Sie in der Unterstützte Instance-Typen für ENA Express-Tabelle.

  • Sowohl die sendenden als auch die empfangenden Instances müssen ENA Express konfiguriert haben. Wenn es Unterschiede in der Konfiguration gibt, kann es zu Situationen kommen, in denen der Datenverkehr standardmäßig auf die ENA-Standardübertragung umgestellt wird. Das folgende Szenario zeigt, was in diesem Fall passieren kann.

    Szenario: Unterschiede in der Konfiguration

    Instance ENA Express aktiviert UDP verwendet ENA Express
    Instance 1 Ja Ja
    Instance 2 Ja Nein

    In diesem Fall kann für den TCP-Verkehr zwischen den beiden Instances ENA Express verwendet werden, da beide Instances dies aktiviert haben. Da jedoch eine der Instances ENA Express nicht für den UDP-Verkehr verwendet, verwendet die Kommunikation zwischen diesen beiden Instances via UDP die ENA-Standardübertragung.

  • Die sendenden und empfangenden Instances müssen in derselben Region ausgeführt werden.

  • Der Netzwerkpfad zwischen den Instances darf keine Middleware-Boxen enthalten. ENA Express unterstützt derzeit keine Middleware-Boxen.

  • (Nur Linux-Instances) Um das volle Bandbreitenpotenzial zu nutzen, verwenden Sie die Treiberversion 2.2.9 oder höher.

  • (Nur Linux-Instances) Verwenden Sie zum Erstellen von Metriken die Treiberversion 2.8 oder höher.

Wenn eine Anforderung nicht erfüllt ist, verwenden die Instances für die Kommunikation das TCP/UDP Standardprotokoll, jedoch ohne SRD.

Um sicherzustellen, dass Ihr Instance-Netzwerktreiber für eine optimale Leistung konfiguriert ist, lesen Sie sich die empfohlenen bewährten Methoden für ENA-Treiber durch. Diese bewährten Methoden gelten auch für ENA Express. Weitere Informationen finden Sie im ENA Linux Driver Best Practices and Performance Optimization Guide auf der GitHub Website.

Anmerkung

Amazon EC2 bezieht sich auf die Beziehung zwischen einer Instance und einer Netzwerkschnittstelle, die als Anhang an sie angehängt ist. Die ENA-Express-Einstellungen gelten für den Anhang. Wenn die Netzwerkschnittstelle von der Instance getrennt ist, existiert der Anhang nicht mehr und die ENA-Express-Einstellungen, die für ihn galten, sind nicht mehr gültig. Das Gleiche gilt, wenn eine Instance beendet wird, auch wenn die Netzwerkschnittstelle erhalten bleibt.

Nachdem Sie ENA Express für die Netzwerkschnittstellen-Anhänge sowohl auf der sendenden als auch auf der empfangenden Instance aktiviert haben, können Sie ENA-Express-Metriken verwenden, um dabei zu helfen, sicherzustellen, dass Ihre Instances die Leistungsverbesserungen der SRD-Technologie voll ausschöpfen. Weitere Informationen zu ENA-Express-Metriken finden Sie unter Metriken für ENA Express.

Unterstützte Instance-Typen für ENA Express

Folgende Instance-Typen unterstützen ENA Express.

General purpose
Instance-Typ Architektur
m6a.12xlarge x86_64
m6a.16xlarge x86_64
m6a.24xlarge x86_64
m6a.32xlarge x86_64
m6a.48xlarge x86_64
m6a.metal x86_64
m6i.8xlarge x86_64
m6i.12xlarge x86_64
m6i.16xlarge x86_64
m6i.24xlarge x86_64
m6i.32xlarge x86_64
m6i.metal x86_64
m6id.8xlarge x86_64
m6id.12xlarge x86_64
m6id.16xlarge x86_64
m6id.24xlarge x86_64
m6id.32xlarge x86_64
m6id.metal x86_64
m6idn.8xlarge x86_64
m6idn.12xlarge x86_64
m6idn.16xlarge x86_64
m6idn.24xlarge x86_64
m6idn.32xlarge x86_64
m6idn.metal x86_64
m6in.8xlarge x86_64
m6in.12xlarge x86_64
m6in.16xlarge x86_64
m6in.24xlarge x86_64
m6in.32xlarge x86_64
m6in.metal x86_64
m7a.12xlarge x86_64
m7a.16xlarge x86_64
m7a.24xlarge x86_64
m7a.32xlarge x86_64
m7a.48xlarge x86_64
m7a.metal-48xl x86_64
m7g.12xlarge arm64
m7g.16xlarge arm64
m7g.metal arm64
m7gd.12xlarge arm64
m7gd.16xlarge arm64
m7gd.metal arm64
m7i.12xlarge x86_64
m7i.16xlarge x86_64
m7i.24xlarge x86_64
m7i.48xlarge x86_64
m7i.metal-24xl x86_64
m7i.metal-48xl x86_64
m8a.16xlarge x86_64
m8a.24xlarge x86_64
m8a.48xlarge x86_64
m8a.metal-24xl x86_64
m8a.metal-48xl x86_64
m8azn.12xlarge x86_64
m8azn.24xlarge x86_64
m8azn.metal-12xl x86_64
m8azn.metal-24xl x86_64
m8g.12xlarge arm64
m8g.16xlarge arm64
m8g.24xlarge arm64
m8g.48xlarge arm64
m8g.metal-24xl arm64
m8g.metal-48xl arm64
m8gb.8xlarge arm64
m8gb.12xlarge arm64
m8gb.16xlarge arm64
m8gb.24xlarge arm64
m8gb.48xlarge arm64
m8gb.metal-24xl arm64
m8gb.metal-48xl arm64
m8gd.12xlarge arm64
m8gd.16xlarge arm64
m8gd.24xlarge arm64
m8gd.48xlarge arm64
m8gd.metal-24xl arm64
m8gd.metal-48xl arm64
m8gn.8xlarge arm64
m8gn.12xlarge arm64
m8gn.16xlarge arm64
m8gn.24xlarge arm64
m8gn.48xlarge arm64
m8gn.metal-24xl arm64
m8gn.metal-48xl arm64
m8i.24xlarge x86_64
m8i.32xlarge x86_64
m8i.48xlarge x86_64
m8i.96xlarge x86_64
m8i.metal-48xl x86_64
m8i.metal-96xl x86_64
m8id.24xlarge x86_64
m8id.32xlarge x86_64
m8id.48xlarge x86_64
m8id.96xlarge x86_64
m8id.metal-48xl x86_64
m8id.metal-96xl x86_64
m8in.12xlarge x86_64
m8in.16xlarge x86_64
m8in.24xlarge x86_64
m8in.32xlarge x86_64
m8in.48xlarge x86_64
m8in.96xlarge x86_64
m8idn.12xlarge x86_64
m8idn.16xlarge x86_64
m8idn.24xlarge x86_64
m8idn.32xlarge x86_64
m8idn.48xlarge x86_64
m8idn.96xlarge x86_64
m8ib.12xlarge x86_64
m8ib.16xlarge x86_64
m8ib.24xlarge x86_64
m8ib.32xlarge x86_64
m8ib.48xlarge x86_64
m8ib.96xlarge x86_64
m8idb.12xlarge x86_64
m8idb.16xlarge x86_64
m8idb.24xlarge x86_64
m8idb.32xlarge x86_64
m8idb.48xlarge x86_64
m8idb.96xlarge x86_64
Compute optimized
Instance-Typ Architektur
c6a.12xlarge x86_64
c6a.16xlarge x86_64
c6a.24xlarge x86_64
c6a.32xlarge x86_64
c6a.48xlarge x86_64
c6a.metal x86_64
c6gn.4xlarge arm64
c6gn.8xlarge arm64
c6gn.12xlarge arm64
c6gn.16xlarge arm64
c6i.8xlarge x86_64
c6i.12xlarge x86_64
c6i.16xlarge x86_64
c6i.24xlarge x86_64
c6i.32xlarge x86_64
c6i.metal x86_64
c6id.8xlarge x86_64
c6id.12xlarge x86_64
c6id.16xlarge x86_64
c6id.24xlarge x86_64
c6id.32xlarge x86_64
c6id.metal x86_64
c6in.8xlarge x86_64
c6in.12xlarge x86_64
c6in.16xlarge x86_64
c6in.24xlarge x86_64
c6in.32xlarge x86_64
c6in.metal x86_64
c7a.12xlarge x86_64
c7a.16xlarge x86_64
c7a.24xlarge x86_64
c7a.32xlarge x86_64
c7a.48xlarge x86_64
c7a.metal-48xl x86_64
c7g.12xlarge arm64
c7g.16xlarge arm64
c7g.metal arm64
c7gd.12xlarge arm64
c7gd.16xlarge arm64
c7gd.metal arm64
c7gn.4xlarge arm64
c7gn.8xlarge arm64
c7gn.12xlarge arm64
c7gn.16xlarge arm64
c7gn.metal arm64
c7i.12xlarge x86_64
c7i.16xlarge x86_64
c7i.24xlarge x86_64
c7i.48xlarge x86_64
c7i.metal-24xl x86_64
c7i.metal-48xl x86_64
c8a.16xlarge x86_64
c8a.24xlarge x86_64
c8a.48xlarge x86_64
c8a.metal-24xl x86_64
c8a.metal-48xl x86_64
c8g.12xlarge arm64
c8g.16xlarge arm64
c8g.24xlarge arm64
c8g.48xlarge arm64
c8g.metal-24xl arm64
c8g.metal-48xl arm64
c8gb.8xlarge arm64
c8gb.12xlarge arm64
c8gb.16xlarge arm64
c8gb.24xlarge arm64
c8gb.48xlarge arm64
c8gb.metal-24xl arm64
c8gb.metal-48xl arm64
c8gd.12xlarge arm64
c8gd.16xlarge arm64
c8gd.24xlarge arm64
c8gd.48xlarge arm64
c8gd.metal-24xl arm64
c8gd.metal-48xl arm64
c8gn.8xlarge arm64
c8gn.12xlarge arm64
c8gn.16xlarge arm64
c8gn.24xlarge arm64
c8gn.48xlarge arm64
c8gn.metal-24xl arm64
c8gn.metal-48xl arm64
c8i.24xlarge x86_64
c8i.32xlarge x86_64
c8i.48xlarge x86_64
c8i.96xlarge x86_64
c8i.metal-48xl x86_64
c8i.metal-96xl x86_64
c8id.24xlarge x86_64
c8id.32xlarge x86_64
c8id.48xlarge x86_64
c8id.96xlarge x86_64
c8id.metal-48xl x86_64
c8id.metal-96xl x86_64
c8in.12xlarge x86_64
c8in.16xlarge x86_64
c8in.24xlarge x86_64
c8in.32xlarge x86_64
c8in.48xlarge x86_64
c8in.96xlarge x86_64
c8in.metal-48xl x86_64
c8in.metal-96xl x86_64
c8ib.12xlarge x86_64
c8ib.16xlarge x86_64
c8ib.24xlarge x86_64
c8ib.32xlarge x86_64
c8ib.48xlarge x86_64
c8ib.96xlarge x86_64
c8ib.metal-48xl x86_64
c8ib.metal-96xl x86_64
Memory optimized
Instance-Typ Architektur
r6a.12xlarge x86_64
r6a.16xlarge x86_64
r6a.24xlarge x86_64
r6a.32xlarge x86_64
r6a.48xlarge x86_64
r6a.metal x86_64
r6i.8xlarge x86_64
r6i.12xlarge x86_64
r6i.16xlarge x86_64
r6i.24xlarge x86_64
r6i.32xlarge x86_64
r6i.metal x86_64
r6id.8xlarge x86_64
r6id.12xlarge x86_64
r6id.16xlarge x86_64
r6id.24xlarge x86_64
r6id.32xlarge x86_64
r6id.metal x86_64
r6idn.8xlarge x86_64
r6idn.12xlarge x86_64
r6idn.16xlarge x86_64
r6idn.24xlarge x86_64
r6idn.32xlarge x86_64
r6idn.metal x86_64
r6in.8xlarge x86_64
r6in.12xlarge x86_64
r6in.16xlarge x86_64
r6in.24xlarge x86_64
r6in.32xlarge x86_64
r6in.metal x86_64
r7a.12xlarge x86_64
r7a.16xlarge x86_64
r7a.24xlarge x86_64
r7a.32xlarge x86_64
r7a.48xlarge x86_64
r7a.metal-48xl x86_64
r7g.12xlarge arm64
r7g.16xlarge arm64
r7g.metal arm64
r7gd.12xlarge arm64
r7gd.16xlarge arm64
r7gd.metal arm64
r7i.12xlarge x86_64
r7i.16xlarge x86_64
r7i.24xlarge x86_64
r7i.48xlarge x86_64
r7i.metal-24xl x86_64
r7i.metal-48xl x86_64
r7iz.8xlarge x86_64
r7iz.12xlarge x86_64
r7iz.16xlarge x86_64
r7iz.32xlarge x86_64
r7iz.metal-16xl x86_64
r7iz.metal-32xl x86_64
r8a.16xlarge x86_64
r8a.24xlarge x86_64
r8a.48xlarge x86_64
r8a.metal-24xl x86_64
r8a.metal-48xl x86_64
r8g.12xlarge arm64
r8g.16xlarge arm64
r8g.24xlarge arm64
r8g.48xlarge arm64
r8g.metal-24xl arm64
r8g.metal-48xl arm64
r8gb.8xlarge arm64
r8gb.12xlarge arm64
r8gb.16xlarge arm64
r8gb.24xlarge arm64
r8gb.48xlarge arm64
r8gb.metal-24xl arm64
r8gb.metal-48xl arm64
r8gd.12xlarge arm64
r8gd.16xlarge arm64
r8gd.24xlarge arm64
r8gd.48xlarge arm64
r8gd.metal-24xl arm64
r8gd.metal-48xl arm64
r8gn.8xlarge arm64
r8gn.12xlarge arm64
r8gn.16xlarge arm64
r8gn.24xlarge arm64
r8gn.48xlarge arm64
r8gn.metal-24xl arm64
r8gn.metal-48xl arm64
r8i.24xlarge x86_64
r8i.32xlarge x86_64
r8i.48xlarge x86_64
r8i.96xlarge x86_64
r8i.metal-48xl x86_64
r8i.metal-96xl x86_64
r8id.24xlarge x86_64
r8id.32xlarge x86_64
r8id.48xlarge x86_64
r8id.96xlarge x86_64
r8id.metal-48xl x86_64
r8id.metal-96xl x86_64
r8in.12xlarge x86_64
r8in.16xlarge x86_64
r8in.24xlarge x86_64
r8in.32xlarge x86_64
r8in.48xlarge x86_64
r8in.96xlarge x86_64
r8idn.12xlarge x86_64
r8idn.16xlarge x86_64
r8idn.24xlarge x86_64
r8idn.32xlarge x86_64
r8idn.48xlarge x86_64
r8idn.96xlarge x86_64
r8ib.12xlarge x86_64
r8ib.16xlarge x86_64
r8ib.24xlarge x86_64
r8ib.32xlarge x86_64
r8ib.48xlarge x86_64
r8ib.96xlarge x86_64
r8idb.12xlarge x86_64
r8idb.16xlarge x86_64
r8idb.24xlarge x86_64
r8idb.32xlarge x86_64
r8idb.48xlarge x86_64
r8idb.96xlarge x86_64
u7i-6tb.112xlarge x86_64
u7i-8tb.112xlarge x86_64
u7i-12tb.224xlarge x86_64
u7in-16tb.224xlarge x86_64
u7in-24tb.224xlarge x86_64
u7in-32tb.224xlarge x86_64
u7inh-32tb.480xlarge x86_64
x2idn.16xlarge x86_64
x2idn.24xlarge x86_64
x2idn.32xlarge x86_64
x2idn.metal x86_64
x2iedn.8xlarge x86_64
x2iedn.16xlarge x86_64
x2iedn.24xlarge x86_64
x2iedn.32xlarge x86_64
x2iedn.metal x86_64
x8g.12xlarge arm64
x8g.16xlarge arm64
x8g.24xlarge arm64
x8g.48xlarge arm64
x8g.metal-24xl arm64
x8g.metal-48xl arm64
x8aedz.24xlarge x86_64
x8aedz.metal-24xl x86_64
x8i.24xlarge x86_64
x8i.32xlarge x86_64
x8i.48xlarge x86_64
x8i.64xlarge x86_64
x8i.96xlarge x86_64
x8i.metal-48xl x86_64
x8i.metal-96xl x86_64
Accelerated computing
Instance-Typ Architektur
g6.48xlarge x86_64
g6e.12xlarge x86_64
g6e.24xlarge x86_64
g6e.48xlarge x86_64
g7e.12xlarge x86_64
g7e.24xlarge x86_64
g7e.48xlarge x86_64
p5.4xlarge x86_64
p5.48xlarge x86_64
p5e.48xlarge x86_64
p5en.48xlarge x86_64
p6-b200.48xlarge x86_64
p6-b300.48xlarge x86_64
Storage optimized
Instance-Typ Architektur
i4g.4xlarge arm64
i4g.8xlarge arm64
i4g.16xlarge arm64
i4i.8xlarge x86_64
i4i.12xlarge x86_64
i4i.16xlarge x86_64
i4i.24xlarge x86_64
i4i.32xlarge x86_64
i4i.metal x86_64
i7i.12xlarge x86_64
i7i.16xlarge x86_64
i7i.24xlarge x86_64
i7i.48xlarge x86_64
i7i.metal-24xl x86_64
i7i.metal-48xl x86_64
i7ie.12xlarge x86_64
i7ie.18xlarge x86_64
i7ie.24xlarge x86_64
i7ie.48xlarge x86_64
i7ie.metal-24xl x86_64
i7ie.metal-48xl x86_64
i8g.12xlarge arm64
i8g.16xlarge arm64
i8g.24xlarge arm64
i8g.48xlarge arm64
i8g.metal-24xl arm64
i8g.metal-48xl arm64
i8ge.12xlarge arm64
i8ge.18xlarge arm64
i8ge.24xlarge arm64
i8ge.48xlarge arm64
i8ge.metal-24xl arm64
i8ge.metal-48xl arm64
im4gn.4xlarge arm64
im4gn.8xlarge arm64
im4gn.16xlarge arm64

Die Leistung der ENA-Express-Einstellungen auf Linux-Instances erhöhen

Um sicherzustellen, dass ENA Express effektiv betrieben werden kann, muss Ihre Linux-Instance mehrere Netzwerkkonfigurationsanforderungen erfüllen.

Anstatt jede Einstellung manuell zu konfigurieren, können Sie das ENA Express-Einstellungsprüfskript aus dem GitHub Amazon-Repository herunterladen und ausführen. Das Skript validiert Ihre Instance anhand der erforderlichen und empfohlenen Einstellungen für ENA Express und gibt die genauen Befehle aus, um alle gefundenen Probleme zu beheben.

https://github.com/amzn/amzn-ec2-ena-utilities/blob/main/ena-express/check-ena-express-settings.sh

Das Skript überprüft die folgenden Einstellungen und Konfigurationen:

  • MTU-Größe — ENA Express benötigt eine niedrigere MTU als die Standardeinstellung, um zusätzliche AWS SRD-Header aufnehmen zu können. Neu eingerichtete TCP-Verbindungen schließen das MSS automatisch ab, um dieses Problem zu minimieren, aber für UDP-Verkehr ist immer noch eine niedrigere MTU erforderlich.

  • Größenbeschränkung für die TCP-Ausgabewarteschlange — Überprüft, ob die Byte-Beschränkung pro Socket für die Aufrechterhaltung eines hohen Durchsatzes ausreicht. Umgebungen mit erhöhter Netzwerklatenz erfordern ein höheres Limit.

  • Byte-Warteschlangenlimit — Bestätigt, dass das Byte-Warteschlangenlimit (BQL) auf der Netzwerkschnittstelle deaktiviert ist. BQL kann die Datenmenge einschränken, die für die Übertragung auf Geräteebene in die Warteschlange gestellt wird, wodurch die Leistung von ENA Express eingeschränkt wird.

    Anmerkung

    Der ENA-Treiber für die Amazon-Linux-Distribution deaktiviert standardmäßig die Byte-Warteschlangenlimits.

  • TCP-Autocorking — Überprüft, ob TCP-Autocorking deaktiviert ist. Durch die Deaktivierung von Autocorking kann die Latenz für bestimmte ENA Express-TCP-Datenverkehrsmuster reduziert werden, z. B. für Request-Response-Workloads. Dies kann zu einem minimalen Anstieg des Overheads bei der Paketverarbeitung führen.

  • TX-Warteschlangengröße und Large LLQ — Überprüft, ob die Größe der Übertragungswarteschlange für die Netzwerkschnittstelle groß genug für eine optimale Leistung ist. Das Skript prüft auch, ob der ENA-Modulparameter die Funktion Large Low Latency Queue (Large LLQ) explizit deaktiviert, da dadurch die verfügbare TX-Warteschlangentiefe reduziert werden kann. Weitere Informationen zu Large LLQ und ihren Auswirkungen auf die Größe der TX-Warteschlange finden Sie unter Large Low Latency Queue (Large LLQ) on. GitHub

  • Größe der RX-Warteschlange — Überprüft, ob der Empfangsringpuffer für die Netzwerkschnittstelle groß genug ist, um eingehenden Datenverkehr effizient zu verarbeiten und Paketverluste unter Last zu vermeiden.

  • Größe des TCP- und Netzwerk-Socket-Puffers — Überprüft, ob die maximalen Größen des TCP-Empfangs- und Sendepuffers sowie die Standard- und Maximalwerte für den Core-Netzwerk-Socket-Puffer groß genug sind, um einen hohen Durchsatz aufrechtzuerhalten. Diese Einstellungen sind wichtig in Umgebungen mit erhöhter Netzwerklatenz, in denen Sie größere Puffer benötigen, um die Verbindung zu nutzen.

  • TCP-Überlastungskontrolle — Überprüft, ob die Konfiguration der TCP-Überlastungskontrolle für die Verwendung mit ENA Express in Umgebungen mit erhöhter Netzwerklatenz optimiert ist.

Das Skript meldet auch zusätzliche Diagnoseinformationen, darunter die ENA-Treiberversion, ENA-SRD-Statistiken, Interrupt-Moderationseinstellungen, Warteschlangenkonfiguration und Socket-Puffergrößen. Diese Informationen können bei der Behebung von ENA Express-Leistungsproblemen nützlich sein.

Um sicherzustellen, dass Ihr Instance-Netzwerktreiber für eine optimale Leistung konfiguriert ist, lesen Sie auch den Leitfaden für bewährte Verfahren und Leistungsoptimierung von ENA Linux unterGitHub.