Améliorez les performances du réseau entre EC2 les instances avec ENA Express - 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.

Améliorez les performances du réseau entre EC2 les instances avec ENA Express

ENAExpress est alimenté par la technologie AWS Scalable Reliable Datagram (SRD). SRDest un protocole de transport réseau à hautes performances qui utilise le routage dynamique pour augmenter le débit et minimiser la latence de queue. Avec ENA Express, vous pouvez communiquer entre deux EC2 instances de la même zone de disponibilité.

Avantages d'ENAExpress
  • Augmente la bande passante maximale qu'un flux unique peut utiliser de 5 Gbit/s à 25 Gbit/s dans la zone de disponibilité, jusqu'à la limite d'instances agrégées.

  • Réduit la latence finale du trafic réseau entre les EC2 instances, en particulier pendant les périodes de forte charge réseau.

  • Détecte et évite les chemins réseau encombrés.

  • Gère certaines tâches directement dans la couche réseau, telles que la réorganisation des paquets du côté récepteur et la plupart des retransmissions nécessaires. Cela permet de libérer la couche d’application pour d’autres tâches.

Note
  • Si votre application envoie ou reçoit un volume élevé de paquets par seconde et doit optimiser la latence la plupart du temps, en particulier pendant les périodes où il n’y a pas d’encombrement sur le réseau, Réseaux améliorés peut être mieux adaptée à votre réseau.

  • ENALe trafic express ne peut pas être envoyé à travers les sous-réseaux d'une zone locale.

Une fois que vous avez activé ENA Express pour la connexion d'interface réseau sur une instance, l'instance d'envoi initie la communication avec l'instance de réception et SRD détecte si ENA Express fonctionne à la fois sur l'instance d'envoi et sur l'instance de réception. Si ENA Express fonctionne, la communication peut utiliser SRD la transmission. Si ENA Express ne fonctionne pas, la communication revient à la ENA transmission standard.

Pendant les périodes où le trafic réseau est faible, vous remarquerez peut-être une légère augmentation de la latence des paquets (des dizaines de microsecondes) lorsque le paquet utilise ENA Express. Pendant ces périodes, les applications qui privilégient des caractéristiques de performance réseau spécifiques peuvent bénéficier d'ENAExpress comme suit :

  • Les processus peuvent bénéficier d'une augmentation de la bande passante à flux unique maximale de 5 Gbit/s à 25 Gbit/s au sein d'une même zone de disponibilité, jusqu'à la limite d'instances agrégée. Par exemple, si un type d’instance spécifique prend en charge jusqu’à 12,5 Gbit/s, la bande passante à flux unique est également limitée à 12,5 Gbit/s.

  • Les processus qui s’exécutent depuis longtemps devraient bénéficier d’une réduction de la latence pendant les périodes d’encombrement du réseau.

  • Les processus peuvent bénéficier d’une distribution plus régulière et plus standard des temps de réponse du réseau.

Comment fonctionne ENA Express

ENAExpress est alimenté par la technologie AWS Scalable Reliable Datagram (SRD). Il distribue les paquets pour chaque flux réseau sur différents chemins AWS réseau et ajuste dynamiquement la distribution lorsqu'il détecte des signes de congestion. Elle gère également la réorganisation des paquets du côté récepteur.

Pour qu'ENAExpress puisse gérer le trafic réseau comme prévu, les instances d'envoi et de réception ainsi que la communication entre elles doivent répondre à toutes les exigences suivantes :

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

  • ENAExpress doit être configuré pour les instances d'envoi et de réception. S'il existe des différences dans la configuration, vous pouvez vous retrouver dans des situations où le trafic utilise par défaut la ENA transmission standard. Le scénario suivant montre ce qui peut se passer.

    Scénario : différences de configuration

    Instance ENAExpress activé UDPutilise ENA Express
    Instance 1 Oui Oui
    Instance 2 Oui Non

    Dans ce cas, le TCP trafic entre les deux instances peut utiliser ENA Express, car les deux instances l'ont activé. Cependant, étant donné que l'une des instances n'utilise pas ENA Express pour UDP le trafic, la communication entre ces deux instances UDP utilise la ENA transmission standard.

  • 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. ENAExpress ne prend actuellement pas en charge les boîtiers intergiciels.

  • (Instances Linux uniquement) Pour utiliser tout le potentiel de bande passante, utilisez la version 2.2.9 ou supérieure du pilote.

  • (Instances Linux uniquement) Pour produire des métriques, utilisez la version 2.8 ou supérieure du pilote.

Si une exigence n'est pas satisfaite, les instances utilisent le UDP protocole standardTCP/mais sans SRD communiquer.

Pour vous assurer que le pilote réseau de votre instance est configuré pour des performances optimales, consultez les meilleures pratiques recommandées pour ENA les pilotes. Ces meilleures pratiques s'appliquent également à ENA Express. Pour plus d'informations, consultez le guide des meilleures pratiques et d'optimisation des performances des pilotes ENA Linux sur le GitHub site Web.

Note

Amazon EC2 fait référence à la relation entre une instance et une interface réseau qui y est attachée en tant que pièce jointe. ENALes paramètres Express s'appliquent à la pièce jointe. Si l'interface réseau est détachée de l'instance, la pièce jointe n'existe plus et les paramètres ENA Express qui s'y appliquaient ne sont plus en vigueur. Il en va de même lorsqu’une instance est résiliée, même si l’interface réseau est conservée.

Une fois que vous avez activé ENA Express pour les pièces jointes de l'interface réseau sur l'instance d'envoi et sur l'instance de réception, 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 SRD technologie. Pour plus d'informations sur les métriques ENA Express, consultezMétriques pour ENA Express.

Types d'instances pris en charge pour ENA Express

Les onglets suivants présentent les types d'instances compatibles avec ENA Express.

General purpose
Type d’instance Architecture
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
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
m8g.12xlarge arm64
m8g.16xlarge arm64
m8g.24xlarge arm64
m8g.48xlarge arm64
m8g.metal-24xl arm64
m8g.metal-48xl arm64
Compute optimized
Type d’instance Architecture
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.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
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
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
c8g.12xlarge arm64
c8g.16xlarge arm64
c8g.24xlarge arm64
c8g.48xlarge arm64
c8g.metal-24xl arm64
c8g.metal-48xl arm64
Memory optimized
Type d’instance Architecture
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
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
r8g.12xlarge arm64
r8g.16xlarge arm64
r8g.24xlarge arm64
r8g.48xlarge arm64
r8g.metal-24xl arm64
r8g.metal-48xl arm64
u7i-12tb.224xlarge x86_64
u7in-16tb.224xlarge x86_64
u7in-24tb.224xlarge x86_64
u7in-32tb.224xlarge 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
Accelerated computing
Type d’instance Architecture
g6.48xlarge x86_64
g6e.12xlarge x86_64
g6e.24xlarge x86_64
g6e.48xlarge x86_64
Storage optimized
Type d’instance Architecture
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
im4gn.4xlarge arm64
im4gn.8xlarge arm64
im4gn.16xlarge arm64

Conditions préalables pour les instances Linux

Pour garantir le ENA bon fonctionnement d'Express, mettez à jour les paramètres de votre instance Linux comme suit.

  • Si votre instance utilise des trames jumbo, exécutez la commande suivante pour définir votre unité de transmission maximale (MTU) sur8900.

    [ec2-user ~]$ sudo ip link set dev eth0 mtu 8900
  • Augmentez la taille de la bague du récepteur (Rx) comme suit :

    [ec2-user ~]$ ethtool -G device rx 8192
  • Pour optimiser la bande passante d'ENAExpress, configurez les limites de votre TCP file d'attente comme suit :

    1. Définissez la limite des TCP petites files d'attente à 1 Mo ou plus. Cela augmente la quantité de données mises en file d’attente pour transmission sur un socket.

      sudo sh -c 'echo 1048576 > /proc/sys/net/ipv4/tcp_limit_output_bytes'
    2. Désactivez les limites de files d’attente d’octets sur le périphérique eth si elles sont activées pour votre distribution Linux. Cela augmente le nombre de données mises en file d’attente pour la transmission au niveau de la file d’attente des périphériques.

      sudo sh -c 'for txq in /sys/class/net/eth0/queues/tx-*; do echo max > ${txq}/byte_queue_limits/limit_min; done'
      Note

      Le ENA pilote de la distribution Amazon Linux désactive les limites de file d'octets par défaut.

Régler les performances des paramètres ENA Express sur les instances Linux

Pour vérifier la configuration de votre instance Linux afin d'optimiser les performances d'ENAExpress, vous pouvez exécuter le script suivant, disponible sur le GitHub référentiel Amazon :

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

Le script exécute une série de tests et suggère les modifications de configuration recommandées et requises.