Sélectionner vos préférences de cookies

Nous utilisons des cookies essentiels et des outils similaires qui sont nécessaires au fonctionnement de notre site et à la fourniture de nos services. Nous utilisons des cookies de performance pour collecter des statistiques anonymes afin de comprendre comment les clients utilisent notre site et d’apporter des améliorations. Les cookies essentiels ne peuvent pas être désactivés, mais vous pouvez cliquer sur « Personnaliser » ou « Refuser » pour refuser les cookies de performance.

Si vous êtes d’accord, AWS et les tiers approuvés utiliseront également des cookies pour fournir des fonctionnalités utiles au site, mémoriser vos préférences et afficher du contenu pertinent, y compris des publicités pertinentes. Pour accepter ou refuser tous les cookies non essentiels, cliquez sur « Accepter » ou « Refuser ». Pour effectuer des choix plus détaillés, cliquez sur « Personnaliser ».

Considérations relatives au système Nitro en vue de l’optimisation des performances

Mode de mise au point
Considérations relatives au système Nitro en vue de l’optimisation des performances - 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.

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.

Le Système Nitro est un ensemble de composants matériels et logiciels élaborés par AWS qui garantissent des performances élevées, une haute disponibilité et un niveau de sécurité élevé. Le système Nitro propose des fonctionnalités de type « métal nu » qui éliminent les frais généraux de virtualisation et prennent en charge les charges de travail qui nécessitent un accès complet au matériel hôte. Pour plus d’informations, consultez la rubrique Système Nitro AWS.

Tous les types d' EC2 instances de la génération actuelle exécutent le traitement des paquets réseau sur les cartes EC2 Nitro. Cette rubrique couvre le traitement de haut niveau des paquets sur la carte Nitro, les aspects communs de l’architecture et de la configuration du réseau qui ont un impact sur les performances du traitement des paquets, et les actions que vous pouvez entreprendre pour atteindre des performances maximales pour vos instances basées sur la carte Nitro.

Les cartes Nitro gèrent toutes les interfaces d'entrée et de sortie (E/S), telles que celles nécessaires aux clouds privés virtuels ()VPCs. Pour tous les composants qui envoient ou reçoivent des informations sur le réseau, les cartes Nitro agissent comme un dispositif informatique autonome destiné au trafic E/S qui est physiquement séparé de la carte mère du système sur laquelle s’exécutent les charges de travail du client.

Flux de paquets sur les cartes Nitro

EC2 les instances basées sur le système Nitro disposent de capacités d'accélération matérielle qui permettent un traitement des paquets plus rapide, tel que mesuré par le débit de paquets par seconde (PPS). Lorsqu’une carte Nitro effectue l’évaluation initiale d’un nouveau flux, elle enregistre des informations qui sont les mêmes pour tous les paquets du flux, comme les groupes de sécurité, les listes de contrôle d’accès et les entrées de la table de routage. Lorsqu’il traite d’autres paquets pour le même flux, il peut utiliser les informations sauvegardées afin de réduire les frais généraux de ces paquets.

Votre débit de connexion est mesuré par le nombre de connexions par seconde (CPS). Chaque nouvelle connexion nécessite des frais généraux de traitement supplémentaires qui doivent être pris en compte dans les estimations de la capacité de charge de travail. Il est important de prendre en compte les mesures CPS et PPS lorsque vous concevez vos charges de travail.

Comment une connexion est-elle établie ?

Lorsqu’une connexion est établie entre une instance basée sur Nitro et un autre point de terminaison, la carte Nitro évalue le flux complet pour le premier paquet envoyé ou reçu entre les deux points de terminaison. Pour les paquets suivants du même flux, une nouvelle évaluation complète n’est généralement pas nécessaire. Il y a cependant des exceptions. Pour plus d’informations sur les exceptions, consultez Paquets n’utilisant pas l’accélération matérielle.

Les propriétés suivantes définissent les deux points de terminaison et le flux de paquets entre eux. L’ensemble de ces cinq propriétés est connu sous le nom de flux composé de 5-uplets.

  • IP Source

  • Port source

  • IP de destination

  • Port de destination

  • Protocole de communication

La direction du flux de paquets est appelée entrée (entrant) et sortie (sortant). Les descriptions de haut niveau suivantes résument le flux de paquets du réseau de bout en bout.

  • Entrée : lorsqu’une carte Nitro traite un paquet réseau entrant, elle l’évalue par rapport aux règles du pare-feu dynamique et aux listes de contrôle d’accès. Elle suit la connexion, la mesure et effectue d’autres actions le cas échéant. Ensuite, elle transmet le paquet à sa destination sur l’unité centrale de l’hôte.

  • Sortie : lorsqu’une carte Nitro traite un paquet réseau sortant, elle recherche la destination de l’interface distante, évalue diverses fonctions VPC, applique des limites de débit et effectue d’autres actions applicables. Ensuite, elle transmet le paquet à sa destination suivante sur le réseau.

Concevez votre réseau pour obtenir des performances optimales

Pour tirer parti des capacités de performance de votre système Nitro, vous devez comprendre quels sont vos besoins en matière de traitement réseau et comment ces besoins affectent la charge de travail de vos ressources Nitro. Vous pouvez alors concevoir des performances optimales pour votre réseau. Les paramètres de votre infrastructure et la conception ainsi que la configuration de la charge de travail de l’application peuvent avoir un impact sur le traitement des paquets et les débits de connexion. Par exemple, si votre application a un débit élevé d’établissement de connexions, comme un service DNS, un pare-feu ou un routeur virtuel, elle aura moins d’occasions de profiter de l’accélération matérielle qui ne se produit qu’après l’établissement de la connexion.

Vous pouvez configurer les paramètres des applications et de l’infrastructure pour rationaliser les charges de travail et améliorer les performances du réseau. Cependant, tous les paquets ne sont pas éligibles à l’accélération. Le système Nitro utilise le flux complet du réseau pour les nouvelles connexions et pour les paquets qui ne sont pas éligibles à l’accélération.

Le reste de cette section se concentre sur les considérations relatives à la conception des applications et de l’infrastructure afin de s’assurer que les paquets circulent le plus possible sur le chemin accéléré.

Considérations relatives à la conception du réseau pour le système Nitro

Lorsque vous configurez le trafic réseau pour votre instance, il y a de nombreux aspects à prendre en compte qui peuvent affecter les performances du PPS. Une fois qu’un flux est établi, la majorité des paquets qui entrent ou sortent régulièrement sont éligibles à l’accélération. Toutefois, des exceptions existent pour garantir que la conception de l’infrastructure et les flux de paquets continuent à respecter les normes du protocole.

Pour obtenir les meilleures performances de votre carte Nitro, vous devez examiner attentivement les avantages et les inconvénients des détails de configuration suivants pour votre infrastructure et vos applications.

Considérations relatives à l’infrastructure

La configuration de votre infrastructure peut affecter le flux de paquets et l’efficacité du traitement. La liste suivante comprend quelques considérations importantes.

Configuration de l’interface réseau avec asymétrie

Les groupes de sécurité utilisent le suivi des connexions pour suivre les informations sur le trafic qui circule vers et depuis l’instance. Le routage asymétrique, où le trafic entre dans une instance par une interface réseau et en sort par une autre interface réseau, peut réduire les performances maximales qu’une instance peut atteindre si les flux sont suivis. Pour plus d’informations sur le suivi des connexions des groupes de sécurité, les connexions non suivies et les connexions suivies automatiquement, consultez Suivi des connexions du groupe de EC2 sécurité Amazon.

Pilotes de réseau

Les pilotes de réseau sont régulièrement mis à jour et publiés. Si vos pilotes sont obsolètes, cela peut nuire considérablement aux performances. Maintenez vos pilotes à jour pour vous assurer que vous disposez des derniers correctifs et que vous pouvez profiter des améliorations de performance, telles que la fonctionnalité de chemin accéléré qui n’est disponible que pour la dernière génération de pilotes. Les pilotes antérieurs ne prennent pas en charge la fonctionnalité de chemin accéléré.

Pour profiter de la fonctionnalité de chemin accéléré, nous vous recommandons d’installer la dernière version du pilote ENA sur vos instances.

Instances Linux : pilote ENA Linux 2.2.9 ou version ultérieure. Pour installer ou mettre à jour le pilote ENA Linux depuis le GitHub référentiel Amazon Drivers, consultez la section Compilation du pilote du fichier readme.

Instances Windows : pilote ENA Windows 2.0.0 ou version ultérieure. Pour installer ou mettre à jour le pilote ENA Windows, consultez Installation du pilote ENA sur les instances EC2 Windows.

Distance entre les points de terminaison

Une connexion entre deux instances situées dans la même zone de disponibilité peut traiter plus de paquets par seconde qu’une connexion entre régions en raison du fenêtrage TCP au niveau de la couche d’application, qui détermine la quantité de données pouvant être transmises à un moment donné. De longues distances entre les instances augmentent la latence et réduisent le nombre de paquets que les points de terminaison peuvent traiter.

Considérations relatives à la conception de l’application

Certains aspects de la conception et de la configuration de l’application peuvent affecter l’efficacité de votre traitement. La liste suivante comprend quelques considérations importantes.

Taille du paquet

Des paquets de plus grande taille peuvent augmenter le débit des données qu’une instance peut envoyer et recevoir sur le réseau. Des paquets plus petits peuvent augmenter le taux de traitement des paquets, mais cela peut réduire la largeur de bande maximale atteinte lorsque le nombre de paquets dépasse les autorisations PPS.

Si la taille d’un paquet dépasse l’unité de transmission maximale (MTU) d’un saut de réseau à réseau, un routeur sur le chemin peut le fragmenter. Les fragments de paquets qui en résultent sont considérés comme des exceptions et sont traités au débit standard (et non accélérés). Cela peut entraîner des variations dans vos performances. Amazon EC2 prend en charge les trames jumbo de 9001 octets, mais tous les services ne le prennent pas en charge. Nous vous recommandons d’évaluer votre topologie lorsque vous configurez la MTU.

Compromis de protocole

Les protocoles fiables comme TCP ont plus de frais généraux que les protocoles non fiables comme UDP. La réduction des frais généraux et le traitement simplifié du réseau dans le cadre du protocole de transport UDP peuvent se traduire par un taux de PPS plus élevé, mais au détriment de la fiabilité de la livraison des paquets. Si la fiabilité de la livraison des paquets n’est pas essentielle pour votre application, le protocole UDP peut être une bonne option.

Micro-éclatement

On parle de micro-éclatement lorsque le trafic dépasse les autorisations pendant de brèves périodes de temps au lieu d’être réparti uniformément. Ce phénomène se produit généralement à l’échelle de la microseconde.

Par exemple, supposons que vous disposiez d’une instance capable d’envoyer jusqu’à 10 Gbit/s, et que votre application envoie la totalité des 10 Gbit/s en une demi-seconde. Ce micro-éclatement dépasse la capacité allouée pendant la première demi-seconde et ne laisse rien pour le reste de la seconde. Même si vous avez envoyé 10 Go dans un délai d’une seconde, les tolérances dans la première demi-seconde peuvent entraîner la mise en file d’attente ou l’abandon de paquets.

Vous pouvez utiliser un planificateur de réseau tel que Linux Traffic Control pour vous aider à rythmer votre débit et éviter de mettre des paquets en file d’attente ou de les abandonner en raison du micro-éclatement.

Nombre de flux

Un flux unique est limité à 5 Gbit/s, sauf s’il fait partie d’un groupe de placement du cluster qui prend en charge jusqu’à 10 Gbit/s, ou s’il utilise ENA Express, qui prend en charge jusqu’à 25 Gbit/s.

De même, une carte Nitro peut traiter plus de paquets à travers plusieurs flux qu’en utilisant un seul flux. Pour atteindre la vitesse maximale de traitement des paquets par instance, nous recommandons d’utiliser au moins 100 flux sur des instances ayant une bande passante agrégée de 100 Gbit/s ou plus. Au fur et à mesure que les capacités de la bande passante globale augmentent, le nombre de flux nécessaires pour atteindre les taux de traitement maximaux augmente également. L’analyse comparative vous aidera à déterminer la configuration dont vous avez besoin pour atteindre des taux de pointe sur votre réseau.

Nombre de files d’attente de l’adaptateur réseau élastique (ENA)

Par défaut, le nombre maximum de files d’attente ENA est alloué à une interface réseau en fonction de la taille et du type de votre instance. La réduction du nombre de files d’attente peut réduire le taux maximal de PPS réalisable. Nous recommandons d’utiliser l’allocation de file d’attente par défaut afin d’obtenir les meilleures performances.

Pour Linux, une interface réseau est configurée par défaut avec le maximum. Pour les applications basées sur le kit de développement du plan de données (DPDK), nous vous recommandons de configurer le nombre maximum de files d’attente disponibles.

Frais généraux liés à la fonctionnalisation

Des fonctionnalités telles que le Traffic Mirroring et ENA Express peuvent ajouter des frais généraux de traitement, ce qui peut réduire les performances absolues de traitement des paquets. Vous pouvez limiter l’utilisation des fonctionnalités ou les désactiver pour augmenter les taux de traitement des paquets.

Suivi des connexions afin de maintenir l’état

Vos groupes de sécurité utilisent le suivi des connexions pour stocker des informations sur le trafic vers et depuis l’instance. Le suivi des connexions applique des règles à chaque flux de trafic réseau afin de déterminer si le trafic est autorisé ou refusé. La carte Nitro utilise le suivi de flux pour maintenir l’état du flux. Au fur et à mesure que des règles de groupe de sécurité sont appliquées, l’évaluation du flux nécessite plus de travail.

Note

Tous les flux de trafic du réseau ne sont pas suivis. Si une règle de groupe de sécurité est configurée avec Connexions non suivies, aucun travail supplémentaire n’est nécessaire, sauf pour les connexions qui sont automatiquement suivies afin de garantir un routage symétrique lorsqu’il existe plusieurs chemins de réponse valides.

Paquets n’utilisant pas l’accélération matérielle

Tous les paquets ne peuvent pas bénéficier de l’accélération matérielle. Le traitement de ces exceptions implique une certaine surcharge de traitement qui est nécessaire afin de garantir l’intégrité des flux de votre réseau. Les flux de réseau doivent répondre de manière fiable aux normes de protocole, se conformer aux changements dans la conception du VPC et acheminer les paquets uniquement vers les destinations autorisées. Cependant, les frais généraux réduisent vos performances.

Fragments de paquets

Comme indiqué dans Les considérations relatives à l’application, les fragments de paquets résultant de paquets qui dépassent la MTU du réseau sont traités comme des exceptions et ne peuvent pas bénéficier de l’accélération matérielle.

Connexions inactives

Lorsqu’une connexion n’a aucune activité pendant un certain temps, même si elle n’a pas atteint son délai d’attente, le système peut la déprioriser. Ensuite, si des données arrivent après que la connexion a été dé-priorisée, le système doit les traiter comme une exception afin de se reconnecter.

Pour gérer vos connexions, vous pouvez utiliser les délais de suivi des connexions afin de fermer les connexions inactives. Vous pouvez également utiliser les messages de maintien de connexion (keepalives) de TCP pour maintenir les connexions inactives ouvertes. Pour de plus amples informations, veuillez consulter Délai de suivi d’inactivité de la connexion.

Mutation VPC

Les mises à jour des groupes de sécurité, des tables de routage et des listes de contrôle d’accès doivent toutes être réévaluées au cours du processus de traitement afin de s’assurer que les entrées de routage et les règles des groupes de sécurité s’appliquent toujours comme prévu.

Flux ICMP

Le protocole ICMP (Internet Control Message Protocol) est un protocole de couche réseau que les appareils réseau utilisent pour diagnostiquer les problèmes de communication du réseau. Ces paquets utilisent toujours le flux complet.

Optimisez les performances du réseau sur votre système Nitro

Avant de prendre des décisions en matière de conception ou d’ajuster les paramètres du réseau sur votre instance, nous vous recommandons de suivre les étapes suivantes afin de vous assurer que vous obtiendrez le meilleur résultat possible :

  1. Découvrez les avantages et les inconvénients des mesures que vous pouvez prendre afin d’améliorer les performances en examinant Considérations relatives à la conception du réseau pour le système Nitro.

    Pour en savoir plus et connaître les meilleures pratiques relatives à la configuration de votre instance sous Linux, consultez le guide des meilleures pratiques et de l'optimisation des performances du pilote ENA Linux sur GitHub.

  2. Comparez vos charges de travail avec le nombre de flux actifs maximaux afin de déterminer une base de référence pour la performance de votre application. Avec une base de performance, vous pouvez tester des variations dans vos paramètres ou la conception de l’application pour comprendre quelles considérations auront le plus d’impact, en particulier si vous prévoyez d’augmenter ou de réduire la taille de l’application.

La liste suivante contient des actions que vous pouvez entreprendre afin d’optimiser les performances de votre PPS, en fonction des besoins de votre système.

  • Réduisez la distance physique entre deux instances. Lorsque les instances d’envoi et de réception sont situées dans la même zone de disponibilité ou utilisent des groupes de placement du cluster, vous pouvez réduire le nombre de sauts qu’un paquet doit effectuer pour se déplacer d’un point de terminaison à l’autre.

  • Utilisez Connexions non suivies.

  • Utilisez le protocole UDP pour le trafic réseau.

  • Pour les EC2 instances dont la bande passante cumulée est supérieure ou égale à 100 Gbit/s, répartissez la charge de travail sur au moins 100 flux individuels afin de répartir le travail de manière uniforme sur la carte Nitro.

Surveiller la performance des instances Linux

Vous pouvez utiliser les métriques Ethtool sur les instances Linux afin de surveiller les indicateurs de performance du réseau de l’instance, tels que la bande passante, le taux de paquets et le suivi des connexions. Pour de plus amples informations, veuillez consulter Surveillez les performances du réseau pour les paramètres ENA de votre EC2 instance.

ConfidentialitéConditions d'utilisation du sitePréférences de cookies
© 2025, Amazon Web Services, Inc. ou ses affiliés. Tous droits réservés.