Netzwerkleistung für ENA-Einstellungen auf Ihrer EC2-Instance überwachen - 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.

Netzwerkleistung für ENA-Einstellungen auf Ihrer EC2-Instance überwachen

Der Elastic Network Adapter (ENA)-Treiber veröffentlicht Netzwerkleistungsmetriken aus den Instances, in denen sie aktiviert sind. Sie können diese Metriken verwenden, um Probleme mit der Instance-Performance zu beheben, die richtige Instance-Größe für eine Workload auszuwählen, Skalierungsaktivitäten proaktiv zu planen und Anwendungen zu vergleichen, um zu bestimmen, ob sie die auf einer Instance verfügbare Leistung maximieren.

Amazon EC2 definiert Netzwerkmaxima auf Instance-Ebene, um eine gute Netzwerkerfahrung sicherzustellen, einschließlich einer konsistenten Netzwerkleistung für alle Instance-Größen. AWS stellt für jede Instance Maxima für Folgendes bereit:

  • Bandwidth capability (Bandbreitenfähigkeit) – Jede EC2-Instance verfügt über eine maximale Bandbreite für aggregierten ein- und ausgehenden Datenverkehr, basierend auf Instance-Typ und -Größe. Manche Instances nutzen einen Netzwerk-I/O-Guthabenmechanismus, bei dem die Netzwerkbandbreite anhand der durchschnittlichen Bandbreitenauslastung zugewiesen wird. Amazon EC2 verfügt außerdem über eine maximale Bandbreite für Datenverkehr zu Direct Connect und ins Internet. Weitere Informationen finden Sie unter Netzwerkbandbreite der EC2 Amazon-Instance.

  • Packet-per-second (PPS) performance (Pakete-pro-Sekunden-Leistung) – Jede EC2-Instance verfügt über eine maximale PPS-Leistung, basierend auf Instance-Typ und -Größe.

  • Connections tracked (Nachverfolgte Verbindungen) – Die Sicherheitsgruppe verfolgt jede aufgebaute Verbindung, um sicherzustellen, dass die Rückpakete wie erwartet übertragen werden. Es gibt eine maximale Anzahl von Verbindungen, die pro Instance verfolgt werden können. Weitere Informationen finden Sie unter . Verbindungsverfolgung EC2 für Amazon-Sicherheitsgruppen

  • Verbindungslokaler Servicezugriff – Amazon EC2 bietet eine Schnittstelle für maximale PPS pro Netzwerk für Datenverkehr zu lokalen Proxy-Services wie dem Amazon-DNS-Service, dem Instance Metadata Service und dem Amazon Time Sync Service.

Wenn der Netzwerkverkehr für eine Instance ein Maximum überschreitet, formtAWS den Datenverkehr, der das Maximum übersteigt, indem es Netzwerkpakete in die Warteschlange stellt und dann löscht. Mithilfe der Metriken zur Netzwerkleistung können Sie überwachen, wann der Datenverkehr ein Maximum überschreitet. Diese Metriken informieren Sie in Echtzeit über Auswirkungen auf den Netzwerkverkehr und mögliche Probleme mit der Netzwerkleistung.

Voraussetzungen

Linux-Instances
  • Installieren Sie ENA-Treiberversion 2.2.10 oder höher. Verwenden Sie den ethtool-Befehl, um die installierte Version zu überprüfen. Im folgenden Beispiel erfüllt die Version die Mindestanforderung.

    [ec2-user ~]$ ethtool -i eth0 | grep version version: 2.2.10

    Informationen zum Upgrade Ihres ENA-Treibers finden Sie unter Enhanced networking (Verbessertes Networking).

  • Um diese Metriken in Amazon CloudWatch zu importieren, installieren Sie den CloudWatch-Agenten. Weitere Informationen finden Sie unter Collect network performance metrics (Sammeln von Metriken zur Netzwerkleistung) im Amazon CloudWatch-Benutzerhandbuch.

  • Installieren Sie zur Unterstützung der conntrack_allowance_available-Metrik den ENA-Treiber Version 2.8.1 oder höher.

  • Um das PPS-Limit für ausgehende Fragmente von 1 024 zu überschreiben, installieren Sie den ENA-Treiber Version 2.13.3 oder höher.

Windows-Instances
  • Installieren Sie ENA-Treiberversion 2.2.2 oder höher. Verwenden Sie den Geräte-Manager, um die installierte Version zu überprüfen.

    1. Öffnen Sie den Geräte-Manager, indem Sie ausführe devmgmt.msc.

    2. Erweitern Sie Network Adapters (Netzwerkadapter).

    3. Wählen Sie Amazon Elastic Network Adapter (Amazon-Elastic-Netzwerkadapter), Properties (Eigenschaften).

    4. Suchen Sie auf der Registerkarte Driver (Treiber) nach Driver Version (Treiberversion).

    Informationen zum Upgrade Ihres ENA-Treibers finden Sie unter Enhanced networking (Verbessertes Networking).

  • Um diese Metriken in Amazon CloudWatch zu importieren, installieren Sie den CloudWatch-Agenten. Weitere Informationen finden Sie unter Collect advanced network metrics (Sammeln von fortgeschrittenen Netzwerkmetriken) im Amazon CloudWatch-Benutzerhandbuch.

Metriken für den ENA-Treiber

Der ENA-Treiber liefert die folgenden Metriken in Echtzeit an die Instance. Sie liefern die kumulative Anzahl von Paketen, die seit dem letzten Zurücksetzen des Treibers in jeder Netzwerkschnittstelle in die Warteschlange gestellt oder verworfen wurden.

Metrik Beschreibung Unterstützt auf
bw_in_allowance_exceeded

Die Anzahl der Pakete, die in die Warteschlange gestellt oder verworfen wurden, da die eingehende aggregierte Bandbreite das Maximum für die Instance überschritten hat.

Allen Instance-Typen

bw_out_allowance_exceeded

Die Anzahl der Pakete, die in die Warteschlange gestellt oder verworfen wurden, weil die ausgehende aggregierte Bandbreite das Maximum für die Instance überschritten hat.

Allen Instance-Typen

conntrack_allowance_exceeded

Die Anzahl der verworfenen Pakete, weil die Verbindungsverfolgung das Maximum für die Instance überschritten hat und keine neuen Verbindungen hergestellt werden konnten. Dies kann zu einem Paketverlust für den Datenverkehr zur oder von der Instance führen.

Allen Instance-Typen

conntrack_allowance_available Die Anzahl der nachverfolgten Verbindungen, die von der Instance hergestellt werden können, bevor die zulässige Anzahl nachverfolgter Verbindungen dieses Instance-Typs erreicht wird.

Nur Nitro-basierte Instances

linklocal_allowance_exceeded

Die Anzahl der verworfenen Pakete, weil das PPS des Datenverkehrs zu lokalen Proxy-Diensten das Maximum für die Netzwerkschnittstelle überschritten hat. Dies wirkt sich auf den Datenverkehr zum Amazon-DNS-Service, zum Instance Metadata Service und zum Amazon Time Sync Service aus, hat jedoch keine Auswirkung auf den Datenverkehr an benutzerdefinierte DNS-Resolver.

Allen Instance-Typen

pps_allowance_exceeded

Die Anzahl der Pakete, die in die Warteschlange gestellt oder verworfen wurden, weil die bidirektionale PPS das Maximum für die Instance überschritten hat. *

Allen Instance-Typen

* Abhängig von der Einstellung für den Fragment-Proxymodus für den ENA-Linux-Treiber v2.13.3 oder höher kann dieses Limit auch ausgehende Fragmentverluste umfassen, die 1 024 PPS für die Netzwerkschnittstelle überschreiten. Wenn der Fragment-Proxymodus für den Linux-Treiber aktiviert ist, umgehen ausgehende Fragment-Drops das normalerweise geltende Limit von 1 024 PPS und werden innerhalb der Standard-PPS-Zulagen gezählt. Der Fragment-Proxymodus ist standardmäßig deaktiviert.

Anzeigen der Netzwerkleistungsmetriken für Ihre -Instance

Welches Verfahren Sie verwenden, hängt vom Betriebssystem der Instance ab.

Sie können Metriken in Ihren bevorzugten Tools veröffentlichen, um die Metrikdaten zu visualisieren. Sie können die Metriken beispielsweise mit dem CloudWatch-Agent in Amazon CloudWatch veröffentlichen. Der Agent ermöglicht es Ihnen, einzelne Metriken auszuwählen und die Veröffentlichung zu steuern.

Sie können auch den ethtool verwenden, um die Metriken für jede Netzwerkschnittstelle wie eth0 wie folgt abzurufen.

[ec2-user ~]$ ethtool -S eth0 bw_in_allowance_exceeded: 0 bw_out_allowance_exceeded: 0 pps_allowance_exceeded: 0 conntrack_allowance_exceeded: 0 linklocal_allowance_exceeded: 0 conntrack_allowance_available: 136812

Sie können die Metriken mit jedem Verbraucher von Windows-Leistungsindikatoren anzeigen. Die Daten können gemäß dem EnaPerfCounter-Manifest analysiert werden. Dies ist eine XML-Datei, die den Leistungsindikatoranbieter und seine Leistungsindikatoren definiert.

So installieren Sie das Manifest

Wenn Sie die Instance mit einem AMI gestartet haben, das ENA-Treiber 2.2.2 oder höher enthält oder das Installationsskript im Treiberpaket für ENA-Treiber 2.2.2 verwendet hat, ist das Manifest bereits installiert. Gehen Sie folgendermaßen vor, um das Manifest manuell zu installieren:

  1. Entfernen Sie das vorhandene Manifest mit dem folgenden Befehl:

    unlodctr /m:EnaPerfCounters.man
  2. Kopieren Sie die Manifestdatei EnaPerfCounters.man aus dem Treiberinstallationspaket nach %SystemRoot%\System32\drivers.

  3. Installieren Sie das neue Manifest mit dem folgenden Befehl:

    lodctr /m:EnaPerfCounters.man
So zeigen Sie Metriken mit dem Leistungsmonitor an
  1. Öffnen Sie Performance Monitor.

  2. Drücken Sie Strg+N, um neue Leistungsindikatoren hinzuzufügen.

  3. Wählen Sie ENA Packets Shaping (ENA-Paketformung) aus der Liste aus.

  4. Wählen Sie die zu überwachenden Instances aus und wählen Sie Add (Hinzufügen).

  5. Klicken Sie auf OK.

Metriken für ENA Express

ENA Express wird von der AWS Scalable Reliable Datagram (SRD)-Technologie unterstützt. SRD ist ein leistungsstarkes Netzwerktransportprotokoll, das dynamisches Routing verwendet, um den Durchsatz zu erhöhen und die Tail-Latenz zu minimieren. 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 zu helfen sicherzustellen, dass Ihre Instances die Leistungsverbesserungen der SRD-Technologie voll ausschöpfen. Zum Beispiel:

  • Bewerten Sie Ihre Ressourcen, um sicherzustellen, dass sie über ausreichende Kapazitäten verfügen, um mehr SRD-Verbindungen herzustellen.

  • Identifizieren Sie, wo potenzielle Probleme bestehen, die verhindern, dass berechtigte ausgehende Pakete SRD verwenden.

  • Berechnen Sie den Prozentsatz des ausgehenden Datenverkehrs, welcher SRD für die Instance verwendet.

  • Berechnen Sie den Prozentsatz des eingehenden Datenverkehrs, welcher SRD für die Instance verwendet.

Anmerkung

Verwenden Sie zum Erstellen von Metriken die Treiberversion 2.8 oder höher.

Um eine Liste der Metriken für Ihre Linux Instance anzuzeigen, die für ENA Express gefiltert wurde, führen Sie den folgenden ethtool-Befehl für Ihre Netzwerkschnittstelle aus (hier als eth0 gezeigt). Notieren Sie sich den Wert der ena_srd_mode-Metrik.

[ec2-user ~]$ ethtool -S eth0 | grep ena_srd NIC statistics: ena_srd_mode: 1 ena_srd_tx_pkts: 0 ena_srd_eligible_tx_pkts: 0 ena_srd_rx_pkts: 0 ena_srd_resource_utilization: 0

Die folgenden Metriken sind für alle Instances verfügbar, für die ENA Express aktiviert ist.

ena_srd_mode

Beschreibt, welche ENA-Express-Features aktiviert sind. Werte sind wie folgt:

  • 0 = ENA Express aus, UDP aus

  • 1 = ENA Express ein, UDP aus

  • 2 = ENA Express aus, UDP ein

    Anmerkung

    Dies passiert nur, wenn ENA Express ursprünglich aktiviert war und UDP für dessen Verwendung konfiguriert wurde. Der vorherige Wert wird für UDP-Verkehr beibehalten.

  • 3 = ENA Express ein, UDP ein

ena_srd_eligible_tx_pkts

Die Anzahl der Netzwerke wie folgt:

  • 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.

  • Die sendenden und empfangenden Instances müssen in derselben Availability Zone laufen.

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

Anmerkung

Die ENA-Express-Zulassungsmetrik deckt die Quell- und Zielanforderungen sowie das Netzwerk zwischen den beiden Endpunkten ab. Zugelassene Pakete können immer noch disqualifiziert werden, nachdem sie bereits gezählt wurden. Wenn beispielsweise ein berechtigtes Paket das Maximum Transmission Unit (MTU)-Limit überschreitet, wird auf die standardmäßige ENA-Übertragung zurückgegriffen, obwohl das Paket im Zähler immer noch als geeignet angezeigt wird.

ena_srd_tx_pkts

Die Anzahl der SRD-Pakete, die innerhalb eines bestimmten Zeitraums übertragen wurden.

ena_srd_rx_pkts

Die Anzahl der SRD-Pakete, die innerhalb eines bestimmten Zeitraums empfangen wurden.

ena_srd_resource_utilization

Der Prozentsatz der maximal zulässigen Arbeitsspeichernutzung für gleichzeitige SRD-Verbindungen, den die Instance verbraucht hat.

Um zu überprüfen, ob die Paketübertragung SRD verwendet, können Sie die Anzahl der zulässigen Pakete (ena_srd_eligible_tx_pkts-Metrik) mit der Anzahl der übertragenen SRD-Pakete (ena_srd_tx_pkts-Metrik) während eines bestimmten Zeitraums vergleichen.

Ausgehender Verkehr (ausgehende Pakete)

Um sicherzustellen, dass Ihr ausgehender Verkehr SRD wie erwartet verwendet, vergleichen Sie die Anzahl der SRD-fähigen Pakete (ena_srd_eligible_tx_pkts) mit der Anzahl der gesendeten SRD-Pakete (ena_srd_tx_pkts) über einen bestimmten Zeitraum.

Signifikante Unterschiede zwischen der Anzahl der berechtigten Pakete und der Anzahl der gesendeten SRD-Pakete werden häufig durch Probleme mit der Ressourcenauslastung verursacht. Wenn die an die Instance angeschlossene Netzwerkkarte ihre maximalen Ressourcen aufgebraucht hat oder wenn die Pakete das MTU-Limit überschreiten, können berechtigte Pakete nicht über SRD übertragen werden und müssen auf die standardmäßige ENA-Übertragung zurückgreifen. Pakete können auch während Live-Migrationen oder Aktualisierungen des Live-Servers in diese Lücke fallen. Eine zusätzliche Fehlerbehebung ist erforderlich, um die Grundursache zu ermitteln.

Anmerkung

Sie können gelegentliche geringfügige Unterschiede zwischen der Anzahl der berechtigten Pakete und der Anzahl der SRD-Pakete ignorieren. Dies kann beispielsweise passieren, wenn Ihre Instance eine Verbindung zu einer anderen Instance für SRD-Traffic herstellt.

Um herauszufinden, welcher Prozentsatz Ihres gesamten ausgehenden Datenverkehrs in einem bestimmten Zeitraum SRD verwendet, vergleichen Sie die Anzahl der gesendeten SRD-Pakete (ena_srd_tx_pkts) mit der Gesamtzahl der Pakete, die während dieser Zeit für die Instance (NetworkPacketOut) gesendet wurden.

Eingehender Verkehr (eingehende Pakete)

Um herauszufinden, welcher Prozentsatz Ihres gesamten eingehenden Datenverkehrs in einem bestimmten Zeitraum SRD verwendet, vergleichen Sie die Anzahl der empfangenen SRD-Pakete (ena_srd_rx_pkts) mit der Gesamtzahl der Pakete, die während dieser Zeit von der Instance (NetworkPacketIn) erhalten wurden.

Ressourcenauslastung

Die Ressourcenauslastung basiert auf der Anzahl der gleichzeitigen SRD-Verbindungen, die eine einzelne Instance zu einem bestimmten Zeitpunkt unterhalten kann. Die Metrik zur Ressourcenauslastung (ena_srd_resource_utilization) verfolgt Ihre aktuelle Auslastung für die Instance. Wenn sich die Auslastung 100 % nähert, können Sie Leistungsproblemen erwarten. ENA Express greift von der SRD auf die standardmäßige ENA-Übertragung zurück und die Wahrscheinlichkeit, dass Pakete verworfen werden, steigt. Eine hohe Ressourcenauslastung ist ein Zeichen dafür, dass es an der Zeit ist, die Instance aufzuskalieren, um die Netzwerkleistung zu verbessern.

Anmerkung

Wenn der Netzwerkverkehr für eine Instance ein Maximum überschreitet, formtAWS den Datenverkehr, der das Maximum übersteigt, indem es Netzwerkpakete in die Warteschlange stellt und dann löscht.

Persistenz

Ausgangs- und Eingangsmetriken fallen an, solange ENA Express für die Instance aktiviert ist. Metriken fallen nicht mehr an, wenn ENA Express deaktiviert ist, aber sie bleiben bestehen, solange die Instance noch läuft. Die Metriken werden zurückgesetzt, wenn die Instance neu gestartet oder beendet wird oder wenn die Netzwerkschnittstelle von der Instance getrennt ist.

Metriken zur Netzwerkleistung mit dem DPDK-Treiber für ENA

Die ENA-Treiberversion 2.2.0 und höher unterstützt die Berichterstellung von Netzwerkmetriken. DPDK 20.11 enthält den ENA-Treiber 2.2.0 und ist die erste DPDK-Version, die dieses Feature unterstützt.

Der DPDK-Treiber v25.03 oder höher unterstützt den Fragment-Proxymodus. Wenn der Fragment-Proxymodus für den DPDK-Treiber aktiviert ist, umgehen ausgehende Fragment-Drops das normalerweise geltende Limit von 1 024 PPS und werden innerhalb der Standard-PPS-Zulagen gezählt. Der Fragment-Proxymodus ist standardmäßig deaktiviert.

Sie können eine Beispielanwendung verwenden, um DPDK-Statistiken anzuzeigen. Um eine interaktive Version der Beispielanwendung zu starten, führen Sie den folgenden Befehl aus.

./app/dpdk-testpmd -- -i

In dieser interaktiven Sitzung können Sie einen Befehl eingeben, um erweiterte Statistiken für einen Port abzurufen. Der folgende Beispielbefehl ruft die Statistiken für Port 0 ab.

show port xstats 0

Das Folgende ist ein Beispiel für eine interaktive Sitzung mit der DPDK-Beispielanwendung.

[root@ip-192.0.2.0 build]# ./app/dpdk-testpmd -- -i EAL: Detected 4 lcore(s) EAL: Detected 1 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: Probing VFIO support... EAL: Invalid NUMA socket, default to 0 EAL: Invalid NUMA socket, default to 0 EAL: Probe PCI driver: net_ena (1d0f:ec20) device: 0000:00:06.0 (socket 0) EAL: No legacy callbacks, legacy socket not created Interactive-mode selected Port 0: link state change event testpmd: create a new mbuf pool <mb_pool_0>: n=171456, size=2176, socket=0 testpmd: preferred mempool ops selected: ring_mp_mc Warning! port-topology=paired and odd forward ports number, the last port will pair with itself. Configuring Port 0 (socket 0) Port 0: 02:C7:17:A2:60:B1 Checking link statuses... Done Error during enabling promiscuous mode for port 0: Operation not supported - ignore testpmd> show port xstats 0 ###### NIC extended statistics for port 0 rx_good_packets: 0 tx_good_packets: 0 rx_good_bytes: 0 tx_good_bytes: 0 rx_missed_errors: 0 rx_errors: 0 tx_errors: 0 rx_mbuf_allocation_errors: 0 rx_q0_packets: 0 rx_q0_bytes: 0 rx_q0_errors: 0 tx_q0_packets: 0 tx_q0_bytes: 0 wd_expired: 0 dev_start: 1 dev_stop: 0 tx_drops: 0 bw_in_allowance_exceeded: 0 bw_out_allowance_exceeded: 0 pps_allowance_exceeded: 0 conntrack_allowance_exceeded: 0 linklocal_allowance_exceeded: 0 rx_q0_cnt: 0 rx_q0_bytes: 0 rx_q0_refill_partial: 0 rx_q0_bad_csum: 0 rx_q0_mbuf_alloc_fail: 0 rx_q0_bad_desc_num: 0 rx_q0_bad_req_id: 0 tx_q0_cnt: 0 tx_q0_bytes: 0 tx_q0_prepare_ctx_err: 0 tx_q0_linearize: 0 tx_q0_linearize_failed: 0 tx_q0_tx_poll: 0 tx_q0_doorbells: 0 tx_q0_bad_req_id: 0 tx_q0_available_desc: 1023 testpmd>

Weitere Informationen über die Beispielanwendung und deren Verwendung zum Abrufen erweiterter Statistiken. Siehe Testpmd Application User Guide (Testpmd-Anwendungs-Benutzerhandbuch) in der DPDK-Dokumentation.

Metriken für Instances, die FreeBSD ausführen

Ab Version 2.3.0 unterstützt der ENA-FreeBSD-Treiber das Sammeln von Netzwerkleistungsmetriken auf Instances, auf denen FreeBSD ausgeführt wird. Um die Erfassung von FreeBSD-Metriken zu aktivieren, geben Sie den folgenden Befehl ein und legen Sie das Intervall auf einen Wert zwischen 1 und 3 600 fest. Dies gibt an, wie oft in Sekunden FreeBSD-Metriken gesammelt werden.

sysctl dev.ena.network_interface.eni_metrics.sample_interval=interval

Mit dem folgenden Befehl wird beispielsweise festgelegt, dass der Treiber alle 10 Sekunden FreeBSD-Metriken auf der Netzwerkschnittstelle 1 sammelt:

sysctl dev.ena.1.eni_metrics.sample_interval=10

Um die Sammlung von FreeBSD-Metriken zu deaktivieren, können Sie den vorhergehenden Befehl ausführen und 0 als das Intervall angeben.

Sobald Sie FreeBSD-Metriken sammeln aktiviert haben, können Sie den neuesten Satz gesammelter Metriken abrufen, indem Sie den folgenden Befehl ausführen.

sysctl dev.ena.network_interface.eni_metrics