Contrôlez les performances réseau de votre instance EC2 - Amazon Elastic Compute Cloud

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Contrôlez les performances réseau de votre instance EC2

Le pilote Elastic Network Adapter (ENA) publie les métriques de performances réseau à partir des instances où elles sont activées. Vous pouvez utiliser ces métriques pour résoudre les problèmes de performances d’instance, choisir la taille d’instance appropriée pour une charge de travail, planifier les activités de mise à l’échelle de manière proactive et comparer les applications afin de déterminer si elles optimisent les performances disponibles sur une instance.

Amazon EC2 définit les valeurs maximales du réseau au niveau de l'instance afin de garantir une expérience réseau de haute qualité, notamment des performances réseau cohérentes quelle que soit la taille des instances. AWS fournit les valeurs maximales suivantes pour chaque instance :

  • Capacité de bande passante : chaque instance EC2 dispose d’une bande passante maximale pour le trafic entrant et sortant agrégé, en fonction du type et de la taille de l’instance. Certaines instances utilisent un mécanisme de crédit I/O réseau pour attribuer la bande passante réseau en fonction de l’utilisation moyenne de la bande passante. Amazon EC2 dispose également d'une bande passante maximale pour le trafic vers Internet AWS Direct Connect et vers Internet. Pour plus d’informations, consultez Bande passante réseau d’instance Amazon EC2.

  • Performances P acket-per-second (PPS) — Chaque instance EC2 possède des performances PPS maximales, en fonction du type et de la taille de l'instance.

  • Connexions suivies : le groupe de sécurité assure le suivi de chaque connexion établie pour s’assurer que les paquets de retour sont livrés comme prévu. Il existe un nombre maximal de connexions qui peuvent être suivies par instance. Pour plus d’informations, veuillez consulter Suivi de connexion de groupe de sécurité

  • Accès à un service lien-local : Amazon EC2 fournit un maximum de PPS par interface réseau pour le trafic vers des services tels que le service DNS, le service des métadonnées d’instance et le service Amazon Time Sync.

Lorsque le trafic réseau d'une instance dépasse un maximum, AWS façonne le trafic qui dépasse le maximum en mettant en file d'attente puis en supprimant les paquets réseau. Vous pouvez surveiller lorsque le trafic dépasse un maximum à l’aide des métriques de performances réseau. Ces métriques vous informent en temps réel de l’impact sur le trafic réseau et des éventuels problèmes de performances réseau.

Prérequis

Instances Linux
  • Installez le pilote ENA version 2.2.10 ou ultérieure. Pour vérifier la version installée, utilisez la commande ethtool. Dans l’exemple suivant, la version répond aux exigences minimales.

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

    Pour mettre à niveau votre pilote ENA, consultez la section Mise en réseau améliorée.

  • Pour importer ces métriques sur Amazon CloudWatch, installez l' CloudWatch agent. Pour plus d'informations, consultez la section Collecter les indicateurs de performance du réseau dans le guide de CloudWatch l'utilisateur Amazon.

  • Pour prendre en charge les conntrack_allowance_available métriques, installez la version 2.8.1 du pilote ENA.

instances Windows
  • Installez le pilote ENA version 2.2.2 ou ultérieure. Pour vérifier la version installée, utilisez le Gestionnaire de périphériques comme suit.

    1. Ouvrez le Gestionnaire de périphériques en exécutant devmgmt.msc.

    2. Développez Network Adapters (Cartes réseau).

    3. Sélectionnez Amazon Elastic Network Adapter, puis Properties (Propriétés).

    4. Sous l’onglet Driver (Pilote), recherchez Driver Version (Version du pilote).

    Pour mettre à niveau votre pilote ENA, consultez la section Mise en réseau améliorée.

  • Pour importer ces métriques sur Amazon CloudWatch, installez l' CloudWatch agent. Pour plus d'informations, consultez la section Collecter des métriques réseau avancées dans le guide de CloudWatch l'utilisateur Amazon.

Métriques du pilote ENA

Le pilote ENA apporte les métriques suivantes à l’instance en temps réel. Ces métriques fournissent le nombre cumulé de paquets mis en file d’attente ou ignorés sur chaque interface réseau depuis la dernière réinitialisation du pilote.

Métrique Description Pris en charge sur
bw_in_allowance_exceeded

Nombre de paquets mis en file d’attente ou ignorés flottee que la bande passante agrégée entrante a dépassé le maximum de l’instance.

Tous les types d’instances

bw_out_allowance_exceeded

Nombre de paquets mis en file d’attente ou ignorés flottee que la bande passante agrégée sortante a dépassé le maximum de l’instance.

Tous les types d’instances

conntrack_allowance_exceeded

Nombre de paquets ignorés flottee que le suivi des connexions a dépassé le maximum de l’instance et que de nouvelles connexions n’ont pas pu être établies. Cela peut entraîner une perte de paquets pour le trafic vers ou en provenance de l’instance.

Tous les types d’instances

conntrack_allowance_available Nombre de connexions suivies pouvant être établies par l’instance avant d’atteindre l’allocation Connexions suivies de ce type d’instance.

Instances créées uniquement sur le système AWS Nitro

linklocal_allowance_exceeded

Nombre de paquets ignorés abandonné que le PPS du trafic vers les services proxy locaux a dépassé le maximum de l’interface réseau. Cela affecte le trafic vers le service DNS, le service des métadonnées d’instance et le service Amazon Time Sync.

Tous les types d’instances

pps_allowance_exceeded

Nombre de paquets mis en file d’attente ou ignorés flottee que le PPS bidirectionnel a dépassé le maximum de l’instance.

Tous les types d’instances

Afficher les métriques de performances réseau de votre instance

La procédure que vous utilisez dépend du système d'exploitation de l'instance.

Vous pouvez publier des métriques dans vos outils favoris pour visualiser les données métriques. Par exemple, vous pouvez publier les statistiques sur Amazon à CloudWatch l'aide de l' CloudWatch agent. L’agent vous permet de sélectionner des métriques individuelles et de contrôler la publication.

Vous pouvez également utiliser la commande ethtool pour récupérer les métriques de chaque interface réseau, telles que eth0, comme suit.

[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

Vous pouvez afficher les métriques à l’aide de n’importe quel consommateur de compteurs de performances Windows. Les données peuvent être analysées en fonction du EnaPerfCounters manifeste. Il s’agit d’un fichier XML qui définit le fournisseur de compteurs de performances et ses ensembles de compteurs.

Pour installer le manifeste

Si vous avez lancé l’instance à l’aide d’une AMI contenant le pilote ENA 2.2.2 ou version ultérieure, ou si vous avez utilisé le script d’installation dans le package de pilotes pour le pilote ENA 2.2.2, le manifeste est déjà installé. Pour installer le manifeste manuellement, procédez comme suit :

  1. Supprimez le manifeste existant à l’aide de la commande suivante :

    unlodctr /m:EnaPerfCounters.man
  2. Copiez EnaPerfCounters.man, le fichier manifeste, du package d’installation du pilote vers %SystemRoot%\System32\drivers.

  3. Installez le nouveau manifeste à l’aide de la commande suivante :

    lodctr /m:EnaPerfCounters.man
Pour afficher les métriques à l'aide de Performance Monitor
  1. Ouvrez Performance Monitor.

  2. Appuyez sur Ctrl+N pour ajouter de nouveaux compteurs.

  3. Sélectionnez ENA Packets Shaping (Mise en forme de paquets ENA) dans la liste.

  4. Sélectionnez les instances à surveiller, puis Add (Ajouter).

  5. Choisissez OK.

Métriques pour ENA Express

ENA Express est alimenté par la technologie AWS Scalable Reliable Datagram (SRD). SRD est un protocole de transport réseau à hautes performances qui utilise le routage dynamique pour augmenter le débit et minimiser la latence de queue. Vous pouvez utiliser les métriques ENA Express pour vous assurer que vos instances tirent pleinement parti des améliorations de performances apportées par la technologie SRD, par exemple :

  • Évaluez vos ressources pour vous assurer qu’elles disposent d’une capacité suffisante pour établir davantage de connexions SRD.

  • Identifiez les problèmes potentiels qui empêchent les paquets sortants éligibles d’utiliser SRD.

  • Calculez le pourcentage de trafic sortant qui utilise SRD pour l’instance.

  • Calculez le pourcentage de trafic entrant qui utilise SRD pour l’instance.

Note

Pour produire des métriques, utilisez la version 2.8 ou supérieure du pilote.

Les métriques ENA Express suivantes sont disponibles à l’aide de la commande ethtool pour les instances basées sur Linux.

  • ena_srd_mode : décrit les fonctionnalités ENA Express qui sont activées. Les valeurs sont les suivantes :

    • 0 = ENA Express désactivé, UDP désactivé

    • 1 = ENA Express activé, UDP désactivé

    • 2 = ENA Express désactivé, UDP activé

      Note

      Cela se produit uniquement lorsque ENA Express a été initialement activé et que UDP a été configuré pour l’utiliser. La valeur précédente est conservée pour le trafic UDP.

    • 3 = ENA Express activé, UDP activé

  • ena_srd_eligible_tx_pkts : le nombre de paquets réseau envoyés au cours d’une période donnée qui répondent aux exigences SRD en matière d’éligibilité, comme suit :

    • Les types d’instance d’envoi et de réception sont pris en charge. Consultez la table Types d’instance pris en charge pour ENA Express pour plus d’informations.

    • ENA Express doit être configuré pour les instances d’envoi et de réception.

    • Les instances d'envoi et de réception doivent s'exécuter dans la même zone de disponibilité.

    • Le chemin réseau entre les instances ne doit pas inclure de boîtiers intergiciels. ENA Express ne prend actuellement pas en charge les boîtiers intergiciels.

    Note

    La métrique d’éligibilité ENA Express couvre les exigences en matière de source et de destination, ainsi que le réseau entre les deux points de terminaison. Les paquets éligibles peuvent toujours être disqualifiés une fois qu’ils ont déjà été comptés. Par exemple, si un paquet éligible dépasse la limite d’unité de transmission maximale (MTU), il revient à une transmission ENA standard, bien que le paquet soit toujours considéré comme éligible dans le compteur.

  • ena_srd_tx_pkts : nombre de paquets SRD transmis au cours d’une période donnée.

  • ena_srd_rx_pkts : nombre de paquets SRD reçus au cours d’une période donnée.

  • ena_srd_resource_utilization : pourcentage de l’utilisation maximale de la mémoire autorisée pour les connexions SRD simultanées que l’instance a consommées.

Pour consulter la liste des mesures filtrées pour ENA Express, exécutez la commande ethtool suivante pour votre interface réseau (présentée ici en tant que eth0) :

[ec2-user ~]$ ethtool -S eth0 | grep ena_srd NIC statistics: ena_srd_mode: 0 ena_srd_tx_pkts: 0 ena_srd_eligible_tx_pkts: 0 ena_srd_rx_pkts: 0 ena_srd_resource_utilization: 0
Trafic sortant (paquets sortants)

Pour vous assurer que votre trafic sortant utilise SRD comme prévu, comparez le nombre de paquets SRD éligibles (ena_srd_eligible_tx_pkts) au nombre de paquets SRD envoyés (ena_srd_tx_pkts) sur une période donnée.

Les différences importantes entre le nombre de paquets éligibles et le nombre de paquets SRD envoyés sont souvent dues à des problèmes d’utilisation des ressources. Lorsque la carte réseau attachée à l’instance a épuisé ses ressources maximales, ou si les paquets dépassent la limite MTU, les paquets éligibles ne peuvent pas être transmis via SRD et doivent revenir à la transmission ENA standard. Les paquets peuvent également tomber dans cette lacune lors de migrations en direct ou de mises à jour de serveurs en direct. Un dépannage supplémentaire est nécessaire pour déterminer la cause racine.

Note

Vous pouvez ignorer les différences mineures occasionnelles entre le nombre de paquets éligibles et le nombre de paquets SRD. Cela peut se produire lorsque votre instance établit une connexion à une autre instance pour le trafic SRD, par exemple.

Pour savoir quel pourcentage de votre trafic sortant total utilise SRD sur une période donnée, comparez le nombre de paquets SRD envoyés (ena_srd_tx_pkts) au nombre total de paquets envoyés pour l’instance (NetworkPacketOut) pendant cette période.

Trafic entrant (paquets entrants)

Pour savoir quel pourcentage de votre trafic entrant utilise le SRD, comparez le nombre de paquets SRD reçus (ena_srd_rx_pkts) sur une période donnée au nombre total de paquets reçus pour l’instance (NetworkPacketIn) pendant cette période.

Utilisation des ressources

L’utilisation des ressources est basée sur le nombre de connexions SRD simultanées qu’une seule instance peut détenir à un moment donné. La métrique d’utilisation des ressources (ena_srd_resource_utilization) assure le suivi de votre utilisation actuelle pour l’instance. À mesure que l’utilisation approche les 100 %, vous pouvez vous attendre à des problèmes de performances. ENA Express passe de la transmission SRD à la transmission ENA standard, et le risque de perte de paquets augmente. Une utilisation élevée des ressources indique qu’il est temps de réduire la taille de l’instance afin d’améliorer les performances réseau.

Note

Lorsque le trafic réseau d'une instance dépasse un maximum, AWS façonne le trafic qui dépasse le maximum en mettant en file d'attente puis en supprimant les paquets réseau.

Persistance

Les métriques de sortie et d’entrée s’accumulent lorsque ENA Express est activé pour l’instance. Les métriques cessent de s’accumuler si ENA Express est désactivé, mais elles persistent tant que l’instance est toujours en cours d’exécution. Les métriques sont réinitialisées si l’instance redémarre ou est arrêtée, ou si l’interface réseau est détachée de l’instance.

Métriques de performances réseau avec le pilote DPDK pour ENA

Le pilote ENA version 2.2.0 et versions ultérieures prend en charge la génération de rapports de métriques réseau. DPDK version 20.11 inclut le pilote ENA 2.2.0 et est la première version DPDK à prendre en charge cette fonction.

Vous pouvez utiliser un exemple d’application pour afficher les statistiques DPDK. Pour démarrer une version interactive de l’exemple d’application, exécutez la commande suivante.

./app/dpdk-testpmd -- -i

Dans cette session interactive, vous pouvez saisir une commande afin de récupérer des statistiques étendues pour un port. L’exemple de commande suivant récupère les statistiques pour le port 0.

show port xstats 0

Voici un exemple de séance interactive avec l’exemple d’application DPDK.

[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>

Pour en savoir plus sur l’exemple d’application et son utilisation pour récupérer des statistiques étendues, consultez la section Testpmd Application User Guide de la documentation DPDK.

Métriques sur les instances exécutant FreeBSD

À partir de la version 2.3.0, le pilote ENA FreeBSD prend en charge la collecte des métriques de performance réseau sur les instances exécutant FreeBSD. Pour activer la collecte des métriques FreeBSD, saisissez la commande suivante et définissez interval (l’intervalle) sur une valeur comprise entre 1 et 3 600. Cette valeur spécifie la fréquence, en secondes, à laquelle les métriques FreeBSD sont collectées.

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

Par exemple, la commande suivante définit la collecte des métriques FreeBSD par le pilote sur l’interface réseau une fois toutes les 10 secondes :

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

Pour désactiver la collecte des métriques FreeBSD, vous pouvez exécuter la même commande et définir l’intervalle sur 0.

Après avoir activé la collecte des métriques FreeBSD, vous pouvez récupérer le dernier ensemble de métriques collectées en exécutant la commande suivante.

sysctl dev.ena.network_interface.eni_metrics