

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.

# Mise en réseau améliorée sur les EC2 instances Amazon
<a name="enhanced-networking"></a>

La mise en réseau améliorée utilise la I/O virtualisation à racine unique (SR-IOV) pour fournir des fonctionnalités réseau hautes performances sur les types d'instances pris en charge. Le SR-IOV est une méthode de virtualisation des appareils qui fournit des I/O performances supérieures et une faible utilisation du processeur par rapport aux interfaces réseau virtualisées traditionnelles. La mise en réseau améliorée offre une bande passante plus élevée, des performances supérieures en termes de paquets par seconde (PPS) et une latence toujours plus faible entre les instances. L’utilisation de la mise en réseau améliorée n’implique aucun coût supplémentaire.

Pour plus d'informations sur la vitesse réseau prise en charge pour chaque type d'instance, consultez [Amazon EC2 Instance Types](https://aws.amazon.com/ec2/instance-types/).

Vous pouvez activer la mise en réseau améliorée à l’aide de l’un des mécanismes suivants :

**Elastic Network Adapter (ENA)**  
L’Adaptateur réseau élastique (ENA) prend en charge des vitesses réseau allant jusqu’à 100 Gbit/s pour les types d’instances pris en charge.  
Toutes [les instances basées sur Nitro](instance-types.md#instance-hypervisor-type) utilisent ENA pour une mise en réseau améliorée. En outre, les instances Xen suivantes utilisent ENA : H1, I3, G3, `m4.16xlarge`, P2, P3, P3dn et R4.  
Pour de plus amples informations, veuillez consulter [Activez la mise en réseau améliorée grâce à l’ENA sur vos instances EC2](enhanced-networking-ena.md).

**Interface Intel 82599 Virtual Function (VF)**  
L’interface Intel 82599 Virtual Function prend en charge les vitesses réseau allant jusqu’à 10 Gbit/s pour les types d’instance pris en charge.  
Les types d’instance suivants utilisent l’interface Intel 82599 VF pour la mise en réseau améliorée : C3, C4, D2, I2, M4 (sauf m4.16xlarge) et R3.  
Pour de plus amples informations, veuillez consulter [Mise en réseau améliorée grâce à l’interface Intel 82599 VF](sriov-networking.md).

**Topics**
+ [Elastic Network Adapter (ENA)](enhanced-networking-ena.md)
+ [ENA Express](ena-express.md)
+ [Intel 82599 VF](sriov-networking.md)
+ [Surveiller les performances réseau](monitoring-network-performance-ena.md)
+ [Améliorer la latence du réseau sous Linux](ena-improve-network-latency-linux.md)
+ [Considérations relatives aux performances de Nitro](ena-nitro-perf.md)
+ [Optimiser les performances du réseau sous Windows](enhanced-networking-os.md)

# Activez la mise en réseau améliorée grâce à l’ENA sur vos instances EC2
<a name="enhanced-networking-ena"></a>

Amazon EC2 offre des fonctionnalités de mise en réseau améliorée via l’adaptateur Elastic Network Adapter (ENA). Pour utiliser la mise en réseau améliorée, vous devez utiliser une AMI qui inclut le pilote ENA requis ou l’installer manuellement. Vous pouvez ensuite activer la prise en charge ENA sur votre instance.

Pour consulter les notes de mise à jour ou les instructions d’installation d’un pilote ENA, consultez l’onglet correspondant à la plateforme du système d’exploitation de votre instance.

------
#### [ Linux ]

Vous pouvez consulter la documentation suivante sur GitHub :
+ Consultez les [notes de mise à jour du pilote du noyau Linux ENA](https://github.com/amzn/amzn-drivers/blob/master/kernel/linux/ena/RELEASENOTES.md) sur GitHub.
+ Pour une présentation du pilote de noyau Linux ENA qui inclut les instructions d'installation, voir le [pilote de noyau Linux pour la famille Elastic Network Adapter (ENA)](https://github.com/amzn/amzn-drivers/blob/master/kernel/linux/ena/README.rst) sur GitHub.

------
#### [ Windows ]

Vous pouvez consulter la documentation suivante dans la section **Gérer les pilotes de périphériques** de ce guide :
+ [Suivre les versions des pilotes ENA pour Windows](ena-driver-releases-windows.md).
+ [Installer le pilote ENA sur les instances Windows EC2](ena-adapter-driver-install-upgrade-win.md).

------

Pour les instances basées sur Nitro, les fonctionnalités de mise en réseau améliorées varient en fonction de la version de Nitro que le type d’instance met en œuvre.

Pour consulter les spécifications du réseau de votre instance, cliquez sur le lien de la famille d’instances correspondant à votre type d’instance. Si vous ne savez pas quelle famille d’instance s’applique, consultez les [conventions de dénomination](https://docs.aws.amazon.com/ec2/latest/instancetypes/instance-type-names.html) dans le guide des *types d’instances Amazon EC2*.
+ [Spécifications du réseau relatives aux instances de calcul accéléré](https://docs.aws.amazon.com/ec2/latest/instancetypes/ac.html#ac_network)
+ [Spécifications du réseau relatives aux instances optimisées pour le calcul](https://docs.aws.amazon.com/ec2/latest/instancetypes/co.html#co_network)
+ [Spécifications du réseau relatives aux instances à usage général](https://docs.aws.amazon.com/ec2/latest/instancetypes/gp.html#gp_network)
+ [Spécifications du réseau relatives aux instances de calcul à haute performance](https://docs.aws.amazon.com/ec2/latest/instancetypes/hpc.html#hpc_network)
+ [Spécifications du réseau relatives aux instances à mémoire optimisée](https://docs.aws.amazon.com/ec2/latest/instancetypes/mo.html#mo_network)
+ [Spécifications du réseau relatives aux instances optimisées pour le stockage](https://docs.aws.amazon.com/ec2/latest/instancetypes/so.html#so_network)

**Topics**
+ [Conditions préalables à l’amélioration de la mise en réseau grâce à l’ENA](#ena-requirements)
+ [Tester l’activation de réseaux améliorés](test-enhanced-networking-ena.md)
+ [Activer les réseaux améliorés sur une instance](enabling_enhanced_networking.md)
+ [Files d’attente ENA](ena-queues.md)
+ [Résoudre les problèmes liés au pilote du noyau ENA sous Linux](troubleshooting-ena.md)
+ [Résoudre les problèmes liés au pilote Windows de l'adaptateur réseau élastique (ENA)](troubleshoot-ena-driver.md)

## Conditions préalables à l’amélioration de la mise en réseau grâce à l’ENA
<a name="ena-requirements"></a>

Pour préparer la mise en réseau améliorée à l’aide de l’adaptateur réseau ENA, configurez votre instance comme suit :
+ Lancez une [instance basée sur Nitro](instance-types.md#instance-hypervisor-type).
+ Vérifiez que l’instance a une connectivité Internet.
+ Si l’instance comporte des données importantes que vous souhaitez conserver, vous devez les sauvegarder maintenant en créant une AMI à partir de votre instance. La mise à jour du pilote du noyau ENA et l’activation de l’attribut `enaSupport` peuvent rendre inaccessibles des instances ou des systèmes d’exploitation incompatibles. Si cela se produit et que vous disposez d’une sauvegarde récente, vos données continueront d’être conservées.
+ **Instances Linux** – Lancez l’instance en utilisant une version prise en charge du noyau Linux et une distribution prise en charge, de sorte que le réseau amélioré ENA soit automatiquement activé pour votre instance. Pour plus d’informations, consultez [ENA Linux Kernel Driver Release Notes](https://github.com/amzn/amzn-drivers/blob/master/kernel/linux/ena/RELEASENOTES.md).
+ **Instances Windows** : si l'instance exécute Windows Server 2008 R2 SP1, assurez-vous qu'elle dispose de la mise à jour du [support de signature de code SHA-2](https://support.microsoft.com/en-us/help/4474419/sha-2-code-signing-support-update).
+ [AWS CloudShell](https://console.aws.amazon.com/cloudshell)Utilisez-le depuis ou installez et configurez le [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)ou [AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)sur n'importe quel ordinateur de votre choix, de préférence sur votre ordinateur de bureau ou portable local. AWS Management Console Pour plus d’informations, consultez la section [Accès à Amazon EC2](concepts.md#access-ec2) du [Guide de l’utilisateur AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html). La gestion de la mise en réseau améliorée n’est pas possible à partir de la console Amazon EC2.

# Tester l’activation de réseaux améliorés
<a name="test-enhanced-networking-ena"></a>

Vous pouvez tester si la mise en réseau améliorée est activée dans vos instances ou dans votre AMIs.

**Attribut de l’instance**  
Vérifiez la valeur de l’attribut d’instance `enaSupport`.

------
#### [ AWS CLI ]

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html).

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 \
    --query "Reservations[].Instances[].EnaSupport"
```

Si la mise en réseau améliorée est activée, la sortie se présente comme suit.

```
[
    true
]
```

------
#### [ PowerShell ]

Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html).

```
(Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.EnaSupport
```

Si la mise en réseau améliorée est activée, la sortie se présente comme suit.

```
True
```

------

**Attribut de l’image**  
Vérifiez la valeur de l’attribut d’image `enaSupport`.

------
#### [ AWS CLI ]

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html).

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query "Images[].EnaSupport"
```

Si la mise en réseau améliorée est activée, la sortie se présente comme suit.

```
[
    true
]
```

------
#### [ PowerShell ]

Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Image.html).

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).EnaSupport
```

Si la mise en réseau améliorée est activée, la sortie se présente comme suit.

```
True
```

------

**Pilote d’interface réseau pour Linux**  
Utilisez la commande suivante pour vérifier que le pilote de noyau `ena` est utilisé sur une interface particulière, en remplaçant le nom de l’interface que vous souhaitez vérifier. Si vous utilisez une seule interface (par défaut), ce sera `eth0`. Si votre distribution Linux prend en charge les noms de réseau prévisibles, il peut s’agir d’un nom comme `ens5`. Pour plus d’informations, développez la section pour RHEL, SUSE et CentOS dans [Activer les réseaux améliorés sur une instance](enabling_enhanced_networking.md).

Dans l’exemple suivant, le pilote du noyau `ena` n’est pas chargé, car le pilote répertorié est `vif`.

```
[ec2-user ~]$ ethtool -i eth0
driver: vif
version:
firmware-version:
bus-info: vif-0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
```

Dans cet exemple, le pilote du noyau `ena` est chargé et se trouve à la version minimale recommandée. La mise en réseau améliorée est correctement configurée pour cette instance.

```
[ec2-user ~]$ ethtool -i eth0
driver: ena
version: 1.5.0g
firmware-version:
expansion-rom-version:
bus-info: 0000:00:05.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
```

# Activer les réseaux améliorés sur une instance
<a name="enabling_enhanced_networking"></a>

La procédure à suivre dépend du système d’exploitation de l’instance.

## Amazon Linux
<a name="enable-enhanced-networking-ena-AL"></a>

 AMIs Pour Amazon Linux, ils incluent le pilote de noyau requis pour améliorer la mise en réseau avec l'ENA installé et la prise en charge de l'ENA activée. Par conséquent, si vous lancez une instance avec la dernière version HVM d’Amazon Linux sur un type d’instance pris en charge, la mise en réseau améliorée est déjà activée pour votre instance. Pour de plus amples informations, veuillez consulter [Tester l’activation de réseaux améliorés](test-enhanced-networking-ena.md).

## Ubuntu
<a name="enhanced-networking-ena-ubuntu"></a>

La dernière version d'Ubuntu HVM AMIs inclut le pilote de noyau requis pour une mise en réseau améliorée avec l'ENA installé et la prise en charge de l'ENA activée. Par conséquent, si vous lancez une instance avec la dernière AMI HVM Ubuntu sur un type d’instance pris en charge, la mise en réseau améliorée est déjà activée pour votre instance. Pour plus d’informations, consultez [Tester l’activation de réseaux améliorés](test-enhanced-networking-ena.md). 

Si vous avez lancé votre instance à l’aide d’une AMI plus ancienne et que la mise en réseau améliorée n’est pas déjà activée pour celle-ci, vous pouvez installer le package noyau `linux-aws` pour obtenir les pilotes de mise en réseau améliorée les plus récents et mettre à jour l’attribut requis.

**Pour installer le package du noyau `linux-aws` (Ubuntu 16.04 ou version ultérieure)**  
Ubuntu 16.04 et 18.04 sont fournis avec le noyau personnalisé Ubuntu (package du noyau `linux-aws`). Pour utiliser un autre noyau, contactez [Support](https://console.aws.amazon.com/support).<a name="ubuntu-enhanced-networking-ena-procedure"></a>

**Pour installer le package du noyau `linux-aws` (Ubuntu Trusty 14.04)**

1. <a name="ubuntu-enhanced-networking-ena-start-step"></a>Connectez-vous à votre instance.

1. Mettez à jour le cache du package et les packages.

   ```
   ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y linux-aws
   ```
**Important**  
Si, lors d’une mise à jour, vous êtes invité à installer `grub`, utilisez `/dev/xvda` pour y installer `grub`, puis choisissez de conserver la version courante de `/boot/grub/menu.lst`.

1. [Instance basée sur EBS] À partir de votre ordinateur local, arrêtez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) (AWS Tools for Windows PowerShell).

   [Instance basée sur le stockage d’instance] Vous ne pouvez pas arrêter l’instance pour modifier l’attribut. Vous devez utiliser cette procédure : [Pour activer la mise en réseau améliorée sur Ubuntu (instances basées sur le stockage d’instance)](#enhanced-networking-ena-instance-store-ubuntu).

1. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée à l’aide de l’une des commandes suivantes:
   + [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) (AWS CLI)

     ```
     aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --ena-support
     ```
   + [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html)(Outils pour Windows PowerShell)

     ```
     Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $true
     ```

1. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans [Créer une AMI basée sur Amazon EBS](creating-an-ami-ebs.md). L’AMI hérite de l’attribut `enaSupport` de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

1. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) (AWS Tools for Windows PowerShell).<a name="enhanced-networking-ena-instance-store-ubuntu"></a>

**Pour activer la mise en réseau améliorée sur Ubuntu (instances basées sur le stockage d’instance)**

Suivez la procédure précédente jusqu’à l’étape à laquelle vous avez arrêté l’instance. Créez une nouvelle AMI comme décrit dans [Création d’une AMI basée sur Amazon S3](creating-an-ami-instance-store.md), en veillant à activer l’attribut de mise en réseau améliorée lors de l’enregistrement de l’AMI.
+ [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) (AWS CLI)

  ```
  aws ec2 register-image --ena-support ...
  ```
+ [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) (AWS Tools for Windows PowerShell)

  ```
  Register-EC2Image -EnaSupport $true ...
  ```

## RHEL, SUSE, CentOS
<a name="enhanced-networking-ena-linux"></a>

Les dernières versions AMIs pour Red Hat Enterprise Linux, SUSE Linux Enterprise Server et CentOS incluent le pilote de noyau requis pour améliorer la mise en réseau avec l'ENA et la prise en charge de l'ENA est activée. Par conséquent, si vous lancez une instance avec la dernière AMI HVM Ubuntu sur un type d’instance pris en charge, la mise en réseau améliorée est déjà activée pour votre instance. Pour plus d’informations, consultez [Tester l’activation de réseaux améliorés](test-enhanced-networking-ena.md).

La procédure suivante fournit les étapes générales pour activer la mise en réseau améliorée via ENA sur une distribution Linux autre qu’Amazon Linux AMI ou Ubuntu. Pour plus d’informations, telles que la syntaxe détaillée des commandes, les emplacements de fichier ou la prise en charge des packages et des outils, consultez la documentation spécifique de votre distribution Linux.

**Pour activer la mise en réseau améliorée sur Linux**

1. <a name="other-linux-enhanced-networking-ena-start-step"></a>Connectez-vous à votre instance.

1. Clonez le code source du pilote `ena` du noyau sur votre instance GitHub à partir de[https://github.com/amzn/amzn-drivers](https://github.com/amzn/amzn-drivers). (SUSE Linux Enterprise Server 12 SP2 et versions ultérieures incluent ENA 2.02 par défaut, vous n'êtes donc pas obligé de télécharger et de compiler le pilote ENA. Pour SUSE Linux Enterprise Server 12 SP2 et versions ultérieures, vous devez déposer une demande pour ajouter la version du pilote que vous souhaitez au noyau d'origine). 

   ```
   git clone https://github.com/amzn/amzn-drivers
   ```

1. Compilez et installez le pilote du noyau `ena` sur votre instance. Ces étapes dépendent de la distribution Linux. Pour plus d’informations sur la compilation du pilote de noyau sur Red Hat Enterprise Linux, consultez la section [Comment installer le dernier pilote ENS pour la prise en charge améliorée des réseaux sur une instance Amazon EC2 qui exécute RHEL ?](https://repost.aws/knowledge-center/install-ena-driver-rhel-ec2)

1. Exécutez la commande **sudo depmod** pour mettre à jour les dépendances du pilote du noyau.

1. <a name="other-linux-enhanced-networking-ena-stop-step"></a>Mettez à jour `initramfs` sur votre instance pour vous assurer que le nouveau pilote du noyau se charge au moment du démarrage. Par exemple, si votre distribution prend en charge **dracut**, vous pouvez utiliser la commande suivante :

   ```
   dracut -f -v
   ```

1. <a name="predictable-network-names-ena"></a>Déterminez si par défaut votre système utilise des noms d’interface réseau prévisibles. Les systèmes qui utilisent **systemd** ou **udev** version 197 ou supérieure peuvent renommer les périphériques Ethernet et ne garantissent pas qu’une seule interface réseau sera nommée `eth0`. Ce comportement peut entraîner des problèmes de connexion à votre instance. Pour plus d’informations et pour voir les autres options de configuration, consultez la section sur les [noms d’interface réseau prévisibles](https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/) sur le site web de freedesktop.org.

   1. Vous pouvez vérifier les versions **systemd** ou **udev** sur les systèmes RPM en utilisant la commande suivante :

      ```
      rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+'
      systemd-208-11.el7_0.2.x86_64
      ```

      Dans l’exemple Red Hat Enterprise Linux 7 ci-dessus, la version **systemd** est 208, de sorte que les noms d’interface réseau prévisibles doivent être désactivés.

   1. Désactivez les noms d’interface réseau prévisibles en ajoutant l’option `net.ifnames=0` à la ligne `GRUB_CMDLINE_LINUX` dans `/etc/default/grub`.

      ```
      sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
      ```

   1. Générez à nouveau le fichier de configuration grub.

      ```
      sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      ```

1. [Instance basée sur EBS] À partir de votre ordinateur local, arrêtez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) (AWS CLI), [https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) (AWS Tools for Windows PowerShell).

   [Instance basée sur le stockage d’instance] Vous ne pouvez pas arrêter l’instance pour modifier l’attribut. Vous devez utiliser cette procédure : [Pour activer les réseaux améliorés sur Linux (instances basées sur le stockage d’instances)](#other-linux-enhanced-networking-ena-instance-store).

1. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée `enaSupport` à l’aide de l’une des commandes suivantes:
   + [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) (AWS CLI)

     ```
     aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --ena-support
     ```
   + [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html)(Outils pour Windows PowerShell)

     ```
     Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $true
     ```

1. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans [Créer une AMI basée sur Amazon EBS](creating-an-ami-ebs.md). L’AMI hérite de l’attribut `enaSupport` de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

   Si le système d’exploitation de votre instance contient un fichier `/etc/udev/rules.d/70-persistent-net.rules`, vous devez le supprimer avant de créer l’AMI. Ce fichier contient l’adresse MAC de la carte Ethernet de l’instance d’origine. Si une autre instance démarre avec ce fichier, le système d’exploitation ne pourra pas trouver le périphérique et il se peut qu’`eth0` échoue, entraînant des problèmes de démarrage. Le fichier est à nouveau généré au cycle de démarrage suivant et les instances lancées depuis l’AMI créent leur propre version du fichier.

1. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) (AWS Tools for Windows PowerShell).

1. (Facultatif) Connectez-vous à votre instance et vérifiez que le pilote du noyau est installé.

   Si vous ne parvenez pas à vous connecter à votre instance après avoir activé la mise en réseau améliorée, consultez [Résoudre les problèmes liés au pilote du noyau ENA sous Linux](troubleshooting-ena.md).<a name="other-linux-enhanced-networking-ena-instance-store"></a>

**Pour activer les réseaux améliorés sur Linux (instances basées sur le stockage d’instances)**

Suivez la procédure précédente jusqu’à l’étape à laquelle vous avez arrêté l’instance. Créez une nouvelle AMI comme décrit dans [Création d’une AMI basée sur Amazon S3](creating-an-ami-instance-store.md), en veillant à activer l’attribut de mise en réseau améliorée lors de l’enregistrement de l’AMI.
+ [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) (AWS CLI)

  ```
  aws ec2 register-image --ena-support ...
  ```
+ [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) (AWS Tools for Windows PowerShell)

  ```
  Register-EC2Image -EnaSupport ...
  ```

## Ubuntu avec DKMS
<a name="enhanced-networking-ena-ubuntu-dkms"></a>

Cette méthode est fournie à des fins de test et de rétroaction uniquement. Elle n’est pas destinée à être utilisée avec des déploiements en production. Pour plus d’informations sur les déploiements en production, consultez [Ubuntu](#enhanced-networking-ena-ubuntu).

**Important**  
L’utilisation de DKMS annule le contrat de support pour votre abonnement. Il ne doit pas être utilisé pour les déploiements de production.

**Pour activer la mise en réseau améliorée via ENA sur Ubuntu (instances basées sur EBS)**

1. Suivez les étapes 1 et 2 dans [Ubuntu](#enhanced-networking-ena-ubuntu).

1. Installez les packages `build-essential` pour compiler le pilote du noyau et le package `dkms` afin que votre pilote de noyau `ena` soit recréé chaque fois que votre noyau est mis à jour.

   ```
   ubuntu:~$ sudo apt-get install -y build-essential dkms
   ```

1. Clonez la source du pilote `ena` du noyau sur votre instance GitHub à partir de[https://github.com/amzn/amzn-drivers](https://github.com/amzn/amzn-drivers).

   ```
   ubuntu:~$ git clone https://github.com/amzn/amzn-drivers
   ```

1. Déplacez le package `amzn-drivers` vers le répertoire `/usr/src/` afin que DKMS puisse le trouver et le générer à chaque mise à jour du noyau. Ajoutez le numéro de version (que vous trouverez dans les notes de version) du code source au nom du répertoire. Par exemple, la version `1.0.0` apparaît dans l’exemple suivant.

   ```
   ubuntu:~$ sudo mv amzn-drivers /usr/src/amzn-drivers-1.0.0
   ```

1. Créez le fichier de configuration DKMS avec les valeurs suivantes, en remplaçant votre version d’`ena`.

   Créez le fichier.

   ```
   ubuntu:~$ sudo touch /usr/src/amzn-drivers-1.0.0/dkms.conf
   ```

   Modifiez le fichier et ajoutez les valeurs suivantes.

   ```
   ubuntu:~$ sudo vim /usr/src/amzn-drivers-1.0.0/dkms.conf
   PACKAGE_NAME="ena"
   PACKAGE_VERSION="1.0.0"
   CLEAN="make -C kernel/linux/ena clean"
   MAKE="make -C kernel/linux/ena/ BUILD_KERNEL=${kernelver}"
   BUILT_MODULE_NAME[0]="ena"
   BUILT_MODULE_LOCATION="kernel/linux/ena"
   DEST_MODULE_LOCATION[0]="/updates"
   DEST_MODULE_NAME[0]="ena"
   AUTOINSTALL="yes"
   ```

1. Ajoutez, compilez et installez le pilote du noyau `ena` sur votre instance à l’aide de DKMS.

   Ajoutez le pilote du noyau à DKMS.

   ```
   ubuntu:~$ sudo dkms add -m amzn-drivers -v 1.0.0
   ```

   Créez le pilote du noyau à l’aide de la commande **dkms**.

   ```
   ubuntu:~$ sudo dkms build -m amzn-drivers -v 1.0.0
   ```

   Installez le pilote du noyau à l’aide de **dkms**.

   ```
   ubuntu:~$ sudo dkms install -m amzn-drivers -v 1.0.0
   ```

1. Créez à nouveau `initramfs` afin que le pilote approprié du noyau soit chargé au moment du démarrage.

   ```
   ubuntu:~$ sudo update-initramfs -u -k all
   ```

1. Vérifiez que le pilote du noyau `ena` est installé à l’aide de la commande modinfo ena à partir de [Tester l’activation de réseaux améliorés](test-enhanced-networking-ena.md).

   ```
   ubuntu:~$ modinfo ena
   filename:	   /lib/modules/3.13.0-74-generic/updates/dkms/ena.ko
   version:		1.0.0
   license:		GPL
   description:	Elastic Network Adapter (ENA)
   author:		 Amazon.com, Inc. or its affiliates
   srcversion:	 9693C876C54CA64AE48F0CA
   alias:		  pci:v00001D0Fd0000EC21sv*sd*bc*sc*i*
   alias:		  pci:v00001D0Fd0000EC20sv*sd*bc*sc*i*
   alias:		  pci:v00001D0Fd00001EC2sv*sd*bc*sc*i*
   alias:		  pci:v00001D0Fd00000EC2sv*sd*bc*sc*i*
   depends:
   vermagic:	   3.13.0-74-generic SMP mod_unload modversions
   parm:		   debug:Debug level (0=none,...,16=all) (int)
   parm:		   push_mode:Descriptor / header push mode (0=automatic,1=disable,3=enable)
   		  0 - Automatically choose according to device capability (default)
   		  1 - Don't push anything to device memory
   		  3 - Push descriptors and header buffer to device memory (int)
   parm:		   enable_wd:Enable keepalive watchdog (0=disable,1=enable,default=1) (int)
   parm:		   enable_missing_tx_detection:Enable missing Tx completions. (default=1) (int)
   parm:		   numa_node_override_array:Numa node override map
   (array of int)
   parm:		   numa_node_override:Enable/Disable numa node override (0=disable)
   (int)
   ```

1. Passez à l’étape 3 dans [Ubuntu](#enhanced-networking-ena-ubuntu). 

## Activer les réseaux améliorés sur Windows
<a name="enable-enhanced-networking-ena-windows"></a>

Si vous avez lancé votre instance et qu’elle n’a pas la mise en réseau déjà activée, vous devez télécharger et installer le pilote de la carte réseau requis sur votre instance, puis définir l’attribut d’instance `enaSupport` pour activer la mise en réseau améliorée.

**Pour activer la mise en réseau améliorée**

1. Connectez-vous à votre instance en tant qu’administrateur local.

1. [Windows Server 2016 et 2019 uniquement] Exécutez le PowerShell script de EC2 lancement suivant pour configurer l'instance une fois le pilote installé.

   ```
   PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
   ```

1. Depuis l’instance, installez le pilote comme suit :

   1. [Téléchargez](https://s3.amazonaws.com/ec2-windows-drivers-downloads/ENA/Latest/AwsEnaNetworkDriver.zip) le pilote le plus récent sur l’instance.

   1. Décompressez l’archive zip.

   1. Installez le pilote en exécutant le `install.ps1` PowerShell script.
**Note**  
Si vous obtenez une erreur d’exécution de la stratégie, définissez la stratégie sur `Unrestricted` (par défaut, elle est définie sur `Restricted` ou `RemoteSigned`). Dans une ligne de commande, exécutez`Set-ExecutionPolicy -ExecutionPolicy Unrestricted`, puis réexécutez le `install.ps1` PowerShell script.

1. Depuis votre ordinateur local, arrêtez votre instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) (AWS Tools for Windows PowerShell).

1. Activez la prise en charge ENA sur votre instance comme suit :

   1. Sur votre ordinateur local, vérifiez l’attribut de prise en charge ENA de l’instance EC2 sur votre instance en exécutant l’une des commandes suivantes. Si l’attribut n’est pas activé, la sortie indiquera « [] » ou une valeur vide. `EnaSupport` est défini sur `false` par défaut.
      + [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instances.html) (AWS CLI)

        ```
        aws ec2 describe-instances --instance-ids i-1234567890abcdef0 --query "Reservations[].Instances[].EnaSupport"
        ```
      + [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2Instance.html)(Outils pour Windows PowerShell)

        ```
        (Get-EC2Instance -InstanceId i-1234567890abcdef0).Instances.EnaSupport
        ```

   1. Pour activer la prise en charge ENA, exécutez l’une des commandes suivantes :
      + [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) (AWS CLI)

        ```
        aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --ena-support
        ```
      + [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) (AWS Tools for Windows PowerShell)

        ```
        Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $true
        ```

      Si vous rencontrez des problèmes lorsque vous redémarrez l’instance, vous pouvez également désactiver la prise en charge ENA à l’aide d’une des commandes suivantes :
      + [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) (AWS CLI)

        ```
        aws ec2 modify-instance-attribute --instance-id i-1234567890abcdef0 --no-ena-support
        ```
      + [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) (AWS Tools for Windows PowerShell)

        ```
        Edit-EC2InstanceAttribute -InstanceId i-1234567890abcdef0 -EnaSupport $false
        ```

   1. Vérifiez que l’attribut a été défini sur `true` à l’aide de **describe-instances** ou **Get-EC2Instance** comme indiqué précédemment. Vous devriez désormais voir la sortie suivante :

      ```
      [
      	true
      ]
      ```

1. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) (AWS Tools for Windows PowerShell).

1. Sur l’instance, vérifiez que le pilote ENA est installé et activé comme suit :

   1. Cliquez sur l’icône réseau avec le bouton droit de la souris et choisissez **Open Network and Sharing Center (Ouvrir le Centre Réseau et partage)**.

   1. Choisissez la carte Ethernet (par exemple, **Ethernet 2**).

   1. Sélectionnez **Details (Détails)**. Pour **Network Connection Details (Détails de connexion réseau)**, vérifiez que **Description** a pour valeur **Amazon Elastic Network Adapter**.

1. Créez une AMI à partir de l’instance (facultatif). L’AMI hérite de l’attribut `enaSupport` à partir de l’instance. Par conséquent, vous pouvez utiliser cette AMI pour lancer une autre instance avec ENA activée par défaut.

# Files d’attente ENA
<a name="ena-queues"></a>

Les files d’attente ENA sont allouées aux interfaces réseau avec des limites statiques par défaut basées sur le type et la taille de l’instance. Sur les types d'instances pris en charge, vous pouvez répartir ces files d'attente de manière dynamique entre les interfaces réseau Elastic (ENIs). Bien que le nombre total de files d'attente par instance dépende de son type et de sa taille, vous pouvez en configurer plusieurs ENIs avec des files d'attente ENA jusqu'à atteindre le nombre maximum de files d'attente pour l'ENI et l'instance.

L’allocation flexible des files d’attente ENA optimise la distribution des ressources, permettant ainsi une utilisation maximale du vCPU. Les charges de travail à hautes performances réseau nécessitent généralement plusieurs files d’attente ENA. Vous pouvez optimiser les performances du réseau et le nombre de paquets par seconde (PPS) en ajustant le nombre de files d’attente en fonction de vos besoins spécifiques en matière de charge de travail. Par exemple, les applications gourmandes en réseau peuvent nécessiter plus de files d’attente que les applications gourmandes en ressources processeur.

**Topics**
+ [Instances prises en charge](#supported-instances)
+ [Modification du nombre de files d’attente](#modify)

## Instances prises en charge
<a name="supported-instances"></a>

Les instances suivantes prennent en charge l’allocation dynamique de plusieurs files d’attente ENA.

### Usage général
<a name="supported-instances-ena-queues-gp"></a>


| Type d’instance | Files d’attente ENA par défaut par interface | Nombre maximal de files d’attente ENA par interface | Nombre maximal de files d’attente ENA par instance | 
| --- | --- | --- | --- | 
| M6i | 
| m6i.large | 2 | 2 | 6 | 
| m6i.xlarge | 4 | 4 | 16 | 
| m6i.2xlarge | 8 | 8 | 32 | 
| m6i.4xlarge | 8 | 16 | 64 | 
| m6i.8xlarge | 8 | 32 | 64 | 
| m6i.12xlarge | 8 | 32 | 64 | 
| m6i.16xlarge | 8 | 32 | 120 | 
| m6i.24xlarge | 8 | 32 | 120 | 
| m6i.32xlarge | 8 | 32 | 120 | 
| ID M6 | 
| m6id.large | 2 | 2 | 6 | 
| m6id.xlarge | 4 | 4 | 16 | 
| m6id.2xlarge | 8 | 8 | 32 | 
| m6id.4xlarge | 8 | 16 | 64 | 
| m6id.8xlarge | 8 | 32 | 64 | 
| m6id.12xlarge | 8 | 32 | 64 | 
| m6id.16xlarge | 8 | 32 | 120 | 
| m6id.24xlarge | 8 | 32 | 120 | 
| m6id.32xlarge | 8 | 32 | 120 | 
| M6IDN | 
| m6idn.large | 2 | 2 | 6 | 
| m6idn.xlarge | 4 | 4 | 16 | 
| m6idn.2xlarge | 8 | 8 | 32 | 
| m6idn.4xlarge | 8 | 16 | 64 | 
| m6idn.8xlarge | 16 | 32 | 128 | 
| m6idn.12xlarge | 16 | 32 | 128 | 
| m6idn.16xlarge | 16 | 32 | 240 | 
| m6idn.24xlarge | 32 | 32 | 480 | 
| m6idn.32xlarge | 32 | 32 | 512 \$1 | 
| M6 en | 
| m6in.large | 2 | 2 | 6 | 
| m6in.xlarge | 4 | 4 | 16 | 
| m6in.2xlarge | 8 | 8 | 32 | 
| m6in.4xlarge | 8 | 16 | 64 | 
| m6in.8xlarge | 16 | 32 | 128 | 
| m6in.12xlarge | 16 | 32 | 128 | 
| m6in.16xlarge | 16 | 32 | 240 | 
| m6in.24xlarge | 32 | 32 | 480 | 
| m6in.32xlarge | 32 | 32 | 512 \$1 | 
| M8a | 
| m8a.medium | 1 | 1 | 3 | 
| m8a.large | 2 | 2 | 6 | 
| m8a.xlarge | 4 | 4 | 16 | 
| m8a.2xlarge | 8 | 8 | 32 | 
| m8a.4xlarge | 8 | 16 | 64 | 
| m8a.8xlarge | 8 | 32 | 128 | 
| m8a.12xlarge | 16 | 64 | 192 | 
| m8a.16xlarge | 16 | 64 | 256 | 
| m8a.24xlarge | 16 | 128 | 384 | 
| m8a.48xlarge | 32 | 128 | 768 | 
| m8a.metal-24xl | 16 | 128 | 384 | 
| m8a.metal-48xl | 32 | 128 | 768 | 
| M8AZN | 
| m8azn.medium | 1 | 1 | 3 | 
| m8azn.large | 2 | 2 | 8 | 
| m8azn.xlarge | 4 | 4 | 16 | 
| m8azn.3xlarge | 4 | 16 | 48 | 
| m8azn.6xlarge | 8 | 32 | 96 | 
| m8azn.12xlarge | 8 | 64 | 192 | 
| m8azn.24xlarge | 16 | 128 | 384 | 
| m8azn.metal-12xl | 8 | 64 | 192 | 
| m8azn.metal-24xl | 16 | 128 | 384 | 
| 8 Go | 
| m8gb.medium | 1 | 1 | 2 | 
| m8gb.large | 2 | 2 | 6 | 
| m8gb.xlarge | 4 | 4 | 16 | 
| m8gb.2xlarge | 8 | 8 | 32 | 
| m8gb.4xlarge | 8 | 16 | 64 | 
| m8gb.8xlarge | 8 | 32 | 128 | 
| m8gb.12xlarge | 16 | 64 | 192 | 
| m8gb.16xlarge | 16 | 64 | 256 | 
| m8gb.24xlarge | 16 | 128 | 384 | 
| m8gb.48xlarge | 32 | 128 | 768 \$1 | 
| m8gb.metal-24xl | 32 | 128 | 768 | 
| m8gb.metal-48xl | 32 | 128 | 768 \$1 | 
| M8GN | 
| m8gn.medium | 1 | 1 | 2 | 
| m8gn.large | 2 | 2 | 6 | 
| m8gn.xlarge | 4 | 4 | 16 | 
| m8gn.2xlarge | 8 | 8 | 32 | 
| m8gn.4xlarge | 8 | 16 | 64 | 
| m8gn.8xlarge | 8 | 32 | 128 | 
| m8gn.12xlarge | 16 | 64 | 192 | 
| m8gn.16xlarge | 16 | 64 | 256 | 
| m8gn.24xlarge | 16 | 128 | 384 | 
| m8gn.48xlarge | 32 | 128 | 768 \$1 | 
| m8gn.metal-24xl | 32 | 128 | 768 | 
| m8gn.metal-48xl | 32 | 128 | 768 \$1 | 
| M8i | 
| m8i.large | 2 | 2 | 6 | 
| m8i.xlarge | 4 | 4 | 16 | 
| m8i.2xlarge | 8 | 8 | 32 | 
| m8i.4xlarge | 8 | 16 | 64 | 
| m8i.8xlarge | 8 | 32 | 128 | 
| m8i.12xlarge | 16 | 64 | 192 | 
| m8i.16xlarge | 16 | 64 | 256 | 
| m8i.24xlarge | 16 | 128 | 384 | 
| m8i.32xlarge | 16 | 128 | 512 | 
| m8i.48xlarge | 32 | 128 | 768 | 
| m8i.96xlarge | 32 | 128 | 1536 | 
| m8i.metal-48xl | 32 | 128 | 768 | 
| m8i.metal-96xl | 32 | 128 | 1536 | 
| M8ID | 
| m8id.large | 2 | 2 | 6 | 
| m8id.xlarge | 4 | 4 | 16 | 
| m8id.2xlarge | 8 | 8 | 32 | 
| m8id.4xlarge | 8 | 16 | 64 | 
| m8id.8xlarge | 8 | 32 | 128 | 
| m8id.12xlarge | 16 | 64 | 192 | 
| m8id.16xlarge | 16 | 64 | 256 | 
| m8id.24xlarge | 16 | 128 | 384 | 
| m8id.32xlarge | 16 | 128 | 512 | 
| m8id.48xlarge | 32 | 128 | 768 | 
| m8id.96xlarge | 32 | 128 | 1536 | 
| m8id.metal-48xl | 32 | 128 | 768 | 
| m8id.metal-96xl | 32 | 128 | 1536 | 
| M8i-Flex | 
| m8i-flex.large | 1 | 1 | 3 | 
| m8i-flex.xlarge | 2 | 2 | 8 | 
| m8i-flex.2xlarge | 4 | 4 | 16 | 
| m8i-flex.4xlarge | 4 | 8 | 32 | 
| m8i-flex.8xlarge | 4 | 16 | 64 | 
| m8i-flex.12xlarge | 8 | 32 | 96 | 
| m8i-flex.16xlarge | 8 | 32 | 128 | 

**Note**  
\$1 Ces types d’instance comportent plusieurs cartes réseau. Les autres types d’instances sont dotés d’une seule carte réseau. Pour de plus amples informations, veuillez consulter [Cartes réseau](using-eni.md#network-cards). 

### Calcul optimisé
<a name="supported-instances-ena-queues-co"></a>


| Type d’instance | Files d’attente ENA par défaut par interface | Nombre maximal de files d’attente ENA par interface | Nombre maximal de files d’attente ENA par instance | 
| --- | --- | --- | --- | 
| C6i | 
| c6i.large | 2 | 2 | 6 | 
| c6i.xlarge | 4 | 4 | 16 | 
| c6i.2xlarge | 8 | 8 | 32 | 
| c6i.4xlarge | 8 | 16 | 64 | 
| c6i.8xlarge | 8 | 32 | 64 | 
| c6i.12xlarge | 8 | 32 | 64 | 
| c6i.16xlarge | 8 | 32 | 120 | 
| c6i.24xlarge | 8 | 32 | 120 | 
| c6i.32xlarge | 8 | 32 | 120 | 
| C6 ID | 
| c6id.large | 2 | 2 | 6 | 
| c6id.xlarge | 4 | 4 | 16 | 
| c6id.2xlarge | 8 | 8 | 32 | 
| c6id.4xlarge | 8 | 16 | 64 | 
| c6id.8xlarge | 8 | 32 | 64 | 
| c6id.12xlarge | 8 | 32 | 64 | 
| c6id.16xlarge | 8 | 32 | 120 | 
| c6id.24xlarge | 8 | 32 | 120 | 
| c6id.32xlarge | 8 | 32 | 120 | 
| C6 en | 
| c6in.large | 2 | 2 | 6 | 
| c6in.xlarge | 4 | 4 | 16 | 
| c6in.2xlarge | 8 | 8 | 32 | 
| c6in.4xlarge | 8 | 16 | 64 | 
| c6in.8xlarge | 16 | 32 | 128 | 
| c6in.12xlarge | 16 | 32 | 128 | 
| c6in.16xlarge | 16 | 32 | 240 | 
| c6in.24xlarge | 32 | 32 | 480 | 
| c6in.32xlarge | 32 | 32 | 512 \$1 | 
| C8a | 
| c8a.medium | 1 | 1 | 3 | 
| c8a.large | 2 | 2 | 6 | 
| c8a.xlarge | 4 | 4 | 16 | 
| c8a.2xlarge | 8 | 8 | 32 | 
| c8a.4xlarge | 8 | 16 | 64 | 
| c8a.8xlarge | 8 | 32 | 128 | 
| c8a.12xlarge | 16 | 64 | 192 | 
| c8a.16xlarge | 16 | 64 | 256 | 
| c8a.24xlarge | 16 | 128 | 384 | 
| c8a.48xlarge | 32 | 128 | 768 | 
| c8a.metal-24xl | 16 | 128 | 384 | 
| c8a.metal-48xl | 32 | 128 | 768 | 
| C8 Go | 
| c8gb.medium | 1 | 1 | 2 | 
| c8gb.large | 2 | 2 | 6 | 
| c8gb.xlarge | 4 | 4 | 16 | 
| c8gb.2xlarge | 8 | 8 | 32 | 
| c8gb.4xlarge | 8 | 16 | 64 | 
| c8gb.8xlarge | 8 | 32 | 128 | 
| c8gb.12xlarge | 16 | 64 | 192 | 
| c8gb.16xlarge | 16 | 64 | 256 | 
| c8gb.24xlarge | 16 | 128 | 384 | 
| c8gb.48xlarge | 32 | 128 | 768 \$1 | 
| c8gb.metal-24xl | 32 | 128 | 768 | 
| c8gb.metal-48xl | 32 | 128 | 768 \$1 | 
| C8gn | 
| c8gn.medium | 1 | 1 | 2 | 
| c8gn.large | 2 | 2 | 6 | 
| c8gn.xlarge | 4 | 4 | 16 | 
| c8gn.2xlarge | 8 | 8 | 32 | 
| c8gn.4xlarge | 8 | 16 | 64 | 
| c8gn.8xlarge | 8 | 32 | 128 | 
| c8gn.12xlarge | 16 | 64 | 192 | 
| c8gn.16xlarge | 16 | 64 | 256 | 
| c8gn.24xlarge | 16 | 128 | 384 | 
| c8gn.48xlarge | 32 | 128 | 768 \$1 | 
| c8gn.metal-24xl | 32 | 128 | 768 | 
| c8gn.metal-48xl | 32 | 128 | 768 \$1 | 
| C8i | 
| c8i.large | 2 | 2 | 6 | 
| c8i.xlarge | 4 | 4 | 16 | 
| c8i.2xlarge | 8 | 8 | 32 | 
| c8i.4xlarge | 8 | 16 | 64 | 
| c8i.8xlarge | 8 | 32 | 128 | 
| c8i.12xlarge | 16 | 64 | 192 | 
| c8i.16xlarge | 16 | 64 | 256 | 
| c8i.24xlarge | 16 | 128 | 384 | 
| c8i.32xlarge | 16 | 128 | 512 | 
| c8i.48xlarge | 32 | 128 | 768 | 
| c8i.96xlarge | 32 | 128 | 1536 | 
| c8i.metal-48xl | 32 | 128 | 768 | 
| c8i.metal-96xl | 32 | 128 | 1536 | 
| C8 ID | 
| c8id.large | 2 | 2 | 6 | 
| c8id.xlarge | 4 | 4 | 16 | 
| c8id.2xlarge | 8 | 8 | 32 | 
| c8id.4xlarge | 8 | 16 | 64 | 
| c8id.8xlarge | 8 | 32 | 128 | 
| c8id.12xlarge | 16 | 64 | 192 | 
| c8id.16xlarge | 16 | 64 | 256 | 
| c8id.24xlarge | 16 | 128 | 384 | 
| c8id.32xlarge | 16 | 128 | 512 | 
| c8id.48xlarge | 32 | 128 | 768 | 
| c8id.96xlarge | 32 | 128 | 1536 | 
| c8id.metal-48xl | 32 | 128 | 768 | 
| c8id.metal-96xl | 32 | 128 | 1536 | 
| C8i-flex | 
| c8i-flex.large | 1 | 1 | 3 | 
| c8i-flex.xlarge | 2 | 2 | 8 | 
| c8i-flex.2xlarge | 4 | 4 | 16 | 
| c8i-flex.4xlarge | 4 | 8 | 32 | 
| c8i-flex.8xlarge | 4 | 16 | 64 | 
| c8i-flex.12xlarge | 8 | 32 | 96 | 
| c8i-flex.16xlarge | 8 | 32 | 128 | 

**Note**  
\$1 Ces types d’instance comportent plusieurs cartes réseau. Les autres types d’instances sont dotés d’une seule carte réseau. Pour de plus amples informations, veuillez consulter [Cartes réseau](using-eni.md#network-cards). 

### Mémoire optimisée
<a name="supported-instances-ena-queues-mo"></a>


| Type d’instance | Files d’attente ENA par défaut par interface | Nombre maximal de files d’attente ENA par interface | Nombre maximal de files d’attente ENA par instance | 
| --- | --- | --- | --- | 
| R6i | 
| r6i.large | 2 | 2 | 6 | 
| r6i.xlarge | 4 | 4 | 16 | 
| r6i.2xlarge | 8 | 8 | 32 | 
| r6i.4xlarge | 8 | 16 | 64 | 
| r6i.8xlarge | 8 | 32 | 64 | 
| r6i.12xlarge | 8 | 32 | 64 | 
| r6i.16xlarge | 8 | 32 | 120 | 
| r6i.24xlarge | 8 | 32 | 120 | 
| r6i.32xlarge | 8 | 32 | 120 | 
| R6 ID | 
| r6id.large | 2 | 2 | 6 | 
| r6id.xlarge | 4 | 4 | 16 | 
| r6id.2xlarge | 8 | 8 | 32 | 
| r6id.4xlarge | 8 | 16 | 64 | 
| r6id.8xlarge | 8 | 32 | 64 | 
| r6id.12xlarge | 8 | 32 | 64 | 
| r6id.16xlarge | 8 | 32 | 120 | 
| r6id.24xlarge | 8 | 32 | 120 | 
| r6id.32xlarge | 8 | 32 | 120 | 
| R6idn | 
| r6idn.large | 2 | 2 | 6 | 
| r6idn.xlarge | 4 | 4 | 16 | 
| r6idn.2xlarge | 8 | 8 | 32 | 
| r6idn.4xlarge | 8 | 16 | 64 | 
| r6idn.8xlarge | 16 | 32 | 128 | 
| r6idn.12xlarge | 16 | 32 | 128 | 
| r6idn.16xlarge | 16 | 32 | 240 | 
| r6idn.24xlarge | 32 | 32 | 480 | 
| r6idn.32xlarge | 32 | 32 | 512 \$1 | 
| R6 en | 
| r6in.large | 2 | 2 | 6 | 
| r6in.xlarge | 4 | 4 | 16 | 
| r6in.2xlarge | 8 | 8 | 32 | 
| r6in.4xlarge | 8 | 16 | 64 | 
| r6in.8xlarge | 16 | 32 | 128 | 
| r6in.12xlarge | 16 | 32 | 128 | 
| r6in.16xlarge | 16 | 32 | 240 | 
| r6in.24xlarge | 32 | 32 | 480 | 
| r6in.32xlarge | 32 | 32 | 512 \$1 | 
| R8a | 
| r8a.medium | 1 | 1 | 3 | 
| r8a.large | 2 | 2 | 6 | 
| r8a.xlarge | 4 | 4 | 16 | 
| r8a.2xlarge | 8 | 8 | 32 | 
| r8a.4xlarge | 8 | 16 | 64 | 
| r8a.8xlarge | 8 | 32 | 128 | 
| r8a.12xlarge | 16 | 64 | 192 | 
| r8a.16xlarge | 16 | 64 | 256 | 
| r8a.24xlarge | 16 | 128 | 384 | 
| r8a.48xlarge | 32 | 128 | 768 | 
| r8a.metal-24xl | 16 | 128 | 384 | 
| r8a.metal-48xl | 32 | 128 | 768 | 
| R8gb | 
| r8gb.medium | 1 | 1 | 2 | 
| r8gb.large | 2 | 2 | 6 | 
| r8gb.xlarge | 4 | 4 | 16 | 
| r8gb.2xlarge | 8 | 8 | 32 | 
| r8gb.4xlarge | 8 | 16 | 64 | 
| r8gb.8xlarge | 8 | 32 | 128 | 
| r8gb.12xlarge | 16 | 64 | 192 | 
| r8gb.16xlarge | 16 | 64 | 256 | 
| r8gb.24xlarge | 16 | 128 | 384 | 
| r8gb.48xlarge | 32 | 128 | 768 \$1 | 
| r8gb.metal-24xl | 32 | 128 | 768 | 
| r8gb.metal-48xl | 32 | 128 | 768 \$1 | 
| R8gn | 
| r8gn.medium | 1 | 1 | 2 | 
| r8gn.large | 2 | 2 | 6 | 
| r8gn.xlarge | 4 | 4 | 16 | 
| r8gn.2xlarge | 8 | 8 | 32 | 
| r8gn.4xlarge | 8 | 16 | 64 | 
| r8gn.8xlarge | 8 | 32 | 128 | 
| r8gn.12xlarge | 16 | 64 | 192 | 
| r8gn.16xlarge | 16 | 64 | 256 | 
| r8gn.24xlarge | 16 | 128 | 384 | 
| r8gn.48xlarge | 32 | 128 | 768 \$1 | 
| r8gn.metal-24xl | 32 | 128 | 768 | 
| r8gn.metal-48xl | 32 | 128 | 768 \$1 | 
| R8i | 
| r8i.large | 2 | 2 | 6 | 
| r8i.xlarge | 4 | 4 | 16 | 
| r8i.2xlarge | 8 | 8 | 32 | 
| r8i.4xlarge | 8 | 16 | 64 | 
| r8i.8xlarge | 8 | 32 | 128 | 
| r8i.12xlarge | 16 | 64 | 192 | 
| r8i.16xlarge | 16 | 64 | 256 | 
| r8i.24xlarge | 16 | 128 | 384 | 
| r8i.32xlarge | 16 | 128 | 512 | 
| r8i.48xlarge | 32 | 128 | 768 | 
| r8i.96xlarge | 32 | 128 | 1536 | 
| r8i.metal-48xl | 32 | 128 | 768 | 
| r8i.metal-96xl | 32 | 128 | 1536 | 
| R8 ID | 
| r8id.large | 2 | 2 | 6 | 
| r8id.xlarge | 4 | 4 | 16 | 
| r8id.2xlarge | 8 | 8 | 32 | 
| r8id.4xlarge | 8 | 16 | 64 | 
| r8id.8xlarge | 8 | 32 | 128 | 
| r8id.12xlarge | 16 | 64 | 192 | 
| r8id.16xlarge | 16 | 64 | 256 | 
| r8id.24xlarge | 16 | 128 | 384 | 
| r8id.32xlarge | 16 | 128 | 512 | 
| r8id.48xlarge | 32 | 128 | 768 | 
| r8id.96xlarge | 32 | 128 | 1536 | 
| r8id.metal-48xl | 32 | 128 | 768 | 
| r8id.metal-96xl | 32 | 128 | 1536 | 
| R8i-flex | 
| r8i-flex.large | 1 | 1 | 3 | 
| r8i-flex.xlarge | 2 | 2 | 8 | 
| r8i-flex.2xlarge | 4 | 4 | 16 | 
| r8i-flex.4xlarge | 4 | 8 | 32 | 
| r8i-flex.8xlarge | 4 | 16 | 64 | 
| r8i-flex.12xlarge | 8 | 32 | 96 | 
| r8i-flex.16xlarge | 8 | 32 | 128 | 
| x8AEDZ | 
| x8aedz.large | 2 | 2 | 8 | 
| x8aedz.xlarge | 4 | 4 | 16 | 
| x8aedz.3xlarge | 4 | 16 | 48 | 
| x8aedz.6xlarge | 8 | 32 | 96 | 
| x8aedz.12xlarge | 8 | 64 | 192 | 
| x8aedz.24xlarge | 16 | 128 | 384 | 
| x8aedz.metal-12xl | 8 | 64 | 192 | 
| x8aedz.metal-24xl | 16 | 128 | 384 | 
| X8i | 
| x8i.large | 2 | 2 | 6 | 
| x8i.xlarge | 4 | 4 | 16 | 
| x8i.2xlarge | 8 | 8 | 32 | 
| x8i.4xlarge | 8 | 16 | 64 | 
| x8i.8xlarge | 8 | 32 | 128 | 
| x8i.12xlarge | 16 | 64 | 192 | 
| x8i.16xlarge | 16 | 64 | 256 | 
| x8i.24xlarge | 16 | 128 | 384 | 
| x8i.32xlarge | 16 | 128 | 512 | 
| x8i.48xlarge | 32 | 128 | 768 | 
| x8i.64xlarge | 32 | 128 | 1 024 | 
| x8i.96xlarge | 32 | 128 | 1536 | 
| x8i.metal-48xl | 32 | 128 | 768 | 
| x8i.metal-96xl | 32 | 128 | 1536 | 

**Note**  
\$1 Ces types d’instance comportent plusieurs cartes réseau. Les autres types d’instances sont dotés d’une seule carte réseau. Pour de plus amples informations, veuillez consulter [Cartes réseau](using-eni.md#network-cards). 

## Modification du nombre de files d’attente
<a name="modify"></a>

Vous pouvez modifier le nombre de files d'attente ENA à l'aide de AWS Management Console ou AWS CLI. Dans l’ AWS Management Console, la configuration des files d’attente ENA est disponible sous chaque paramètre d’**interface réseau**.

Pour modifier le nombre de files d'attente ENA à l'aide de AWS CLI, utilisez l'une des commandes suivantes. Avant de modifier le nombre de files d’attente, utilisez la commande suivante pour vérifier le nombre de files d’attente actuel.

```
aws ec2 describe-instances --instance-id i-1234567890abcdef0
```

**Note**  
Votre instance doit être arrêtée avant de modifier le nombre de files ENA.
La valeur des files ENA doit être une puissance de 2, telle que 1, 2, 4, 8, 16, 32, etc.
Le nombre de files d'attente allouées à une seule ENI ne peut pas dépasser le nombre de v CPUs disponibles sur votre instance.

`[attach-network-interface](https://docs.aws.amazon.com/cli/latest/reference/ec2/attach-network-interface.html)`

Dans l’exemple suivant, 32 files d’attente ENA sont configurées sur une ENI.

```
aws ec2 attach-network-interface \
  --network-interface-id eni-001aa1bb223cdd4e4 \
  --instance-id i-1234567890abcdef0 \
  --device-index 1 \
  --ena-queue-count 32
```

`[run-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html)`

Dans l'exemple suivant, 2 files d'attente ENA sont chacune configurées sur 3 ENIs.

```
aws ec2 run-instances \
  --image-id ami-12ab3c30 \
  --instance-type c6i.large \
  --min-count 1 \
  --max-count 1 \
  --network-interfaces \
    "[{\"DeviceIndex\":0,\"SubnetId\":\"subnet-123456789012a345a\",\"EnaQueueCount\":2},
      {\"DeviceIndex\":1,\"SubnetId\":\"subnet-123456789012a345a\",\"EnaQueueCount\":2},
      {\"DeviceIndex\":2,\"SubnetId\":\"subnet-123456789012a345a\",\"EnaQueueCount\":2}]"
```

`[modify-network-interface-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-network-interface-attribute.html)`

Dans l’exemple suivant, 32 files d’attente ENA sont configurées sur une ENI.

```
aws ec2 modify-network-interface-attribute \
--network-interface-id eni-1234567890abcdef0 \
--attachment AttachmentId=eni-attach-12345678,EnaQueueCount=32
```

Dans l’exemple suivant, le nombre d’ENA est rétabli à la valeur par défaut.

```
aws ec2 modify-network-interface-attribute \
--network-interface-id eni-1234567890abcdef0 \
--attachment AttachmentId=eni-attach-12345678,DefaultEnaQueueCount=true
```

# Résoudre les problèmes liés au pilote du noyau ENA sous Linux
<a name="troubleshooting-ena"></a>

Elastic Network Adapter (ENA) est conçu pour améliorer l’intégrité du système d’exploitation et réduire les risques de perturbations à long terme en raison d’un comportement inattendu de matériel ou de défaillances. L’architecture ENA assure une transparence optimale des défaillances de périphériques ou de pilotes auprès du système. Cette rubrique fournit des informations de dépannage pour ENA.

Si vous ne pouvez pas vous connecter à votre instance, commencez par la section [Résoudre les problèmes de connectivité](#ena-connectivity-issues).

Si vous constatez une dégradation des performances après la migration vers un type d'instance de sixième génération, consultez l'article [Que dois-je faire avant de migrer mon EC2 instance vers une instance de sixième génération afin de garantir des performances réseau optimales](https://repost.aws/knowledge-center/migrate-to-gen6-ec2-instance) ?

Si vous ne parvenez pas à vous connecter à votre instance, recueillez des informations de diagnostic à l’aide des mécanismes de détection des défaillances et de récupération couverts dans des sections ultérieures de cette rubrique.

**Topics**
+ [Résoudre les problèmes de connectivité](#ena-connectivity-issues)
+ [Mécanisme Keep-alive](#ena-keep-alive)
+ [Expiration du délai d’attente des opérations de lecture](#register-read-timeout-ena)
+ [Statistiques](#statistics-ena)
+ [Journaux d’erreur de pilote dans syslog](#driver-error-logs-ena)
+ [Notifications de configuration sous-optimales](#ts-ena-sub-opt-config-notification)

## Résoudre les problèmes de connectivité
<a name="ena-connectivity-issues"></a>

Si vous perdez la connexion lors de l’activation de la mise en réseau améliorée, il se peut que le module `ena` ne soit pas compatible avec le noyau de votre instance. Cela peut se produire si vous installez le module pour une version de noyau spécifique (sans **dkms** ou avec un fichier **dkms.conf** mal configuré), puis que le noyau de votre instance est mis à jour. Si le module `ena` du noyau de l’instance qui est chargé au moment du démarrage n’est pas correctement installé, votre instance ne reconnaît pas la carte réseau et devient inaccessible.

Si vous activez la mise en réseau améliorée pour une instance de paravirtualisation (PV) ou une AMI, votre instance peut devenir inaccessible.

Si votre instance devient inaccessible après l’activation de la mise en réseau améliorée via ENA, vous pouvez désactiver l’attribut `enaSupport` pour votre instance afin qu’elle utilise une autre carte réseau à la place.

**Pour désactiver la mise en réseau améliorée via ENA (instances basées sur EBS)**

1. Depuis votre ordinateur local, arrêtez l'instance à l'aide de la EC2 console Amazon, de la commande [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) (AWS CLI) ou de l'[Stop-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html)applet de commande ().Outils AWS pour PowerShell

1. Sur votre ordinateur local, désactivez l'attribut réseau amélioré à l'aide de la [modify-instance-attribute](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html)commande associée à l'`--no-ena-support`option ou de l'[Edit-EC2InstanceAttribute](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html)applet de commande associée au `-EnaSupport $false` paramètre.

1. Depuis votre ordinateur local, démarrez l'instance à l'aide de la EC2 console Amazon, de la commande [start-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) ou de l'[Start-EC2Instance](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html)applet de commande.

1. (Facultatif) Connectez-vous à votre instance et essayez de réinstaller le module `ena` avec votre version de noyau actuelle en suivant les étapes décrites dans la section [Activez la mise en réseau améliorée grâce à l’ENA sur vos instances EC2](enhanced-networking-ena.md).<a name="disable-enhanced-networking-ena-instance-store"></a>

**Pour désactiver la mise en réseau améliorée via ENA (instances basées sur le stockage d’instance)**

1. Créez une nouvelle AMI comme décrit dans [Création d’une AMI basée sur Amazon S3](creating-an-ami-instance-store.md).

1. Lorsque vous enregistrez l'AMI, veillez à inclure l'`--no-ena-support`option dans la commande [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) (AWS CLI) ou le `-EnaSupport $false` paramètre dans l'[Register-EC2Image](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html)applet de commande.

## Mécanisme Keep-alive
<a name="ena-keep-alive"></a>

Le dispositif ENA publie des événements keep-alive selon une fréquence fixe (généralement une fois par seconde). Le pilote ENA implémente un mécanisme de surveillance, qui recherche la présence de ces messages keep-alive. Si un ou plusieurs messages sont présents, la surveillance est réarmée. Dans le cas contraire, le pilote conclut que l’appareil a subi une défaillance et effectue alors les opérations suivantes :
+ Il envoie ses statistiques dans le journal système.
+ Il réinitialise le dispositif ENA.
+ Il réinitialise l’état du pilote ENA.

La procédure de réinitialisation ci-dessus peut entraîner une perte de trafic pour une courte période de temps (la récupération des connexions TCP doit être possible), mais ne devrait pas affecter l’utilisateur.

Le dispositif ENA peut également demander indirectement une procédure de réinitialisation de l’appareil. Dans ce cas, il n’envoie pas de notification keep-alive. Cela est possible, par exemple, si le périphérique ENA atteint un état inconnu après le chargement d’une configuration irrécupérable.

Voici un exemple de la procédure de réinitialisation :

```
[18509.800135] ena 0000:00:07.0 eth1: Keep alive watchdog timeout. // The watchdog process initiates a reset
[18509.815244] ena 0000:00:07.0 eth1: Trigger reset is on		
[18509.825589] ena 0000:00:07.0 eth1: tx_timeout: 0 // The driver logs the current statistics
[18509.834253] ena 0000:00:07.0 eth1: io_suspend: 0
[18509.842674] ena 0000:00:07.0 eth1: io_resume: 0
[18509.850275] ena 0000:00:07.0 eth1: wd_expired: 1
[18509.857855] ena 0000:00:07.0 eth1: interface_up: 1
[18509.865415] ena 0000:00:07.0 eth1: interface_down: 0
[18509.873468] ena 0000:00:07.0 eth1: admin_q_pause: 0
[18509.881075] ena 0000:00:07.0 eth1: queue_0_tx_cnt: 0
[18509.888629] ena 0000:00:07.0 eth1: queue_0_tx_bytes: 0
[18509.895286] ena 0000:00:07.0 eth1: queue_0_tx_queue_stop: 0
.......
........
[18511.280972] ena 0000:00:07.0 eth1: free uncompleted tx skb qid 3 idx 0x7 // At the end of the down process, the driver discards incomplete packets.
[18511.420112] [ENA_COM: ena_com_validate_version] ena device version: 0.10 //The driver begins its up process
[18511.420119] [ENA_COM: ena_com_validate_version] ena controller version: 0.0.1 implementation version 1
[18511.420127] [ENA_COM: ena_com_admin_init] ena_defs : Version:[b9692e8] Build date [Wed Apr  6 09:54:21 IDT 2016]
[18512.252108] ena 0000:00:07.0: Device watchdog is Enabled
[18512.674877] ena 0000:00:07.0: irq 46 for MSI/MSI-X
[18512.674933] ena 0000:00:07.0: irq 47 for MSI/MSI-X
[18512.674990] ena 0000:00:07.0: irq 48 for MSI/MSI-X
[18512.675037] ena 0000:00:07.0: irq 49 for MSI/MSI-X
[18512.675085] ena 0000:00:07.0: irq 50 for MSI/MSI-X
[18512.675141] ena 0000:00:07.0: irq 51 for MSI/MSI-X
[18512.675188] ena 0000:00:07.0: irq 52 for MSI/MSI-X
[18512.675233] ena 0000:00:07.0: irq 53 for MSI/MSI-X
[18512.675279] ena 0000:00:07.0: irq 54 for MSI/MSI-X
[18512.772641] [ENA_COM: ena_com_set_hash_function] Feature 10 isn't supported
[18512.772647] [ENA_COM: ena_com_set_hash_ctrl] Feature 18 isn't supported
[18512.775945] ena 0000:00:07.0: Device reset completed successfully // The reset process is complete
```

## Expiration du délai d’attente des opérations de lecture
<a name="register-read-timeout-ena"></a>

L'architecture ENA suggère une utilisation limitée des opérations de lecture MMIO I/O (Memory Mapped). Le pilote du périphérique ENA n’accède aux registres MMIO que lors de la procédure d’initialisation. 

Si les journaux du pilote (disponibles dans la sortie **dmesg**) indiquent une défaillance des opérations de lecture, un pilote incompatible ou mal compilé, un dispositif saturé ou une défaillance matérielle peuvent en être la cause.

Les entrées de journal intermittentes qui indiquent des défaillances des opérations de lecture ne sont pas problématiques. Dans ce cas, le pilote réessaie de les traiter. Toutefois, une série d’entrées de journal contenant des défaillances de lecture indique un problème de pilote ou de matériel.

Voici un exemple d’entrée de journal pilote indiquant une défaillance des opérations de lecture en raison de l’expiration d’un délai d’attente :

```
[ 47.113698] [ENA_COM: ena_com_reg_bar_read32] reading reg failed for timeout. expected: req id[1] offset[88] actual: req id[57006] offset[0] 
[ 47.333715] [ENA_COM: ena_com_reg_bar_read32] reading reg failed for timeout. expected: req id[2] offset[8] actual: req id[57007] offset[0] 
[ 47.346221] [ENA_COM: ena_com_dev_reset] Reg read32 timeout occurred
```

## Statistiques
<a name="statistics-ena"></a>

Si vous rencontrez des problèmes de latence ou si les performances réseau sont insuffisantes, vous devez récupérer les statistiques de l’appareil et les examiner. Pour obtenir ces statistiques, utilisez **ethtool**, comme suit.

```
[ec2-user ~]$ ethtool -S ethN
NIC statistics:
	tx_timeout: 0
	suspend: 0
	resume: 0
	wd_expired: 0
	interface_up: 1
	interface_down: 0
	admin_q_pause: 0
	bw_in_allowance_exceeded: 0
	bw_out_allowance_exceeded: 0
	pps_allowance_exceeded: 0
	conntrack_allowance_available: 450878
	conntrack_allowance_exceeded: 0
	linklocal_allowance_exceeded: 0
	queue_0_tx_cnt: 4329
	queue_0_tx_bytes: 1075749
	queue_0_tx_queue_stop: 0
	...
```

Les paramètres de sortie de commande suivants sont décrits ci-dessous :

`tx_timeout`: *N*  
Nombre de fois que la surveillance Netdev a été activée.

`suspend`: *N*  
Nombre de fois que le pilote a effectué une opération de suspension.

`resume`: *N*  
Nombre de fois que le pilote a effectué une opération de reprise.

`wd_expired`: *N*  
Nombre de fois que le pilote n’a pas reçu l’événement keep-alive au cours des trois secondes précédentes.

`interface_up`: *N*  
Nombre de fois que l’interface ENA a été affichée.

`interface_down`: *N*  
Nombre de fois que l’interface ENA a été fermée.

`admin_q_pause`: *N*  
Nombre de fois que la file d’attente d’administration n’a pas été trouvée dans un état en cours d’exécution.

`bw_in_allowance_exceeded`: *N*  
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.

`bw_out_allowance_exceeded`: *N*  
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.

`pps_allowance_exceeded`: *N*  
Le nombre de paquets mis en file d’attente ou abandonnés parce que le PPS bidirectionnel a dépassé le maximum pour l’instance. \$1

`conntrack_allowance_available`: *N*  
Nombre de connexions suivies pouvant être établies par l’instance avant d’atteindre l’allocation Connexions suivies de ce type d’instance. Disponible uniquement pour les instances basées sur Nitro. Non pris en charge avec les instances FreeBSD ou les environnements DPDK.

`conntrack_allowance_exceeded`: *N*  
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.

`linklocal_allowance_exceeded`: *N*  
Nombre de paquets ignorés flottee 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 de métadonnées d’instance et le service de synchronisation temporelle d’Amazon, mais n’affecte pas le trafic vers les résolveurs DNS personnalisés.

`queue_N_tx_cnt`: *N*  
Nombre de paquets transmis pour cette file d’attente.

`queue_N_tx_bytes`: *N*  
Nombre d’octets transmis pour cette file d’attente.

`queue_N_tx_queue_stop`: *N*  
Le nombre de fois où cette file d'attente *N* a été pleine et arrêtée.

`queue_N_tx_queue_wakeup`: *N*  
Le nombre de fois où la file d'attente *N* a été reprise après avoir été arrêtée.

`queue_N_tx_dma_mapping_err`: *N*  
Nombre d’erreurs d’accès direct à la mémoire. Si cette valeur ne correspond pas à 0, les ressources système sont faibles.

`queue_N_tx_linearize`: *N*  
Nombre de fois que la linéarisation SKB a été tentée pour cette file d’attente.

`queue_N_tx_linearize_failed`: *N*  
Nombre de fois que la linéarisation SKB a échoué pour cette file d’attente.

`queue_N_tx_napi_comp`: *N*  
Nombre de fois que le gestionnaire `napi` a appelé `napi_complete` pour cette file d’attente.

`queue_N_tx_tx_poll`: *N*  
Nombre de fois que le gestionnaire `napi` a été planifié pour cette file d’attente.

`queue_N_tx_doorbells`: *N*  
Nombre de portes de transmission pour cette file d’attente.

`queue_N_tx_prepare_ctx_err`: *N*  
Nombre de fois que `ena_com_prepare_tx` a échoué pour cette file d’attente.

`queue_N_tx_bad_req_id`: *N*  
`req_id` non valide pour cette file d’attente. La valeur `req_id` valide est égale à zéro, moins la valeur `queue_size`, moins 1. 

`queue_N_tx_llq_buffer_copy`: *N*  
Nombre de paquets dont la taille des en-têtes est supérieure à l’entrée llq pour cette file d’attente.

`queue_N_tx_missed_tx`: *N*  
Nombre de paquets qui n’ont pas été traités entièrement pour cette file d’attente.

`queue_N_tx_unmask_interrupt`: *N*  
Nombre de fois que tx interrupt a été démasqué pour cette file d’attente.

`queue_N_rx_cnt`: *N*  
Nombre de paquets reçus pour cette file d’attente.

`queue_N_rx_bytes`: *N*  
Nombre d’octets reçus pour cette file d’attente.

`queue_N_rx_rx_copybreak_pkt`: *N*  
Nombre de fois que la file d’attente rx a reçu un paquet inférieur à la taille de paquet rx\$1copybreak pour cette file d’attente.

`queue_N_rx_csum_good`: *N*  
Nombre de fois que la file d’attente rx a reçu un paquet dont le total de contrôle a été vérifié comme étant correct pour cette file d’attente.

`queue_N_rx_refil_partial`: *N*  
Nombre de fois que le pilote n’a pas réussi à remplir la portion vide de la file d’attente rx avec les tampons pour cette file d’attente. Si cette valeur n’est pas égale à zéro, les ressources mémoire sont faibles.

`queue_N_rx_bad_csum`: *N*  
Nombre de fois que la file d’attente `rx` a reçu un mauvais total de contrôle pour cette file d’attente (uniquement si le déchargement du total de contrôle rx est pris en charge).

`queue_N_rx_page_alloc_fail`: *N*  
Nombre de fois que l’allocation des pages a échoué pour cette file d’attente. Si cette valeur n’est pas égale à zéro, les ressources mémoire sont faibles.

`queue_N_rx_skb_alloc_fail`: *N*  
Nombre de fois que l’allocation SKB a échoué pour cette file d’attente. Si cette valeur n’est pas égale à zéro, les ressources système sont faibles.

`queue_N_rx_dma_mapping_err`: *N*  
Nombre d’erreurs d’accès direct à la mémoire. Si cette valeur ne correspond pas à 0, les ressources système sont faibles.

`queue_N_rx_bad_desc_num`: *N*  
Trop de tampons par paquet. Si cette valeur n’est pas égale à 0, cela indique l’utilisation de très petits tampons.

`queue_N_rx_bad_req_id`: *N*  
Le req\$1id de cette file d’attente n’est pas valide. Le req\$1id valide est de [0, queue\$1size - 1 ].

`queue_N_rx_empty_rx_ring`: *N*  
Nombre de fois que la file d’attente rx était vide pour cette file d’attente.

`queue_N_rx_csum_unchecked`: *N*  
Nombre de fois que la file d’attente rx a reçu un paquet dont le total de contrôle n’a pas été vérifié pour cette file d’attente.

`queue_N_rx_xdp_aborted`: *N*  
Nombre de fois qu’un paquet XDP a été classé comme XDP\$1ABORT.

`queue_N_rx_xdp_drop`: *N*  
Nombre de fois qu’un paquet XDP a été classé comme XDP\$1DROP.

`queue_N_rx_xdp_pass`: *N*  
Nombre de fois qu’un paquet XDP a été classé comme XDP\$1PASS.

`queue_N_rx_xdp_tx`: *N*  
Nombre de fois qu’un paquet XDP a été classé comme XDP\$1TX.

`queue_N_rx_xdp_invalid`: *N*  
Nombre de fois que le code de retour XDP du paquet n’était pas valide.

`queue_N_rx_xdp_redirect`: *N*  
Nombre de fois qu’un paquet XDP a été classé comme XDP\$1REDIRECT.

`queue_N_xdp_tx_cnt`: *N*  
Nombre de paquets transmis pour cette file d’attente.

`queue_N_xdp_tx_bytes`: *N*  
Nombre d’octets transmis pour cette file d’attente.

`queue_N_xdp_tx_queue_stop`: *N*  
Nombre de fois que cette file d’attente était pleine et qu’elle a été arrêtée.

`queue_N_xdp_tx_queue_wakeup`: *N*  
Nombre de fois que cette file d’attente a repris après avoir été arrêtée.

`queue_N_xdp_tx_dma_mapping_err`: *N*  
Nombre d’erreurs d’accès direct à la mémoire. Si cette valeur ne correspond pas à 0, les ressources système sont faibles.

`queue_N_xdp_tx_linearize`: *N*  
Nombre de fois que la linéarisation du tampon XDP a été tentée pour cette file d’attente.

`queue_N_xdp_tx_linearize_failed`: *N*  
Nombre de fois que la linéarisation du tampon XDP a échoué pour cette file d’attente.

`queue_N_xdp_tx_napi_comp`: *N*  
Nombre de fois que le gestionnaire napi a appelé napi\$1complete pour cette file d’attente.

`queue_N_xdp_tx_tx_poll`: *N*  
Nombre de fois que le gestionnaire napi a été planifié pour cette file d’attente.

`queue_N_xdp_tx_doorbells`: *N*  
Nombre de portes de transmission pour cette file d’attente.

`queue_N_xdp_tx_prepare_ctx_err`: *N*  
Nombre de fois que ena\$1com\$1prepar\$1tx a échoué pour cette file d’attente. Cette valeur doit toujours être égale à zéro. Si ce n’est pas le cas, consultez les journaux du pilote.

`queue_N_xdp_tx_bad_req_id`: *N*  
Le req\$1id de cette file d’attente n’est pas valide. Le req\$1id valide est de [0, queue\$1size - 1 ].

`queue_N_xdp_tx_llq_buffer_copy`: *N*  
Nombre de paquets dont les en-têtes ont été copiés à l’aide de la copie tampon llq pour cette file d’attente.

`queue_N_xdp_tx_missed_tx`: *N*  
Nombre de fois qu’une entrée de file d’attente tx a dépassé un délai de résiliation pour cette file d’attente.

`queue_N_xdp_tx_unmask_interrupt`: *N*  
Nombre de fois que tx interrupt a été démasqué pour cette file d’attente.

`ena_admin_q_aborted_cmd`: *N*  
Nombre de commandes d’administration qui ont été abandonnées. Généralement, cela se produit lors de la procédure de récupération automatique.

`ena_admin_q_submitted_cmd`: *N*  
Nombre de portes d’administration de la file d’attente.

`ena_admin_q_completed_cmd`: *N*  
Nombre de finalisations de la file d’attente d’administration.

`ena_admin_q_out_of_space`: *N*  
Nombre de fois que le pilote a essayé de présenter la nouvelle commande d’administration, mais que la file d’attente était pleine.

`ena_admin_q_no_completion`: *N*  
Nombre de fois que l’administration du pilote n’a pas été terminée pour une commande.

## Journaux d’erreur de pilote dans syslog
<a name="driver-error-logs-ena"></a>

Le pilote ENA écrit les messages journaux dans **syslog** pendant le démarrage du système. Vous pouvez examiner ces journaux pour rechercher les erreurs si vous rencontrez des problèmes. Voici un exemple d’informations enregistrées par le pilote ENA dans **syslog** pendant le démarrage du système, ainsi que des annotations pour certains messages.

```
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  478.416939] [ENA_COM: ena_com_validate_version] ena device version: 0.10
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  478.420915] [ENA_COM: ena_com_validate_version] ena controller version: 0.0.1 implementation version 1
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.256831] ena 0000:00:03.0: Device watchdog is Enabled
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.672947] ena 0000:00:03.0: creating 8 io queues. queue size: 1024
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.680885] [ENA_COM: ena_com_init_interrupt_moderation] Feature 20 isn't supported  // Interrupt moderation is not supported by the device
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.691609] [ENA_COM: ena_com_get_feature_ex] Feature 10 isn't supported // RSS HASH function configuration is not supported by the device
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.694583] [ENA_COM: ena_com_get_feature_ex] Feature 18 isn't supported //RSS HASH input source configuration is not supported by the device 
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.697433] [ENA_COM: ena_com_set_host_attributes] Set host attribute isn't supported
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.701064] ena 0000:00:03.0 (unnamed net_device) (uninitialized): Cannot set host attributes
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  479.704917] ena 0000:00:03.0: Elastic Network Adapter (ENA) found at mem f3000000, mac addr 02:8a:3c:1e:13:b5 Queues 8
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  480.805037] EXT4-fs (xvda1): re-mounted. Opts: (null)
Jun  3 22:37:46 ip-172-31-2-186 kernel: [  481.025842] NET: Registered protocol family 10
```

**Quelles sont les erreurs que je peux ignorer ?**  
Les avertissements suivants qui peuvent apparaître dans les journaux d’erreur de votre système peuvent être ignorées pour Elastic Network Adapter :

Set host attribute isn’t supported  
Les attributs de l’hôte ne sont pas pris en charge pour cet appareil.

failed to alloc buffer for rx queue  
Il s’agit d’une erreur récupérable. Elle indique qu’il y a peut-être eu un problème de pression de mémoire lorsque l’erreur a été lancée.

La fonctionnalité *X* n'est pas prise en charge  
La fonctionnalité référencée n’est pas prise en charge par Elastic Network Adapter. Les valeurs possibles pour *X* incluent :  
+ 10 : la configuration de la fonction de hachage RSS n’est pas prise en charge pour cet appareil.
+ 12 : la configuration de la table d’indirection RSS n’est pas prise en charge pour cet appareil.
+ 18 : la configuration des entrées de hachage RSS n’est pas prise en charge pour cet appareil.
+ 20 : la modération d’interruption n’est pas prise en charge pour cet appareil.
+ 27 : le pilote ENA (Elastic Network Adapter) ne prend pas en charge l’interrogation des fonctions Ethernet à partir de snmpd.

Failed to config AENQ  
Elastic Network Adapter ne prend pas en charge la configuration AENQ.

Trying to set unsupported AENQ events  
Cette erreur indique une tentative de définition d’un groupe d’événements AENQ qui n’est pas pris en charge par Elastic Network Adapter.

## Notifications de configuration sous-optimales
<a name="ts-ena-sub-opt-config-notification"></a>

Le dispositif ENA détecte les paramètres de configuration sous-optimaux dans le pilote que vous pouvez modifier. Le périphérique avertit le pilote ENA et journalise un avertissement sur la console. L’exemple suivant montre le format du message d’avertissement.

```
Sub-optimal configuration notification code: 1. Refer to AWS ENA documentation for additional details and mitigation options.
```

La liste suivante indique les détails du code de notification et les actions recommandées pour les résultats de configuration sous-optimaux.
+ **Code 1 : ENA Express avec une configuration LLQ étendue n’est pas recommandé**

  L’ENI ENA Express est configuré avec un LLQ étendu. Cette configuration n’est pas optimale et pourrait avoir un impact sur les performances d’ENA Express. Nous vous recommandons de désactiver les paramètres LLQ étendus lorsque vous utilisez ENA Express ENIs comme suit.

  ```
  sudo rmmod ena && sudo modprobe ena force_large_llq_header=0
  ```

  Pour en savoir plus sur la syntaxe des expressions pour ENA Express, consultez [Améliorer les performances du réseau entre les instances EC2 à l’aide d’ENA Express](ena-express.md).
+ **Code 2 : ENA Express ENI avec une profondeur de file d’attente Tx non optimale n’est pas recommandé**

  L’ENI ENA Express est configuré avec une profondeur de file d’attente Tx non optimale. Cette configuration pourrait avoir un impact sur les performances d’ENA Express. Nous vous recommandons d'agrandir toutes les files d'attente Tx à la valeur maximale de l'interface réseau lorsque vous utilisez ENA Express ENIs comme suit.

  Vous pouvez exécuter les commandes **ethtool** suivantes pour ajuster la taille du LLQ. *Pour en savoir plus sur la façon de contrôler, d'interroger et d'activer Wide-LLQ, consultez la rubrique [Large Low-Latency Queue (Large LLQ)](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#large-low-latency-queue-large-llq) de la documentation relative au pilote de noyau Linux pour ENA dans le référentiel Amazon Drivers. GitHub *

  ```
  ethtool -g interface
  ```

  Réglez vos files d'attente Tx à la profondeur maximale :

  ```
  ethtool -G interface tx depth
  ```

  Pour en savoir plus sur la syntaxe des expressions pour ENA Express, consultez [Améliorer les performances du réseau entre les instances EC2 à l’aide d’ENA Express](ena-express.md).
+ **Code 3 : ENA avec une taille LLQ normale et le trafic de paquets Tx dépasse la taille maximale d'en-tête prise en charge**

  Par défaut, ENA LLQ prend en charge la taille d'en-tête de paquet Tx jusqu'à 96 octets. Si la taille de l'en-tête du paquet est supérieure à 96 octets, le paquet est supprimé. Pour atténuer ce problème, nous vous recommandons d'activer Wide-LLQ, qui augmente la taille d'en-tête de paquet Tx prise en charge à un maximum de 224 octets.

  Toutefois, lorsque vous activez Wide-LLQ, la taille maximale de l'anneau Tx est réduite de 1 000 à 512 entrées. Wide-LLQ est activé par défaut pour tous les types d'instances de Nitro v4 et versions ultérieures.
  + Les types d'instances Nitro v4 ont une taille d'anneau Wide-LLQ Tx maximale par défaut de 512 entrées, qui ne peut pas être modifiée.
  + Les types d'instances Nitro v5 ont une taille d'anneau Wide-LLQ Tx par défaut de 512 entrées, que vous pouvez augmenter jusqu'à 1 000 entrées.

  Vous pouvez exécuter les commandes **ethtool** suivantes pour ajuster la taille du LLQ. *Pour en savoir plus sur la façon de contrôler, d'interroger et d'activer Wide-LLQ, consultez la rubrique [Large Low-Latency Queue (Large LLQ)](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#large-low-latency-queue-large-llq) de la documentation relative au pilote de noyau Linux pour ENA dans le référentiel Amazon Drivers. GitHub *

  Trouvez la profondeur maximale de vos files d'attente Tx :

  ```
  ethtool -g interface
  ```

  Réglez vos files d'attente Tx à la profondeur maximale :

  ```
  ethtool -G interface tx depth
  ```

# Résoudre les problèmes liés au pilote Windows de l'adaptateur réseau élastique (ENA)
<a name="troubleshoot-ena-driver"></a>

Elastic Network Adapter (ENA) est conçu pour améliorer l’état du système d’exploitation et réduire les comportements ou les échecs inattendus qui peuvent perturber les opérations de votre instance Windows. L’architecture ENA assure une transparence optimale des défaillances de périphériques ou de pilotes auprès du système d’exploitation.

## Collecter des informations de diagnostic sur l’instance
<a name="ts-ena-drv-collect-diagnostics"></a>

Les étapes pour ouvrir les outils du système d’exploitation Windows varient en fonction de la version du système d’exploitation installée sur votre instance. Dans les sections suivantes, nous utilisons la boîte de dialogue **Exécuter** pour ouvrir les outils. Celle-ci fonctionne de la même manière sur toutes les versions du système d’exploitation. Toutefois, vous pouvez accéder à ces outils en suivant n’importe quelle méthode de votre choix.

**Accéder à la boîte de dialogue Exécuter**
+ À l’aide de la combinaison de touches avec le logo Windows : `Windows` \$1 `R`
+ À l’aide de la barre de recherche :
  + Entrez `run` dans la barre de recherche.
  + Sélectionnez l’application **Exécuter** à partir des résultats de recherche.

Certaines étapes nécessitent le menu contextuel pour accéder aux propriétés ou aux actions contextuelles. Il existe plusieurs méthodes pour le faire, qui dépendent de la version de système d’exploitation et du matériel dont vous disposez.

**Accéder au menu contextuel**
+ À l’aide de la souris : cliquez avec le bouton droit sur un élément pour afficher son menu contextuel.
+ À l’aide de votre clavier :
  + selon la version de votre système d’exploitation, utilisez `Shift` \$1 `F10` ou `Ctrl` \$1 `Shift` \$1 `F10`.
  + Si votre clavier contient la touche contextuelle (trois lignes horizontales dans un carré), sélectionnez l’élément souhaité, puis appuyez sur la touche contextuelle.

Si vous pouvez vous connecter à votre instance, utilisez les techniques suivantes pour collecter des informations de diagnostic à des fins de dépannage.

### Vérifier l’état du dispositif ENA
<a name="ts-ena-diagnostics-device-mgr"></a>

Pour vérifier l’état de votre pilote Windows ENA à l’aide du Gestionnaire de périphériques Windows, procédez comme suit :

1. Ouvrez **Exécuter** à l’aide de l’une des méthodes décrites dans la section précédente.

1. Pour ouvrir le Gestionnaire de périphériques Windows, saisissez `devmgmt.msc` la fenêtre **Exécuter**.

1. Choisissez **OK**. La fenêtre du Gestionnaire de périphériques s’ouvre.

1. Sélectionnez la flèche qui apparaît à gauche de **Cartes réseau** pour développer la liste.

1. Choisissez le nom ou ouvrez le menu contextuel pour **Amazon Elastic Network Adapter**, puis choisissez **Propriétés**. Cela ouvre la boîte de dialogue **Propriétés d’Amazon Elastic Network Adapter**.

1. Vérifiez que le message de l’onglet **Général** indique « Ce périphérique fonctionne correctement. »

### Examiner les messages d’événements du pilote
<a name="ts-ena-diagnostics-event-log"></a>

Pour consulter les journaux d’événements du pilote Windows ENA à l’aide de l’Observateur d’événements Windows, procédez comme suit :

1. Ouvrez **Exécuter** à l’aide de l’une des méthodes décrites dans la section précédente.

1. Pour ouvrir l’Observateur d’événements Windows, saisissez `eventvwr.msc` dans la fenêtre **Exécuter**.

1. Choisissez **OK**. La fenêtre de l’Observateur d’événements s’ouvre.

1. Développez le menu **Journaux Windows**, puis choisissez **Système**.

1. Sous **Actions**, dans le panneau supérieur droit, choisissez **Créer une vue personnalisée**. La boîte de dialogue Filtrer s’affiche.

1. Dans la zone **Sources d’événements**, saisissez `ena`. Cela limite les résultats aux événements générés par le pilote Windows ENA.

1. Choisissez **OK**. Les résultats du journal d’événements filtrés s’affichent dans les sections des détails de la fenêtre.

1. Pour explorer les détails, sélectionnez un message d’événement dans la liste.

L’exemple suivant montre un événement de pilote ENA dans la liste des événements système de l’Observateur d’événements Windows :

![\[Exemple : événement de pilote ENA affiché dans la liste des messages système de l’Observateur d’événements Windows.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/ena-event-viewer-example.png)


#### Résumé des messages d’événement
<a name="ts-ena-diagnostics-event-messages"></a>

Le tableau suivant présente les messages d’événements générés par le pilote Windows ENA.


**Input**  

| ID de l’événement | Description de l’événement du pilote ENA | Type | 
| --- | --- | --- | 
| 5001 | Hardware is out of resources (Le matériel est à court de ressources) | Erreur | 
| 5002 | Adapter has detected a hardware error (Le dispositif a détecté une erreur matérielle) | Erreur | 
| 5005 | Adapter has timed out on NDIS operation that did not complete in a timely manner (Le dispositif a expiré à l’opération NDIS qui ne s’est pas terminée en temps opportun) | Erreur | 
| 5032 | Adapter has failed to reset the device (Le dispositif n’a pas réussi à réinitialiser le périphérique) | Erreur | 
| 5200 | Adapter has been initialized (Le dispositif a été initialisé) | Informationnel | 
| 5201 | Adapter has been halted (Le dispositif a été interrompu) | Informationnel | 
| 5202 | Adapter has been paused (Le dispositif a été mis en pause) | Informationnel | 
| 5203 | Adapter has been restarted (Le dispositif a été redémarré) | Informationnel | 
| 5204 | Adapter has been shut down (Le dispositif a été arrêté) | Informationnel | 
| 5205 | Adapter has been reset (Le dispositif a été réinitialisé) | Erreur | 
| 5206 | Adapter has been surprise removed (Le dispositif a été retiré par surprise) | Erreur | 
| 5208 | Adapter initialization routine has failed (La routine d’initialisation du dispositif a échoué) | Erreur | 
| 5210 | Adapter has encountered and successfully recovered an internal issue (Le dispositif a rencontré un problème interne et a réussi à récupérer) | Erreur | 

### Vérifier les métriques de performance
<a name="ts-ena-diagnostics-perf-metrics"></a>

Le pilote Windows ENA publie les métriques de performance réseau à partir des métriques où elles sont activées. Vous pouvez afficher et activer les métriques sur l’instance à l’aide de l’application Performance Monitor native. Pour plus d’informations sur les métriques produites par le pilote Windows ENA, consultez [Surveillez les performances du réseau pour les paramètres ENA sur votre instance EC2](monitoring-network-performance-ena.md).

Sur les instances où les métriques ENA sont activées et où l' CloudWatch agent Amazon est installé, il CloudWatch collecte les métriques associées aux compteurs dans Windows Performance Monitor, ainsi que certaines métriques avancées pour l'ENA. Ces métriques sont collectées en plus des métriques activées par défaut sur les instances EC2. Pour plus d'informations sur les statistiques, consultez la section [Mesures collectées par l' CloudWatch agent](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/metrics-collected-by-CloudWatch-agent.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

**Note**  
Les métriques de performance sont disponibles pour les versions 2.4.0 et ultérieures du pilote ENA (également pour la version 2.2.3). Le pilote ENA version 2.2.4 a été restauré en raison d’une dégradation potentielle des performances sur les instances EC2 de sixième génération. Nous vous recommandons de mettre à niveau vers la version actuelle du pilote afin de disposer des mises à niveau les plus récentes.

Voici quelques exemples d’utilisation des métriques de performance :
+ Résoudre les problèmes de performance d’instance.
+ Choisir la taille d’instance appropriée pour une charge de travail.
+ Planifier de manière proactive des activités de mise à l’échelle.
+ Définir des points de référence pour les applications afin de déterminer si elles optimisent les performances disponibles sur une instance.

**Taux de rafraîchissement**  
Par défaut, le pilote actualise les métriques à l’aide d’un intervalle d’une seconde. Toutefois, l’application qui récupère les métriques peut utiliser un autre intervalle pour l’interrogation. Vous pouvez modifier l’intervalle d’actualisation dans le Gestionnaire de périphériques à l’aide des propriétés avancées du pilote.

Pour modifier l’intervalle d’actualisation des métriques du pilote Windows ENA, procédez comme suit :

1. Ouvrez **Exécuter** à l’aide de l’une des méthodes décrites dans la section précédente.

1. Pour ouvrir le Gestionnaire de périphériques Windows, saisissez `devmgmt.msc` la fenêtre **Exécuter**.

1. Choisissez **OK**. La fenêtre du Gestionnaire de périphériques s’ouvre.

1. Sélectionnez la flèche qui apparaît à gauche de **Cartes réseau** pour développer la liste.

1. Choisissez le nom ou ouvrez le menu contextuel pour **Amazon Elastic Network Adapter**, puis choisissez **Propriétés**. Cela ouvre la boîte de dialogue **Propriétés d’Amazon Elastic Network Adapter**.

1. Ouvrez l’onglet **Avancé** dans la fenêtre contextuelle.

1. Dans la liste **Propriété**, choisissez **Intervalle d’actualisation des métriques** pour modifier la valeur.

1. Une fois que vous avez terminé, choisissez **OK**.

## Examiner les notifications de configuration sous-optimale
<a name="ts-ena-win-sub-opt-config-notification"></a>

Le dispositif ENA détecte les paramètres de configuration sous-optimaux dans le pilote que vous pouvez modifier. Le périphérique avertit le pilote ENA et journalise une notification d'événement. Pour examiner les événements sous-optimaux dans l'Observateur d'événements Windows

1. Ouvrez **Exécuter** à l’aide de l’une des méthodes décrites dans la section précédente.

1. Pour ouvrir l’Observateur d’événements Windows, saisissez `eventvwr.msc` dans la fenêtre **Exécuter**.

1. Choisissez **OK**. La fenêtre de l’Observateur d’événements s’ouvre.

1. Développez le menu **Journaux Windows**, puis choisissez **Système**.

1. Sous **Actions**, dans le panneau supérieur droit, choisissez **Créer une vue personnalisée**. La boîte de dialogue Filtrer s’affiche.

1. Dans la zone **Sources d’événements**, saisissez `ena`. Cela limite les résultats aux événements générés par le pilote Windows ENA.

1. Choisissez **OK**. Les résultats du journal d’événements filtrés s’affichent dans les sections des détails de la fenêtre.

Les événements associés à un ID `59000` vous signalent des résultats de configuration sous-optimaux. Cliquez avec le bouton droit sur un **événement et choisissez Propriétés** de l'événement pour ouvrir une vue détaillée, ou sélectionnez **Volet d'aperçu** dans le menu **Affichage** pour voir les mêmes détails.

![\[Exemple : ID d'événement système 59000 affiché dans le volet d'aperçu de l'Observateur d'événements Windows.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/ena-sub-opt-event-general.png)


Ouvrez l'onglet **Détails** pour voir le code de l'événement. Dans la section **Données binaires : en mots**, le dernier mot est le code.

![\[Exemple : Le dernier mot de la section Données binaires est surligné.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/ena-sub-opt-event-detail.png)


La liste suivante indique les détails du code de notification et les actions recommandées pour les résultats de configuration sous-optimaux.
+ **Code `1` : ENA Express avec une configuration LLQ étendue n’est pas recommandé**

  L’ENI ENA Express est configuré avec un LLQ étendu. Cette configuration n’est pas optimale et pourrait avoir un impact sur les performances d’ENA Express. Nous vous recommandons de désactiver les paramètres LLQ étendus lorsque vous utilisez ENA Express ENIs comme suit.

  1. Pour ouvrir le Gestionnaire de périphériques Windows, saisissez `devmgmt.msc` la fenêtre **Exécuter**.

  1. Choisissez **OK**. La fenêtre du Gestionnaire de périphériques s’ouvre.

  1. Sélectionnez la flèche qui apparaît à gauche de **Cartes réseau** pour développer la liste.

  1. Ouvrez les propriétés du périphérique pour le `Amazon Elastic Network Adapter`.

  1. Ouvrez ensuite l'onglet **Avancé** pour effectuer vos modifications.

  1. Sélectionnez la propriété **LLQ Header Size Policy** et définissez sa valeur sur `Normal (128 Bytes)`.

  1. Choisissez **OK** pour enregistrer vos modifications.
+ **Code `2` : ENA Express ENI avec une profondeur de file d’attente Tx non optimale n’est pas recommandé**

  L’ENI ENA Express est configuré avec une profondeur de file d’attente Tx non optimale. Cette configuration pourrait avoir un impact sur les performances d’ENA Express. Nous vous recommandons d'agrandir toutes les files d'attente Tx à la valeur maximale de l'interface réseau lorsque vous utilisez ENA Express ENIs comme suit.

  Procédez comme suit pour élargir les files d'attente Tx à la profondeur maximale :

  1. Pour ouvrir le Gestionnaire de périphériques Windows, saisissez `devmgmt.msc` la fenêtre **Exécuter**.

  1. Choisissez **OK**. La fenêtre du Gestionnaire de périphériques s’ouvre.

  1. Sélectionnez la flèche qui apparaît à gauche de **Cartes réseau** pour développer la liste.

  1. Ouvrez les propriétés du périphérique pour le `Amazon Elastic Network Adapter`.

  1. Ouvrez ensuite l'onglet **Avancé** pour effectuer vos modifications.

  1. Sélectionnez la propriété **Transmit Buffers** et définissez sa valeur sur le maximum pris en charge.

  1. Choisissez **OK** pour enregistrer vos modifications.

## réinitialisation du dispositif ENA
<a name="ts-ena-drv-reset"></a>

Le processus de réinitialisation démarre lorsque le pilote Windows ENA détecte une erreur sur une carte et marque la carte comme défectueuse. Le pilote ne peut pas se réinitialiser lui-même. C’est donc le système d’exploitation qui doit vérifier l’état de la carte et appeler la réinitialisation du pilote Windows ENA. Le processus de réinitialisation peut entraîner une perte de traffic pendant une brève période. Toutefois, les connexions TCP devraient pouvoir récupérer.

Le dispositif ENA peut également demander indirectement une procédure de réinitialisation du périphérique. Dans ce cas, il n’envoie pas de notification keep-alive. Par exemple, si le dipositif ENA atteint un état inconnu après le chargement d’une configuration irrécupérable, il peut arrêter d’envoyer des notifications keep-alive.

**Causes courantes de réinitialisation du dispositif ENA**
+ Il manque des messages « keep-alive »

  Le dispositif ENA publie des événements keep-alive selon une fréquence fixe (généralement une fois par seconde). Le pilote Windows ENA implémente un mécanisme de surveillance, qui recherche régulièrement la présence de ces messages keep-alive. S’il détecte un ou plusieurs nouveaux messages depuis la dernière vérification, il enregistre un résultat réussi. Sinon, le pilote conclut que le périphérique a subi une défaillance et lance une séquence de réinitialisation.
+ Des paquets sont bloqués dans les files d’attente de transmission

  Le dispsitif ENA vérifie que les paquets circulent dans les files d’attente de transmission comme prévu. Le pilote Windows ENA détecte si les paquets sont bloqués et lance une séquence de réinitialisation le cas échéant.
+ Délai de lecture pour les registres MMIO I/O (Memory Mapped)

  Pour limiter les opérations de lecture MMIO I/O (mémoire mappée), le pilote Windows ENA accède aux registres MMIO uniquement pendant les processus d'initialisation et de réinitialisation. Si le pilote détecte un délai d’attente, il effectue l’une des actions suivantes, en fonction du processus en cours d’exécution :
  + Si un délai d’attente est détecté lors de l’initialisation, le flux échoue, ce qui fait que le pilote affiche un point d’exclamation jaune par le dispositif ENA dans le Gestionnaire de périphériques Windows.
  + Si un délai d’attente est détecté lors de la réinitialisation, le flux échoue. Le système d’exploitation lance alors une suppression inattendue du dispositif ENA, puis le récupère en arrêtant et en démarrant le dispositif retiré. Pour plus d’informations sur la suppression inattendue d’une carte NIC, consultez [Gestion de la suppression inattendue d’une carte réseau](https://learn.microsoft.com/en-us/windows-hardware/drivers/network/handling-the-surprise-removal-of-a-nic) dans la documentation *Microsof Windows Hardware Developer*.

## Scénarios de résolution des problèmes
<a name="ts-ena-drv-scenarios"></a>

Les scénarios suivants peuvent vous aider à résoudre les problèmes potentiels liés au pilote Windows ENA. Nous vous recommandons de commencer la mise à niveau de votre pilote ENA si vous ne disposez pas de la dernière version. Pour trouver le pilote le plus récent pour la version de votre système d’exploitation Windows, consultez [Suivre les versions des pilotes ENA pour Windows](ena-driver-releases-windows.md).

### Version inattendue du pilote ENA installé
<a name="ts-ena-drv-sc-unexpected-vsn"></a>

#### Description
<a name="ts-ena-drv-sc-unexpected-vsn-descr"></a>

Après avoir suivi les étapes d’installation d’une version spécifique du pilote ENA, le Gestionnaire de périphériques Windows indique que Windows a installé une version différente du pilote ENA.

#### Cause
<a name="ts-ena-drv-sc-unexpected-vsn-cause"></a>

Lorsque vous exécutez l’installation d’un package de pilotes, Windows classe tous les packages de pilotes valides pour le périphérique concerné dans le [magasin de pilotes](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/driver-store) local avant qu’elle ne commence. Il sélectionne ensuite le package ayant la valeur de classement la plus faible comme étant le mieux adapté. Il peut être différent du package que vous aviez l’intention d’installer. Pour plus d’informations sur le processus de sélection du package de pilotes de périphériques, consultez [Comment Windows sélectionne un package de pilotes pour un périphérique](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/how-windows-selects-a-driver-for-a-device) sur le *site Web de documentation de Microsoft*.

#### Solution
<a name="ts-ena-drv-sc-unexpected-vsn-solution"></a>

Pour vous assurer que Windows installe la version du package de pilotes que vous avez choisie, vous pouvez supprimer les packages de pilotes de rang inférieur du magasin de pilotes à l'aide de l'outil de ligne de PUtil commande [Pn](https://learn.microsoft.com/en-us/windows-hardware/drivers/devtest/pnputil).

Pour mettre à jour le pilote ENA, procédez comme suit :

1. Connectez-vous à votre instance en tant qu’administrateur local.

1. Ouvrez la fenêtre Propriétés du Gestionnaire de périphériques, comme décrit dans la section [Vérifier l’état du dispositif ENA](#ts-ena-diagnostics-device-mgr). L’onglet **Général** de la fenêtre **Propriétés Amazon Elastic Network Adapter** s’ouvre.

1. Ouvrez l’onglet **Pilote**.

1. Choisissez **Mettre à jour le pilote**. La boîte de dialogue **Mettre à jour le logiciel du pilote – Amazon Elastic Network Adapter** s’ouvre.

   1. Dans la section **Comment voulez-vous rechercher le pilote ?**, choisissez **Rechercher un pilote sur mon ordinateur**.

   1. Sur la page **Rechercher des pilotes sur votre ordinateur**, choisissez **Laissez-moi choisir dans une liste de pilotes de périphériques sur mon ordinateur**, située sous la barre de recherche.

   1. Sur la page **Sélectionner le pilote de périphérique que vous voulez installer pour ce matériel**, choisissez **Je dispose d’un disque…**.

   1. Dans la fenêtre **Installer à partir du disque**, choisissez **Parcourir…**, à côté de l’emplacement de fichier de la liste déroulante.

   1. Naviguez jusqu’à l’emplacement où vous avez téléchargé le package du pilote ENA cible. Sélectionnez le fichier nommé `ena.inf` et choisissez **Ouvrir**.

   1. Pour démarrer l’installation, cliquez sur **OK**, puis sur **Suivant**.

1. Si le programme d'installation ne redémarre pas automatiquement votre instance, exécutez l'**Restart-Computer** PowerShell applet de commande.

   ```
   PS C:\> Restart-Computer
   ```

### Avertissement de périphérique pour le pilote ENA
<a name="ts-ena-drv-sc-device-warn"></a>

#### Description
<a name="ts-ena-drv-sc-device-warn-descr"></a>

L’icône du dispositif ENA dans la section **Cartes réseau** du Gestionnaire de périphériques affiche un panneau d’avertissement (triangle jaune avec un point d’exclamation à l’intérieur).

Voici un exemple de dispositif ENA avec l’icône d’avertissement dans le Gestionnaire de périphériques Windows :

![\[Exemple : dispositif ENA avec icône d’avertissement affichée dans le Gestionnaire de périphériques Windows.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/ena-adapter-device-mgr-warn.png)


#### Cause
<a name="ts-ena-drv-sc-device-warn-cause"></a>

Cet avertissement est généralement dû à des problèmes d’environnement, qui peuvent nécessiter plus de recherches et requièrent généralement un processus d’élimination pour déterminer la cause sous-jacente. Pour obtenir la liste complète des erreurs liées aux périphériques, consultez la section [Messages d’erreur du gestionnaire de périphériques](https://learn.microsoft.com/en-us/windows-hardware/drivers/install/device-manager-error-messages) dans la documentation Microsoft.

#### Solution
<a name="ts-ena-drv-sc-device-warn-solution"></a>

La solution à cet avertissement de périphérique dépend de la cause racine. Le processus d’élimination décrit ici comprend des étapes de base pour identifier et résoudre les problèmes les plus courants et pouvant être simples à résoudre. Une analyse supplémentaire des causes racines est nécessaire lorsque ces étapes ne résolvent pas le problème.

Suivez ces étapes pour essayer d’identifier et de résoudre les problèmes courants :

1. 

**Arrêter et démarrer le périphérique**

   Ouvrez la fenêtre Propriétés du Gestionnaire de périphériques, comme décrit dans la section [Vérifier l’état du dispositif ENA](#ts-ena-diagnostics-device-mgr). L’onglet **Général** de la fenêtre **Propriétés de Amazon Elastic Network Adapter** s’ouvre, et **Statut de l’appareil**affiche le code d’erreur et un court message.

   1. Ouvrez l’onglet **Pilote**.

   1. Choisissez **Désactiver l’appareil**, et répondez **Oui** au message d’avertissement qui s’affiche.

   1. Choisissez **Activer l’appareil**.

1. 

**Arrêter et démarrer l’instance EC2**

   Si le dispositif affiche toujours l’icône d’avertissement dans le Gestionnaire de périphériques, arrêtez et démarrez l’instance EC2. Cette opération redémarre l’instance sur différents matériels dans la plupart des cas.

1. 

**Examiner les problèmes possibles avec les ressources de l’instance**

   Si vous avez arrêté et démarré votre instance EC2 et que le problème persiste, cela peut indiquer un problème avec les ressources sur votre instance, comme une mémoire insuffisante.

### Délai de connexion avec réinitialisation du dispositif (codes d’erreur 5007, 5205)
<a name="ts-ena-drv-sc-conn"></a>

#### Description
<a name="ts-ena-drv-sc-conn-descr"></a>

L’Observateur d’événements Windows affiche le délai d’expiration du dispositif et les événements de réinitialisation qui se produisent conjointement pour les dispositifs ENA. Les messages ressemblent aux exemples suivants :
+ **Event ID 5007**: Amazon Elastic Network Adapter : Timed out during an operation.
+ **Event ID 5205**: Amazon Elastic Network Adapter : Adapter reset has been started.

Les réinitialisations du dispositif entraînent une perturbation minime du trafic. Même lorsqu’il y a plusieurs réinitialisations, il serait inhabituel qu’elles provoquent une perturbation grave du réseau.

#### Cause
<a name="ts-ena-drv-sc-conn-cause"></a>

Cette séquence d’événements indique que le pilote Windows ENA a lancé une réinitialisation pour un dispositif ENA qui ne répondait pas. Toutefois, le mécanisme utilisé par le pilote de périphérique pour détecter ce problème est soumis à des faux positifs résultant d’une pénurie liée au processeur 0.

#### Solution
<a name="ts-ena-drv-sc-conn-solution"></a>

Si cette combinaison d’erreurs se produit souvent, vérifiez les allocations de ressources pour voir où des ajustements peuvent être utiles.

1. Ouvrez **Exécuter** à l’aide de l’une des méthodes décrites dans la section précédente.

1. Pour ouvrir le Moniteur de ressources Windows, saisissez `resmon` dans la fenêtre **Exécuter**.

1. Choisissez **OK**. La fenêtre Moniteur de ressources s’ouvre alors.

1. Ouvrez l’onglet **Processeur**. Les graphiques d’utilisation par processeur s’affichent sur le côté droit de la fenêtre Moniteur de ressources.

1. Vérifiez les niveaux d’utilisation du processeur 0 pour voir s’ils sont trop élevés.

Nous vous recommandons de configurer RSS pour exclure le processeur 0 du dispositif ENA sur des types d’instance plus grands (plus de 16 vCPU). Pour les types d’instances plus petits, la configuration de RSS peut améliorer l’expérience, mais en raison du nombre inférieur de cœurs disponibles, des tests sont nécessaires pour s’assurer que la contrainte des cœurs CPU n’a pas d’impact négatif sur les performances.

Utilisez la commande **Set-NetAdapterRss** pour configurer le RSS pour votre dispositif ENA, comme illustré dans l’exemple suivant.

```
Set-NetAdapterRss -name (Get-NetAdapter | Where-Object {$_.InterfaceDescription -like "*Elastic*"}).Name -Baseprocessorgroup 0 -BaseProcessorNumber 1
```

### La migration vers une infrastructure d’instance de sixième génération a un impact sur les performances ou les attachements
<a name="ts-ena-drv-6gen-instance-perf"></a>

#### Description
<a name="ts-ena-drv-6gen-instance-perf-descr"></a>

Si vous migrez vers une instance EC2 de sixième génération, vous risquez de rencontrer des performances réduites ou des échecs d’attachements ENA si vous n’avez pas mis à jour la version de votre pilote Windows ENA.

#### Cause
<a name="ts-ena-drv-6gen-instance-perf-cause"></a>

Les types d’instances EC2 de sixième génération nécessitent la version minimale suivante du pilote Windows ENA, en fonction du système d’exploitation (OS) de l’instance.


**Version minimale**  

| Version Windows Server | Version de pilote ENA | 
| --- | --- | 
|  Windows Server 2008 R2  |  2.2.3 ou 2.4.0  | 
|  Windows Server 2012 et versions ultérieures  |  2.2.3 et ultérieures  | 
|  Station de travail Windows  |  2.2.3 et ultérieures  | 

#### Solution
<a name="ts-ena-drv-6gen-instance-perf-solution"></a>

Avant de passer à une instance EC2 de sixième génération, assurez-vous que l’AMI à partir de laquelle vous lancez dispose de pilotes compatibles basés sur le système d’exploitation de l’instance, comme indiqué dans le tableau précédent. Pour plus d’informations, consultez [Que dois-je faire avant de migrer mon instance EC2 vers une instance de sixième génération pour m’assurer de bénéficier de performances réseau optimales ?](https://repost.aws/knowledge-center/migrate-to-gen6-ec2-instance) dans le *Centre de connaissances AWS re:Post *.

### Performances sous-optimales de l’interface réseau Elastic
<a name="ts-ena-drv-interface-perf"></a>

#### Description
<a name="ts-ena-drv-interface-perf-descr"></a>

L’interface ENA ne fonctionne pas comme prévu.

#### Cause
<a name="ts-ena-drv-interface-perf-cause"></a>

L’analyse des causes racines des problèmes de performance est un processus d’élimination. Trop de variables sont impliquées pour nommer une cause commune.

#### Solution
<a name="ts-ena-drv-interface-perf-solution"></a>

La première étape de votre analyse des causes racines consiste à examiner les informations de diagnostic de l’instance qui ne fonctionne pas comme prévu afin de déterminer si des erreurs peuvent être à l’origine du problème. Pour plus d’informations, consultez la section [Collecter des informations de diagnostic sur l’instance](#ts-ena-drv-collect-diagnostics).

Il se peut que vous ayez besoin de modifier la configuration par défaut du système d’exploitation pour obtenir des performances réseau optimales sur les instances dont la mise en réseau est améliorée. Certaines optimisations, telles que l'activation du déchargement par checksum et l'activation du flux RSS, sont configurées par défaut dans Windows officiel. AMIs Pour obtenir d’autres optimisations que vous pouvez appliquer au dispositif ENA, consultez les réglages de performance figurant dans [Réglages des performances du dispositif ENA](#ts-ena-drv-perf-adj).

Nous vous recommandons de procéder avec prudence et de limiter les modifications des propriétés de l'appareil à celles répertoriées dans cette section ou aux modifications spécifiques recommandées par l'équipe d' AWS assistance.

Pour modifier les propriétés du dispositif ENA, procédez comme suit :

1. Ouvrez **Exécuter** à l’aide de l’une des méthodes décrites dans la section précédente.

1. Pour ouvrir le Gestionnaire de périphériques Windows, saisissez `devmgmt.msc` la fenêtre **Exécuter**.

1. Choisissez **OK**. La fenêtre du Gestionnaire de périphériques s’ouvre.

1. Sélectionnez la flèche qui apparaît à gauche de **Cartes réseau** pour développer la liste.

1. Choisissez le nom ou ouvrez le menu contextuel pour **Amazon Elastic Network Adapter**, puis choisissez **Propriétés**. Cela ouvre la boîte de dialogue **Propriétés d’Amazon Elastic Network Adapter**.

1. Pour effectuer vos modifications, ouvrez l’onglet **Avancé**.

1. Lorsque vous avez terminé, sélectionnez **OK** pour enregistrer les modifications.

Voici un exemple de propriété du dispositif ENA dans le Gestionnaire de périphériques Windows :

![\[Exemple : propriété du dispositif ENA affichée dans le Gestionnaire de périphériques Windows.\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/images/ena-adapter-device-mgr-property.png)


##### Réglages des performances du dispositif ENA
<a name="ts-ena-drv-perf-adj"></a>

Le tableau suivant inclut des propriétés pouvant être réglées pour améliorer les performances de l’interface ENA.


**Input**  

| Propriété | Description | Valeur par défaut | Ajustement | 
| --- | --- | --- | --- | 
|  Tampons de réception  |  Contrôle le nombre d’entrées dans les files d’attente de réception du logiciel.  |  1 024  |  Peut être augmenté jusqu’à 8 192 au maximum.  | 
|  Partage du trafic entrant (RSS)  |  Permet de répartir efficacement le traitement de réception réseau sur plusieurs CPUs systèmes multiprocesseurs.  |  Activé  |  Vous pouvez répartir la charge sur plusieurs processeurs. Pour en savoir plus, veuillez consulter la section [Optimisation des performances réseau sur les instances EC2 Windows](enhanced-networking-os.md).  | 
|  Nombre maximal de files d’attente RSS  |  Définit le nombre maximum de files d’attente RSS autorisées lorsque `RSS` est activé.  |  32  |  Le nombre de files d’attente RSS est déterminé lors de l’initialisation du pilote et inclut les limitations suivantes (entre autres) : [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/troubleshoot-ena-driver.html) Vous pouvez définir une valeur entre 1 et 32, en fonction des limites de génération de votre instance et de votre matériel. Pour en savoir plus, veuillez consulter la section [Optimisation des performances réseau sur les instances EC2 Windows](enhanced-networking-os.md).  | 
|  Paquet jumbo  |  Permet l’utilisation de trames ethernet jumbo (plus de 1 500 octets de charge utile).  |  Désactivé (cela limite la charge utile à 1 500 octets)  |  La valeur peut être configurée sur `9015`, ce qui se traduit par 9 001 octets de charge utile. Il s’agit de la charge utile maximale pour les trames ethrnet jumbo. Consultez [Considérations relatives à l’utilisation de trames ethernet jumbo](#ts-ena-drv-jumbo-frames).  | 

##### Considérations relatives à l’utilisation de trames ethernet jumbo
<a name="ts-ena-drv-jumbo-frames"></a>

Les trames jumbo permettent d’utiliser plus de 1 500 octets de données en augmentant la charge utile par paquet, et donc en augmentant le pourcentage de paquet qui ne constitue pas des frais supplémentaires. Moins de paquets sont nécessaires pour envoyer le même volume de données utilisables. Toutefois, le trafic est limité à une MTU maximale de 1 500 dans les cas suivants :
+ Trafic en dehors d'une AWS région donnée pour EC2 Classic.
+ Trafic à l’extérieur d’un VPC unique.
+ Trafic sur une connexion d’appairage de VPC entre régions.
+ Trafic sur des connexions VPN.
+ Trafic sur une passerelle Internet.

**Note**  
Les paquets de plus de 1 500 octets sont fragmentés. Si vous avez l’indicateur `Don't Fragment` défini dans l’en-tête IP, ces paquets sont supprimés.  
Les trames jumbo doivent être utilisées avec prudence pour le trafic Internet ou pour tout trafic quittant un VPC. Les paquets sont fragmentés par des systèmes intermédiaires, ce qui ralentit le trafic. Pour utiliser des trames jumbo à l’intérieur d’un VPC sans affecter le trafic sortant du VPC, essayez l’une des options suivantes :  
Configurez la taille MTU par acheminement.
Utilisez plusieurs interfaces réseau avec différentes tailles MTU et différents acheminements.

**Cas d’utilisation recommandés pour les trames jumbo**  
Les cadres Jumbo peuvent être utiles pour le trafic à l'intérieur et entre les deux VPCs. Nous vous recommandons d’utiliser des trames jumbo pour les cas d’utilisation suivants :
+ Pour les instances situées dans un même groupe de placement du cluster, les trames jumbo permettent d’atteindre le débit réseau maximum possible. Pour de plus amples informations, veuillez consulter [Groupes de placement pour vos EC2 instances Amazon](placement-groups.md).
+ Vous pouvez utiliser des trames jumbo pour le trafic entre votre réseau VPCs et votre réseau local. Direct Connect Pour plus d'informations sur l'utilisation Direct Connect et la vérification de la fonctionnalité des trames jumbo, voir [MTU pour les interfaces virtuelles privées ou les interfaces virtuelles de transit dans le guide](https://docs.aws.amazon.com/directconnect/latest/UserGuide/WorkingWithVirtualInterfaces.html#set-jumbo-frames-vif.html) de l'*Direct Connect utilisateur*.
+ Pour plus d'informations sur les tailles MTU prises en charge pour les passerelles de transit, consultez [Quotas pour vos passerelles de transit](https://docs.aws.amazon.com/vpc/latest/tgw/transit-gateway-quotas.html#mtu-quota) dans *Amazon VPC Transit Gateways*.

# Améliorer les performances du réseau entre les instances EC2 à l’aide d’ENA Express
<a name="ena-express"></a>

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. Grâce à ENA Express, vous pouvez communiquer entre deux instances EC2 situées dans la même zone de disponibilité.

**Avantages d’ENA Express**
+ 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 de l’instance agrégée.
+ Réduit la latence du trafic réseau entre les instances EC2, 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](enhanced-networking.md) peut être mieux adaptée à votre réseau.
Le trafic ENA Express ne peut pas être envoyé à une zone locale.

Une fois que vous avez activé ENA Express pour l’attachement 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 l’instance de réception. Si ENA Express fonctionne, la communication peut utiliser la transmission SRD. Si ENA Express ne fonctionne pas, la communication revient à la transmission ENA standard.

Pendant les périodes où le trafic réseau est faible, vous pouvez remarquer une légère augmentation de la latence des paquets (quelques dizaines de microsecondes) lorsque le paquet utilise ENA Express. Pendant ces périodes, les applications qui donnent la priorité à des caractéristiques de performance réseau spécifiques peuvent bénéficier d’ENA Express de la manière suivante :
+ Les processus peuvent bénéficier d’une augmentation de la bande passante maximale pour un flux unique de 5 Gbit/s à 25 Gbit/s au sein de la même zone de disponibilité, jusqu’à la limite de l’instance 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.

**Topics**
+ [Fonctionnement d’ENA Express](#ena-express-how-it-works)
+ [Types d’instance pris en charge pour ENA Express](#ena-express-supported-instance-types)
+ [Conditions préalables pour les instances Linux](#ena-express-prereq-linux)
+ [Optimiser les performances des paramètres ENA Express sur les instances Linux](#ena-express-tune)
+ [Examiner les paramètres d’ENA Express pour votre instance EC2](ena-express-list-view.md)
+ [Configurer les paramètres ENA Express pour votre instance EC2](ena-express-configure.md)

## Fonctionnement d’ENA Express
<a name="ena-express-how-it-works"></a>

ENA Express 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 garantir qu’ENA Express 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’instance pris en charge pour ENA Express](#ena-express-supported-instance-types) pour plus d’informations.
+ ENA Express doit être configuré pour les instances d’envoi et de réception. S’il existe des différences de configuration, vous pouvez vous retrouver dans des situations où le trafic passe par défaut à une transmission ENA standard. Le scénario suivant montre ce qui peut se passer.

  **Scénario : différences de configuration**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/ena-express.html)

  Dans ce cas, le trafic TCP entre les deux instances peut utiliser ENA Express, car les deux instances l’ont activé. Toutefois, étant donné que l’une des instances n’utilise pas ENA Express pour le trafic UDP, la communication entre ces deux instances via UDP utilise une transmission ENA standard.
+ Les instances d’envoi et de réception doivent fonctionner 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.
+ (Instances Linux uniquement) Pour utiliser tout le potentiel de la bande passante, utilisez la version 2.2.9 du pilote ou une version plus récente.
+ (Instances Linux uniquement) Pour produire des métriques, utilisez la version 2.8 ou une version supérieure du pilote.

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

Pour vous assurer que le pilote réseau de votre instance est configuré pour des performances optimales, veuillez consulter les bonnes pratiques recommandées pour les pilotes ENA. Ces bonnes pratiques s’appliquent également à ENA Express. Pour plus d'informations, consultez le [guide des meilleures pratiques et d'optimisation des performances des pilotes Linux ENA](https://github.com/amzn/amzn-drivers/blob/master/kernel/linux/ena/ENA_Linux_Best_Practices.rst) sur le GitHub site Web.

**Note**  
Amazon EC2 fait référence à la relation entre une instance et une interface réseau qui lui est attachée en tant qu’*attachement*. Les paramètres ENA Express s’appliquent à l’attachement. Si l’interface réseau est détachée de l’instance, l’attachement 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.

Après avoir activé ENA Express en ce qui concerne les connexions d’interface réseau de l’instance d’envoi et de 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 technologie SRD. Pour plus d’informations sur les métriques ENA Express, veuillez consulter [Métriques pour ENA Express](monitoring-network-performance-ena.md#network-performance-metrics-ena-express).

## Types d’instance pris en charge pour ENA Express
<a name="ena-express-supported-instance-types"></a>

Les types d’instance suivants prennent en charge ENA Express.

------
#### [ General purpose ]


| Type d’instance | Architecture | 
| --- | --- | 
| m6a.12xlarge | x86\$164 | 
| m6a.16xlarge | x86\$164 | 
| m6a.24xlarge | x86\$164 | 
| m6a.32xlarge | x86\$164 | 
| m6a.48xlarge | x86\$164 | 
| m6a.metal | x86\$164 | 
| m6i.8xlarge | x86\$164 | 
| m6i.12xlarge | x86\$164 | 
| m6i.16xlarge | x86\$164 | 
| m6i.24xlarge | x86\$164 | 
| m6i.32xlarge | x86\$164 | 
| m6i.metal | x86\$164 | 
| m6id.8xlarge | x86\$164 | 
| m6id.12xlarge | x86\$164 | 
| m6id.16xlarge | x86\$164 | 
| m6id.24xlarge | x86\$164 | 
| m6id.32xlarge | x86\$164 | 
| m6id.metal | x86\$164 | 
| m6idn.8xlarge | x86\$164 | 
| m6idn.12xlarge | x86\$164 | 
| m6idn.16xlarge | x86\$164 | 
| m6idn.24xlarge | x86\$164 | 
| m6idn.32xlarge | x86\$164 | 
| m6idn.metal | x86\$164 | 
| m6in.8xlarge | x86\$164 | 
| m6in.12xlarge | x86\$164 | 
| m6in.16xlarge | x86\$164 | 
| m6in.24xlarge | x86\$164 | 
| m6in.32xlarge | x86\$164 | 
| m6in.metal | x86\$164 | 
| m7a.12xlarge | x86\$164 | 
| m7a.16xlarge | x86\$164 | 
| m7a.24xlarge | x86\$164 | 
| m7a.32xlarge | x86\$164 | 
| m7a.48xlarge | x86\$164 | 
| m7a.metal-48xl | x86\$164 | 
| m7g.12xlarge | arm64 | 
| m7g.16xlarge | arm64 | 
| m7g.metal | arm64 | 
| m7gd.12xlarge | arm64 | 
| m7gd.16xlarge | arm64 | 
| m7gd.metal | arm64 | 
| m7i.12xlarge | x86\$164 | 
| m7i.16xlarge | x86\$164 | 
| m7i.24xlarge | x86\$164 | 
| m7i.48xlarge | x86\$164 | 
| m7i.metal-24xl | x86\$164 | 
| m7i.metal-48xl | x86\$164 | 
| m8a.16xlarge | x86\$164 | 
| m8a.24xlarge | x86\$164 | 
| m8a.48xlarge | x86\$164 | 
| m8a.metal-24xl | x86\$164 | 
| m8a.metal-48xl | x86\$164 | 
| m8azn.12xlarge | x86\$164 | 
| m8azn.24xlarge | x86\$164 | 
| m8azn.metal-12xl | x86\$164 | 
| m8azn.metal-24xl | x86\$164 | 
| 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\$164 | 
| m8i.32xlarge | x86\$164 | 
| m8i.48xlarge | x86\$164 | 
| m8i.96xlarge | x86\$164 | 
| m8i.metal-48xl | x86\$164 | 
| m8i.metal-96xl | x86\$164 | 
| m8id.24xlarge | x86\$164 | 
| m8id.32xlarge | x86\$164 | 
| m8id.48xlarge | x86\$164 | 
| m8id.96xlarge | x86\$164 | 
| m8id.metal-48xl | x86\$164 | 
| m8id.metal-96xl | x86\$164 | 

------
#### [ Compute optimized ]


| Type d’instance | Architecture | 
| --- | --- | 
| c6a.12xlarge | x86\$164 | 
| c6a.16xlarge | x86\$164 | 
| c6a.24xlarge | x86\$164 | 
| c6a.32xlarge | x86\$164 | 
| c6a.48xlarge | x86\$164 | 
| c6a.metal | x86\$164 | 
| c6gn.4xlarge | arm64 | 
| c6gn.8xlarge | arm64 | 
| c6gn.12xlarge | arm64 | 
| c6gn.16xlarge | arm64 | 
| c6i.8xlarge | x86\$164 | 
| c6i.12xlarge | x86\$164 | 
| c6i.16xlarge | x86\$164 | 
| c6i.24xlarge | x86\$164 | 
| c6i.32xlarge | x86\$164 | 
| c6i.metal | x86\$164 | 
| c6id.8xlarge | x86\$164 | 
| c6id.12xlarge | x86\$164 | 
| c6id.16xlarge | x86\$164 | 
| c6id.24xlarge | x86\$164 | 
| c6id.32xlarge | x86\$164 | 
| c6id.metal | x86\$164 | 
| c6in.8xlarge | x86\$164 | 
| c6in.12xlarge | x86\$164 | 
| c6in.16xlarge | x86\$164 | 
| c6in.24xlarge | x86\$164 | 
| c6in.32xlarge | x86\$164 | 
| c6in.metal | x86\$164 | 
| c7a.12xlarge | x86\$164 | 
| c7a.16xlarge | x86\$164 | 
| c7a.24xlarge | x86\$164 | 
| c7a.32xlarge | x86\$164 | 
| c7a.48xlarge | x86\$164 | 
| c7a.metal-48xl | x86\$164 | 
| 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\$164 | 
| c7i.16xlarge | x86\$164 | 
| c7i.24xlarge | x86\$164 | 
| c7i.48xlarge | x86\$164 | 
| c7i.metal-24xl | x86\$164 | 
| c7i.metal-48xl | x86\$164 | 
| c8a.16xlarge | x86\$164 | 
| c8a.24xlarge | x86\$164 | 
| c8a.48xlarge | x86\$164 | 
| c8a.metal-24xl | x86\$164 | 
| c8a.metal-48xl | x86\$164 | 
| 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\$164 | 
| c8i.32xlarge | x86\$164 | 
| c8i.48xlarge | x86\$164 | 
| c8i.96xlarge | x86\$164 | 
| c8i.metal-48xl | x86\$164 | 
| c8i.metal-96xl | x86\$164 | 
| c8id.24xlarge | x86\$164 | 
| c8id.32xlarge | x86\$164 | 
| c8id.48xlarge | x86\$164 | 
| c8id.96xlarge | x86\$164 | 
| c8id.metal-48xl | x86\$164 | 
| c8id.metal-96xl | x86\$164 | 

------
#### [ Memory optimized ]


| Type d’instance | Architecture | 
| --- | --- | 
| r6a.12xlarge | x86\$164 | 
| r6a.16xlarge | x86\$164 | 
| r6a.24xlarge | x86\$164 | 
| r6a.32xlarge | x86\$164 | 
| r6a.48xlarge | x86\$164 | 
| r6a.metal | x86\$164 | 
| r6i.8xlarge | x86\$164 | 
| r6i.12xlarge | x86\$164 | 
| r6i.16xlarge | x86\$164 | 
| r6i.24xlarge | x86\$164 | 
| r6i.32xlarge | x86\$164 | 
| r6i.metal | x86\$164 | 
| r6id.8xlarge | x86\$164 | 
| r6id.12xlarge | x86\$164 | 
| r6id.16xlarge | x86\$164 | 
| r6id.24xlarge | x86\$164 | 
| r6id.32xlarge | x86\$164 | 
| r6id.metal | x86\$164 | 
| r6idn.8xlarge | x86\$164 | 
| r6idn.12xlarge | x86\$164 | 
| r6idn.16xlarge | x86\$164 | 
| r6idn.24xlarge | x86\$164 | 
| r6idn.32xlarge | x86\$164 | 
| r6idn.metal | x86\$164 | 
| r6in.8xlarge | x86\$164 | 
| r6in.12xlarge | x86\$164 | 
| r6in.16xlarge | x86\$164 | 
| r6in.24xlarge | x86\$164 | 
| r6in.32xlarge | x86\$164 | 
| r6in.metal | x86\$164 | 
| r7a.12xlarge | x86\$164 | 
| r7a.16xlarge | x86\$164 | 
| r7a.24xlarge | x86\$164 | 
| r7a.32xlarge | x86\$164 | 
| r7a.48xlarge | x86\$164 | 
| r7a.metal-48xl | x86\$164 | 
| r7g.12xlarge | arm64 | 
| r7g.16xlarge | arm64 | 
| r7g.metal | arm64 | 
| r7gd.12xlarge | arm64 | 
| r7gd.16xlarge | arm64 | 
| r7gd.metal | arm64 | 
| r7i.12xlarge | x86\$164 | 
| r7i.16xlarge | x86\$164 | 
| r7i.24xlarge | x86\$164 | 
| r7i.48xlarge | x86\$164 | 
| r7i.metal-24xl | x86\$164 | 
| r7i.metal-48xl | x86\$164 | 
| r7iz.8xlarge | x86\$164 | 
| r7iz.12xlarge | x86\$164 | 
| r7iz.16xlarge | x86\$164 | 
| r7iz.32xlarge | x86\$164 | 
| r7iz.metal-16xl | x86\$164 | 
| r7iz.metal-32xl | x86\$164 | 
| r8a.16xlarge | x86\$164 | 
| r8a.24xlarge | x86\$164 | 
| r8a.48xlarge | x86\$164 | 
| r8a.metal-24xl | x86\$164 | 
| r8a.metal-48xl | x86\$164 | 
| 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\$164 | 
| r8i.32xlarge | x86\$164 | 
| r8i.48xlarge | x86\$164 | 
| r8i.96xlarge | x86\$164 | 
| r8i.metal-48xl | x86\$164 | 
| r8i.metal-96xl | x86\$164 | 
| r8id.24xlarge | x86\$164 | 
| r8id.32xlarge | x86\$164 | 
| r8id.48xlarge | x86\$164 | 
| r8id.96xlarge | x86\$164 | 
| r8id.metal-48xl | x86\$164 | 
| r8id.metal-96xl | x86\$164 | 
| u7i-6tb.112xlarge | x86\$164 | 
| u7i-8tb.112xlarge | x86\$164 | 
| u7i-12tb.224xlarge | x86\$164 | 
| u7in-16tb.224xlarge | x86\$164 | 
| u7in-24tb.224xlarge | x86\$164 | 
| u7in-32tb.224xlarge | x86\$164 | 
| u7inh-32tb.480xlarge | x86\$164 | 
| x2idn.16xlarge | x86\$164 | 
| x2idn.24xlarge | x86\$164 | 
| x2idn.32xlarge | x86\$164 | 
| x2idn.metal | x86\$164 | 
| x2iedn.8xlarge | x86\$164 | 
| x2iedn.16xlarge | x86\$164 | 
| x2iedn.24xlarge | x86\$164 | 
| x2iedn.32xlarge | x86\$164 | 
| x2iedn.metal | x86\$164 | 
| x8g.12xlarge | arm64 | 
| x8g.16xlarge | arm64 | 
| x8g.24xlarge | arm64 | 
| x8g.48xlarge | arm64 | 
| x8g.metal-24xl | arm64 | 
| x8g.metal-48xl | arm64 | 
| x8aedz.24xlarge | x86\$164 | 
| x8aedz.metal-24xl | x86\$164 | 
| x8i.24xlarge | x86\$164 | 
| x8i.32xlarge | x86\$164 | 
| x8i.48xlarge | x86\$164 | 
| x8i.64xlarge | x86\$164 | 
| x8i.96xlarge | x86\$164 | 
| x8i.metal-48xl | x86\$164 | 
| x8i.metal-96xl | x86\$164 | 

------
#### [ Accelerated computing ]


| Type d’instance | Architecture | 
| --- | --- | 
| g6.48xlarge | x86\$164 | 
| g6e.12xlarge | x86\$164 | 
| g6e.24xlarge | x86\$164 | 
| g6e.48xlarge | x86\$164 | 
| g7e.12xlarge | x86\$164 | 
| g7e.24xlarge | x86\$164 | 
| g7e.48xlarge | x86\$164 | 
| p5.4xlarge | x86\$164 | 
| p5.48xlarge | x86\$164 | 
| p5e.48xlarge | x86\$164 | 
| p5en.48xlarge | x86\$164 | 
| p6-b200.48xlarge | x86\$164 | 
| p6-b300.48xlarge | x86\$164 | 

------
#### [ Storage optimized ]


| Type d’instance | Architecture | 
| --- | --- | 
| i4g.4xlarge | arm64 | 
| i4g.8xlarge | arm64 | 
| i4g.16xlarge | arm64 | 
| i4i.8xlarge | x86\$164 | 
| i4i.12xlarge | x86\$164 | 
| i4i.16xlarge | x86\$164 | 
| i4i.24xlarge | x86\$164 | 
| i4i.32xlarge | x86\$164 | 
| i4i.metal | x86\$164 | 
| i7i.12xlarge | x86\$164 | 
| i7i.16xlarge | x86\$164 | 
| i7i.24xlarge | x86\$164 | 
| i7i.48xlarge | x86\$164 | 
| i7i.metal-24xl | x86\$164 | 
| i7i.metal-48xl | x86\$164 | 
| i7ie.12xlarge | x86\$164 | 
| i7ie.18xlarge | x86\$164 | 
| i7ie.24xlarge | x86\$164 | 
| i7ie.48xlarge | x86\$164 | 
| i7ie.metal-24xl | x86\$164 | 
| i7ie.metal-48xl | x86\$164 | 
| 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 | 

------

## Conditions préalables pour les instances Linux
<a name="ena-express-prereq-linux"></a>

Pour garantir le bon fonctionnement d’ENA 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) sur `8900`.

  ```
  [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’ENA Express, configurez les limites de votre file d’attente TCP comme suit :

  1. Définissez la limite des petites files d’attente TCP à 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'
     ```

  1. 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 pilote ENA de la distribution Amazon Linux désactive les limites de files d’attente d’octets par défaut.
+ Pour minimiser la latence du trafic TCP d'ENA Express, vous pouvez désactiver la fonction d'autobouchage TCP. Cela peut entraîner une augmentation minimale de la surcharge de paquets :

  ```
  sudo bash -c 'echo 0 > /proc/sys/net/ipv4/tcp_autocorking'
  ```

## Optimiser les performances des paramètres ENA Express sur les instances Linux
<a name="ena-express-tune"></a>

Pour vérifier la configuration de votre instance Linux afin d'optimiser les performances d'ENA Express, 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](https://github.com/amzn/amzn-ec2-ena-utilities/blob/main/ena-express/check-ena-express-settings.sh)

Le script exécute une série de tests et suggère des modifications de configuration recommandées et nécessaires.

# Examiner les paramètres d’ENA Express pour votre instance EC2
<a name="ena-express-list-view"></a>

Vous pouvez vérifier les paramètres ENA Express par instance ou par interface réseau. Pour mettre à jour les paramètres ENA Express, consultez la section [Configurer les paramètres ENA Express pour votre instance EC2](ena-express-configure.md).

------
#### [ Console ]

**Pour afficher les paramètres ENA Express d’une interface réseau**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation de gauche, choisissez **Network Interfaces** (Interfaces réseau).

1. Sélectionnez une interface réseau pour afficher les détails de cette instance. Vous pouvez cliquer sur le lien **Network interface ID** (ID d’interface réseau) pour ouvrir la page détaillée ou cocher la case sur le côté gauche de la liste pour afficher les détails dans le volet détaillé en bas de la page.

1. Dans la section **Attachement de l’interface réseau** de l’onglet **Détails** ou de la page de détails, passez en revue les paramètres **ENA Express** et **ENA Express UDP**.

**Pour consulter les paramètres ENA Express d’une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation de gauche, sélectionnez **Instances**.

1. Sélectionnez une instance pour afficher les détails de cette instance. Vous pouvez cliquer sur le lien **Instance ID** (ID d’instance) pour ouvrir la page détaillée ou cocher la case sur le côté gauche de la liste pour afficher les détails dans le volet détaillé en bas de la page.

1. Dans la section **Network interfaces** (Interfaces réseau) de l’onglet **Networking** (Réseau), faites défiler l’écran vers la droite pour passer en revue les paramètres **ENA Express** et **ENA Express UDP**.

------
#### [ AWS CLI ]

**Pour obtenir les paramètres ENA Express d’une instance**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/describe-instances.html](https://docs.aws.amazon.com/cli/latest/reference/describe-instances.html). Cet exemple de commande renvoie une liste des configurations ENA Express pour les interfaces réseau connectées à chacune des instances en cours d’exécution indiquées par le paramètre `--instance-ids`.

```
aws ec2 describe-instances \
    --instance-ids i-1234567890abcdef0 i-0598c7d356eba48d7 \
    --query 'Reservations[*].Instances[*].[InstanceId, NetworkInterfaces[*].Attachment.EnaSrdSpecification]'
```

Voici un exemple de sortie.

```
[
    [
        [
            "i-1234567890abcdef0",
            [
                {
                    "EnaSrdEnabled": true,
                    "EnaSrdUdpSpecification": {
                        "EnaSrdUdpEnabled": false
                    }
                }
            ]
        ]
    ],
    [
        [
            "i-0598c7d356eba48d7",
            [
            {
                    "EnaSrdEnabled": true,
                    "EnaSrdUdpSpecification": {
                        "EnaSrdUdpEnabled": false
                    }
                }
            ]
        ]
    ]
]
```

**Pour obtenir les paramètres ENA Express d’une interface réseau**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/describe-network-interfaces.html](https://docs.aws.amazon.com/cli/latest/reference/describe-network-interfaces.html).

```
aws ec2 describe-network-interfaces \
    --network-interface-ids eni-1234567890abcdef0 \
    --query NetworkInterfaces[].[NetworkInterfaceId,Attachment.EnaSrdSpecification]
```

Voici un exemple de sortie.

```
[
    [
        "eni-1234567890abcdef0",
        {
            "EnaSrdEnabled": true,
            "EnaSrdUdpSpecification": {
                "EnaSrdUdpEnabled": false
            }
        }
    ]
]
```

------
#### [ PowerShell ]

**Pour obtenir les paramètres ENA Express d’une interface réseau**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2NetworkInterface.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2NetworkInterface.html).

```
Get-EC2NetworkInterface `
    -NetworkInterfaceId eni-1234567890abcdef0 | `
Select-Object `
    Association, 
    NetworkInterfaceId, 
    OwnerId, 
    @{Name = 'AttachTime'; Expression = { $_.Attachment.AttachTime } },
    @{Name = 'AttachmentId'; Expression = { $_.Attachment.AttachmentId } },
    @{Name = 'DeleteOnTermination'; Expression = { $_.Attachment.DeleteOnTermination } },
    @{Name = 'NetworkCardIndex'; Expression = { $_.Attachment.NetworkCardIndex } },
    @{Name = 'InstanceId'; Expression = { $_.Attachment.InstanceId } },
    @{Name = 'InstanceOwnerId'; Expression = { $_.Attachment.InstanceOwnerId } },
    @{Name = 'Status'; Expression = { $_.Attachment.Status } },
    @{Name = 'EnaSrdEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdEnabled } },
    @{Name = 'EnaSrdUdpEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled } }
```

Voici un exemple de sortie.

```
Association         : 
NetworkInterfaceId  : eni-0d1234e5f6a78901b
OwnerId             : 111122223333
AttachTime          : 6/11/2022 1:13:11 AM
AttachmentId        : eni-attach-0d1234e5f6a78901b
DeleteOnTermination : True
NetworkCardIndex    : 0
InstanceId          : i-1234567890abcdef0
InstanceOwnerId     : 111122223333
Status              : attached
EnaSrdEnabled       : True
EnaSrdUdpEnabled    : False
```

------

# Configurer les paramètres ENA Express pour votre instance EC2
<a name="ena-express-configure"></a>

Vous pouvez configurer ENA Express pour les types d’instance EC2 pris en charge sans avoir à installer de logiciel supplémentaire. Pour de plus amples informations, veuillez consulter [Types d’instance pris en charge pour ENA Express](ena-express.md#ena-express-supported-instance-types).

------
#### [ Console ]

**Pour gérer ENA Express pour une interface réseau**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation de gauche, choisissez **Network Interfaces** (Interfaces réseau).

1. Sélectionnez une interface réseau qui doit être attachée à une instance. Vous pouvez cliquer sur le lien **Network interface ID** (ID d’interface réseau) pour ouvrir la page détaillée ou cocher la case sur le côté gauche de la liste.

1. Choisissez **Manage ENA Express** (Gérer ENA Express) dans le menu **Action** en haut à droite de la page. Cela ouvre la boîte de dialogue **Manage ENA Express** (Gestion d’ENA Express), qui affiche l’ID de l’interface réseau sélectionnée et les paramètres actuels.

   Si l’interface réseau que vous avez sélectionnée n’est pas associée à une instance, cette action n’apparaît pas dans le menu.

1. Pour utiliser **ENA Express**, cochez la case **Enable** (Activer).

1. Lorsque ENA Express est activé, vous pouvez configurer les paramètres UDP. Pour utiliser **ENA Express UDP**, cochez la case **Enable** (Activer).

1. Pour enregistrer vos paramètres, choisissez **Save** (Enregistrer).

**Pour gérer ENA Express pour une instance**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation de gauche, sélectionnez **Instances**.

1. Sélectionnez l’instance que vous voulez gérer. Vous pouvez choisir **Instance ID** (ID d’instance) pour ouvrir la page détaillée ou cocher la case sur le côté gauche de la liste.

1. Sélectionnez **Network interface** (Interface réseau) pour configurer pour votre instance.

1. Choisissez **Manage ENA Express** (Gérer ENA Express) dans le menu **Action** en haut à droite de la page.

1. Pour configurer ENA Express pour une interface réseau attachée à votre instance, sélectionnez-la dans la liste **Network interface** (Interface réseau).

1. Pour utiliser **ENA Express** pour la connexion d’interface réseau sélectionnée, cochez la case **Enable** (Activer).

1. Lorsque ENA Express est activé, vous pouvez configurer les paramètres UDP. Pour utiliser **ENA Express UDP**, cochez la case **Enable** (Activer).

1. Pour enregistrer vos paramètres, choisissez **Save** (Enregistrer).

**Pour configurer ENA Express lorsque vous attachez une interface réseau**

1. Ouvrez la console Amazon EC2 à l’adresse [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dans le panneau de navigation de gauche, choisissez **Network Interfaces** (Interfaces réseau).

1. Sélectionnez une interface réseau qui n’est pas attachée à une instance (l’**état** est **Available** (Disponible). Vous pouvez cliquer sur le lien **Network interface ID** (ID d’interface réseau) pour ouvrir la page détaillée ou cocher la case sur le côté gauche de la liste.

1. Sélectionnez l’**instance** avec laquelle vous souhaitez effectuer l’attachement.

1. Pour utiliser **ENA Express** après avoir connecté l’interface réseau à l’instance, cochez la case **Enable** (Activer).

1. Lorsque ENA Express est activé, vous pouvez configurer les paramètres UDP. Pour utiliser **ENA Express UDP**, cochez la case **Enable** (Activer).

1. Pour attacher l’interface réseau à l’instance et enregistrer vos paramètres ENA Express, choisissez **Attach** (Attacher).

------
#### [ AWS CLI ]

**Pour configurer ENA Express lorsque vous attachez une interface réseau**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/;attach-network-interface.html](https://docs.aws.amazon.com/cli/latest/reference/;attach-network-interface.html), comme illustré dans les exemples suivants.

**Exemple 1 : utiliser ENA Express pour le trafic TCP, mais pas pour le trafic UDP**  
Cet exemple configure `EnaSrdEnabled` comme `true` et permet de définir `EnaSrdUdpEnabled` par défaut comme `false`.

```
aws ec2 attach-network-interface \
    --network-interface-id eni-1234567890abcdef0 \
    --instance-id i-1234567890abcdef0 \
    --device-index 1 \
    --ena-srd-specification 'EnaSrdEnabled=true'
```

**Exemple 2 : Utiliser ENA Express à la fois pour le trafic TCP et le trafic UDP**  
Dans cet exemple, nous configurons `EnaSrdEnabled` et `EnaSrdUdpEnabled` sur `true`.

```
aws ec2 attach-network-interface \
    --network-interface-id eni-1234567890abcdef0 \
    --instance-id i-1234567890abcdef0 \
    --device-index 1 \
    --ena-srd-specification 'EnaSrdEnabled=true,EnaSrdUdpSpecification={EnaSrdUdpEnabled=true}'
```

**Pour mettre à jour les paramètres ENA Express pour l’attachement d’une interface réseau**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/modify-network-interface-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/modify-network-interface-attribute.html), comme illustré dans les exemples suivants.

**Exemple 1 : utiliser ENA Express pour le trafic TCP, mais pas pour le trafic UDP**  
Cet exemple configure `EnaSrdEnabled` sur `true` et permet à `EnaSrdUdpEnabled` de prendre la valeur `false` par défaut s’il n’a jamais été défini auparavant.

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --ena-srd-specification 'EnaSrdEnabled=true'
```

**Exemple 2 : Utiliser ENA Express à la fois pour le trafic TCP et le trafic UDP**  
Dans cet exemple, nous configurons `EnaSrdEnabled` et `EnaSrdUdpEnabled` sur `true`.

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --ena-srd-specification 'EnaSrdEnabled=true,EnaSrdUdpSpecification={EnaSrdUdpEnabled=true}'
```

**Exemple 3 : arrêter d’utiliser ENA Express pour le trafic UDP**  
Cet exemple configure `EnaSrdUdpEnabled` sur `false`.

```
aws ec2 modify-network-interface-attribute \
    --network-interface-id eni-1234567890abcdef0 \
    --ena-srd-specification 'EnaSrdUdpSpecification={EnaSrdUdpEnabled=false}'
```

------
#### [ PowerShell ]

**Pour configurer ENA Express lorsque vous attachez une interface réseau**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2NetworkInterface.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Add-EC2NetworkInterface.html), comme indiqué dans les exemples suivants.

**Exemple 1 : utiliser ENA Express pour le trafic TCP, mais pas pour le trafic UDP**  
Cet exemple configure `EnaSrdEnabled` comme `true` et permet de définir `EnaSrdUdpEnabled` par défaut comme `false`.

```
Add-EC2NetworkInterface `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -InstanceId i-1234567890abcdef0 `
    -DeviceIndex 1 `
    -EnaSrdSpecification_EnaSrdEnabled $true
```

**Exemple 2 : Utiliser ENA Express à la fois pour le trafic TCP et le trafic UDP**  
Dans cet exemple, nous configurons `EnaSrdEnabled` et `EnaSrdUdpEnabled` sur `true`.

```
Add-EC2NetworkInterface `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -InstanceId i-1234567890abcdef0 `
    -DeviceIndex 1 `
    -EnaSrdSpecification_EnaSrdEnabled $true `
    -EnaSrdUdpSpecification_EnaSrdUdpEnabled $true
```

**Pour mettre à jour les paramètres ENA Express pour l’attachement de votre interface réseau**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2NetworkInterfaceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2NetworkInterfaceAttribute.html), comme indiqué dans les exemples suivants.

**Exemple 1 : utiliser ENA Express pour le trafic TCP, mais pas pour le trafic UDP**  
Cet exemple configure `EnaSrdEnabled` sur `true` et permet à `EnaSrdUdpEnabled` de prendre la valeur `false` par défaut s’il n’a jamais été défini auparavant.

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -EnaSrdSpecification_EnaSrdEnabled $true ; 
Get-EC2NetworkInterface -NetworkInterfaceId eni-0123f4567890a1b23 | `
Select-Object `
    NetworkInterfaceId, 
    @{Name = 'EnaSrdEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdEnabled }}, 
    @{Name = 'EnaSrdUdpEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled }} | `
Format-List
```

**Exemple 2 : Utiliser ENA Express à la fois pour le trafic TCP et le trafic UDP**  
Dans cet exemple, nous configurons `EnaSrdEnabled` et `EnaSrdUdpEnabled` sur `true`.

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-1234567890abcdef0 `
    -EnaSrdSpecification_EnaSrdEnabled $true `
    -EnaSrdSpecification_EnaSrdUdpSpecification_EnaSrdUdpEnabled $true ;
Get-EC2NetworkInterface -NetworkInterfaceId eni-1234567890abcdef0 | `
Select-Object `
    NetworkInterfaceId, 
    @{Name = 'EnaSrdEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdEnabled }}, 
    @{Name = 'EnaSrdUdpEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled }} | `
Format-List
```

**Exemple 3 : arrêter d’utiliser ENA Express pour le trafic UDP**  
Cet exemple configure `EnaSrdUdpEnabled` sur `false`.

```
Edit-EC2NetworkInterfaceAttribute `
    -NetworkInterfaceId eni-0123f4567890a1b23 `
    -EnaSrdSpecification_EnaSrdUdpSpecification_EnaSrdUdpEnabled $false ; 
Get-EC2NetworkInterface -NetworkInterfaceId eni-0123f4567890a1b23 | `
Select-Object `
    NetworkInterfaceId, 
    @{Name = 'EnaSrdEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdEnabled }}, 
    @{Name = 'EnaSrdUdpEnabled'; Expression = { $_.Attachment.EnaSrdSpecification.EnaSrdUdpSpecification.EnaSrdUdpEnabled }} | `
Format-List
```

------

## Configurer ENA Express dès le lancement
<a name="ena-express-configure-on-launch"></a>

Vous pouvez utiliser l’une des méthodes suivantes pour configurer ENA Express directement lorsque vous lancez une instance. Les liens indiqués renvoient aux AWS Management Console instructions relatives à ces méthodes.
+ **Assistant de lancement d’instance** : vous pouvez configurer ENA Express au lancement grâce à l’assistant de lancement d’instance. Pour plus d’informations, consultez la rubrique **Configuration avancée du réseau** dans les [Paramètres réseau](ec2-instance-launch-parameters.md#liw-network-settings) de l’assistant de lancement d’instance.
+ **Modèle de lancement** : vous pouvez configurer ENA Express au moment du lancement lorsque vous utilisez un modèle de lancement. Pour plus d’informations, consultez la page [Créer un modèle de lancement Amazon EC2](create-launch-template.md), puis développez la section **Paramètres du réseau** et consultez la section **Configuration avancée du réseau**.

# Mise en réseau améliorée grâce à l’interface Intel 82599 VF
<a name="sriov-networking"></a>

Pour les [instances basées sur Xen](instance-types.md#instance-hypervisor-type), l’interface Intel 82599 Virtual Function (VF) offre des capacités de mise en réseau améliorées. L’interface utilise le pilote Intel `ixgbevf`.

Les onglets suivants indiquent comment vérifier le pilote de l’adaptateur réseau installé pour le système d’exploitation de votre instance.

------
#### [ Linux ]

**Pilote d’interface réseau Linux**  
Utilisez la commande suivante pour vérifier que le module est utilisé sur une interface particulière, en remplaçant le nom de l’interface par celui que vous voulez contrôler. Si vous utilisez une seule interface (par défaut), ce sera `eth0`. Si le système d’exploitation prend en charge les [noms de réseau prévisibles](#predictable-network-names-sriov), il peut s’agir d’un nom tel que `ens5`.

Dans l’exemple suivant, le module `ixgbevf` n’est pas chargé, car le pilote affiché est `vif`.

```
[ec2-user ~]$ ethtool -i eth0
driver: vif
version:
firmware-version:
bus-info: vif-0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no
```

Dans cet exemple, le module `ixgbevf` est chargé. La mise en réseau améliorée est correctement configurée pour cette instance.

```
[ec2-user ~]$ ethtool -i eth0
driver: ixgbevf
version: 4.0.3
firmware-version: N/A
bus-info: 0000:00:03.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
```

------
#### [ Windows ]

**Adaptateur réseau Windows**  
Pour vérifier que le pilote est installé, connectez-vous à votre instance et ouvrez le Gestionnaire de périphériques. Vous devriez voir `Intel(R) 82599 Virtual Function` répertorié sous **Adaptateurs de réseau**.

------

**Topics**
+ [Préparez votre instance à une meilleure mise en réseau](#ixgbevf-requirements)
+ [Tester l’activation de réseaux améliorés](#test-enhanced-networking)
+ [Activer les réseaux améliorés sur une instance](#enable-enhanced-networking)
+ [Résoudre les problèmes de connectivité](#enhanced-networking-troubleshooting)

## Préparez votre instance à une meilleure mise en réseau
<a name="ixgbevf-requirements"></a>

Pour vous préparer à la mise en réseau améliorée à l’aide de l’interface Intel 82599 VF, configurez l’instance comme suit :
+ Vérifiez que le type d’instance est l’un des suivants : C3, C4, D2, I2, M4 (sauf `m4.16xlarge`) et R3.
+ Vérifiez que l’instance a une connectivité Internet.
+ Si l’instance comporte des données importantes que vous souhaitez conserver, vous devez les sauvegarder maintenant en créant une AMI à partir de votre instance. La mise à jour des noyaux et des modules noyau, ainsi que l’activation de l’attribut `sriovNetSupport`, peuvent rendre les instances incompatibles ou les systèmes d’exploitation inaccessibles. Si cela se produit et que vous disposez d’une sauvegarde récente, vos données continueront d’être conservées.
+ **Instances Linux** – Lancez l’instance à partir d’une AMI HVM qui utilise la version 2.6.32 du noyau Linux ou une version ultérieure. La dernière version d'Amazon Linux HVM AMIs dispose des modules requis pour une mise en réseau améliorée et des attributs requis sont définis. Par conséquent, si vous lancez une instance avec prise en charge des réseaux améliorés et basée sur Amazon EBS à l’aide d’une AMI HVM Amazon Linux active, les réseaux améliorés sont déjà activés pour votre instance.
**Avertissement**  
La mise en réseau améliorée n’est prise en charge que pour les instances HVM. L’activation de la mise en réseau améliorée avec une instance de paravirtualisation peut la rendre inaccessible. La définition de cet attribut sans le module ou la version de module approprié peut rendre votre instance inaccessible.
+ **Instances Windows** – Lancez l’instance à partir d’une AMI HVM 64 bits. Vous ne pouvez pas activer la mise en réseau améliorée sur Windows Server 2008. La mise en réseau améliorée est déjà activée pour Windows Server 2012 R2, Windows Server 2016 et versions ultérieures AMIs. Windows Server 2012 R2 inclut le pilote Intel 1.0.15.3, et nous vous recommandons de le mettre à jour à l’aide de l’utilitaire Pnputil.exe afin d’obtenir la version la plus récente.
+ [AWS CloudShell](https://console.aws.amazon.com/cloudshell)Utilisez-le depuis ou installez et configurez le [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)ou [AWS Tools for Windows PowerShell](https://docs.aws.amazon.com/powershell/latest/userguide/)sur n'importe quel ordinateur de votre choix, de préférence sur votre ordinateur de bureau ou portable local. AWS Management Console Pour plus d’informations, consultez la section [Accès à Amazon EC2](concepts.md#access-ec2) du [Guide de l’utilisateur AWS CloudShell](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html). La gestion de la mise en réseau améliorée n’est pas possible à partir de la console Amazon EC2.

## Tester l’activation de réseaux améliorés
<a name="test-enhanced-networking"></a>

Vérifiez que l’attribut `sriovNetSupport` est défini sur l’instance ou sur l’image.

------
#### [ AWS CLI ]

**Pour vérifier l'attribut d'instance (sriovNetSupport)**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-instance-attribute.html) suivante. Si l’attribut est défini, la valeur est `simple`.

```
aws ec2 describe-instance-attribute \
    --instance-id i-1234567890abcdef0 \
    --attribute sriovNetSupport
```

**Pour vérifier l'attribut d'image (sriovNetSupport)**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) suivante. Si l’attribut est défini, la valeur est `simple`.

```
aws ec2 describe-images \
    --image-id ami-0abcdef1234567890 \
    --query "Images[].SriovNetSupport"
```

------
#### [ PowerShell ]

**Pour vérifier l'attribut d'instance (sriovNetSupport)**  
Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Get-EC2InstanceAttribute.html). Si l’attribut est défini, la valeur est `simple`.

```
Get-EC2InstanceAttribute `
    -InstanceId i-1234567890abcdef0 `
    -Attribute sriovNetSupport
```

**Pour vérifier l'attribut d'image (sriovNetSupport)**  
Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/describe-images.html) suivante. Si l’attribut est défini, la valeur est `simple`.

```
(Get-EC2Image -ImageId ami-0abcdef1234567890).SriovNetSupport
```

------

## Activer les réseaux améliorés sur une instance
<a name="enable-enhanced-networking"></a>

La procédure à suivre dépend du système d’exploitation de l’instance.

**Avertissement**  
Il n’existe aucun moyen de désactiver l’attribut de mise en réseau améliorée une fois que vous l’avez activé.

### Amazon Linux
<a name="enable-amazon-linux"></a>

La dernière version d'Amazon Linux HVM AMIs dispose du `ixgbevf` module requis pour une mise en réseau améliorée et du jeu `sriovNetSupport` d'attributs requis. Par conséquent, si vous lancez un type d’instance à l’aide d’une AMI HVM Amazon Linux actuelle, la mise en réseau améliorée est déjà activée pour votre instance. Pour plus d’informations, consultez [Tester l’activation de réseaux améliorés](#test-enhanced-networking).

Si vous avez lancé votre instance avec une version d’Amazon Linux AMI plus ancienne et que la mise en réseau améliorée n’est pas activée sur cette dernière, utilisez le procédure suivante pour l’activer.

**Pour activer la mise en réseau améliorée**

1. <a name="amazon-linux-enhanced-networking-start-step"></a>Connectez-vous à votre instance.

1. Depuis l’instance, exécutez la commande suivante pour mettre à jour votre instance avec le noyau et les modules noyau les plus récents, y compris `ixgbevf` :

   ```
   [ec2-user ~]$ sudo yum update
   ```

1. Depuis votre ordinateur local, redémarrez votre instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/reboot-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/reboot-instances.html) (AWS CLI), [https://docs.aws.amazon.com/powershell/latest/reference/items/Restart-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Restart-EC2Instance.html) (AWS Tools for Windows PowerShell).

1. <a name="amazon-linux-enhanced-networking-stop-step"></a>Connectez-vous à nouveau à votre instance et vérifiez que le module `ixgbevf` est installé et possède la version minimale recommandée à l’aide de la commande **modinfo ixgbevf** depuis [Tester l’activation de réseaux améliorés](#test-enhanced-networking).

1. [Instance basée sur EBS] À partir de votre ordinateur local, arrêtez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) (AWS Tools for Windows PowerShell).

   [Instance basée sur le stockage d’instance] Vous ne pouvez pas arrêter l’instance pour modifier l’attribut. Au lieu de cela, passez à la procédure suivante.

1. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée à l’aide de l’une des commandes suivantes:

------
#### [ AWS CLI ]

   Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) comme suit.

   ```
   aws ec2 modify-instance-attribute \
       --instance-id i-1234567890abcdef0 \
       --sriov-net-support simple
   ```

------
#### [ PowerShell ]

   Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) comme suit.

   ```
   Edit-EC2InstanceAttribute `
       -InstanceId i-1234567890abcdef0 `
       -SriovNetSupport "simple"
   ```

------

1. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans [Créer une AMI basée sur Amazon EBS](creating-an-ami-ebs.md). L’AMI hérite de l’attribut de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

1. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) (AWS Tools for Windows PowerShell).

1. Connectez-vous à votre instance et vérifiez que le module `ixgbevf` est installé et chargé sur votre interface réseau à l’aide de la commande **ethtool -i eth*n*** depuis [Tester l’activation de réseaux améliorés](#test-enhanced-networking).

**Pour activer la mise en réseau améliorée (instances basées sur le stockage d’instance)**  
Suivez la procédure précédente jusqu’à l’étape à laquelle vous avez arrêté l’instance. Créez une nouvelle AMI comme décrit dans [Création d’une AMI basée sur Amazon S3](creating-an-ami-instance-store.md), en veillant à activer l’attribut de mise en réseau améliorée lors de l’enregistrement de l’AMI.

------
#### [ AWS CLI ]

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) comme suit.

```
aws ec2 register-image --sriov-net-support simple ...
```

------
#### [ PowerShell ]

Utiliser [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) comme suit.

```
Register-EC2Image -SriovNetSupport "simple" ...
```

------

### Ubuntu
<a name="enhanced-networking-ubuntu"></a>

Avant de commencer, [vérifiez si la mise en réseau améliorée est déjà activée](#test-enhanced-networking) sur votre instance.

Le Quick Start Ubuntu HVM AMIs inclut les pilotes nécessaires pour améliorer la mise en réseau. Si vous disposez d’une version du fichier `ixgbevf` antérieure à 2.16.4, vous pouvez installer le package noyau `linux-aws` pour obtenir les pilotes de mise en réseau améliorée les plus récents.

La procédure suivante fournit les étapes générales pour la compilation du module `ixgbevf` sur une instance Ubuntu.<a name="ubuntu-enhanced-networking-procedure"></a>

**Pour installer le package du noyau `linux-aws`**

1. <a name="ubuntu-enhanced-networking-start-step"></a>Connectez-vous à votre instance.

1. Mettez à jour le cache du package et les packages.

   ```
   ubuntu:~$ sudo apt-get update && sudo apt-get upgrade -y linux-aws
   ```
**Important**  
Si, lors d’une mise à jour, vous êtes invité à installer `grub`, utilisez `/dev/xvda` pour installer `grub`, puis choisissez de conserver la version actuelle de `/boot/grub/menu.lst`.

### Autres distributions Linux
<a name="enhanced-networking-linux"></a>

Avant de commencer, [vérifiez si la mise en réseau améliorée est déjà activée](#test-enhanced-networking) sur votre instance. La dernière version de Quick Start HVM AMIs inclut les pilotes nécessaires pour améliorer la mise en réseau. Vous n'avez donc pas besoin d'effectuer d'étapes supplémentaires. 

La procédure suivante fournit les étapes générales pour si vous devez activer la mise en réseau améliorée avec l’interface Intel 82599 VF sur une distribution Linux autre qu’Amazon Linux ou Ubuntu. Pour plus d’informations, telles que la syntaxe détaillée des commandes, les emplacements de fichier ou la prise en charge des packages et des outils, consultez la documentation spécifique de votre distribution Linux.

**Pour activer la mise en réseau améliorée sur Linux**

1. <a name="other-linux-enhanced-networking-start-step"></a>Connectez-vous à votre instance.

1. Téléchargez le code source du `ixgbevf` module sur votre instance depuis Sourceforge à l'adresse [https://sourceforge. net/projects/e1000/files/ixgbevf%20stable/](https://sourceforge.net/projects/e1000/files/ixgbevf%20stable/).

   Les versions d’`ixgbevf` antérieures à 2.16.4, notamment la 2.14.2, ne sont pas générées correctement sur certaines distributions Linux, y compris certaines versions d’Ubuntu.

1. Compilez et installez le module `ixgbevf` sur votre instance.
**Avertissement**  
Si vous compilez le module `ixgbevf` pour votre noyau actuel, puis mettez à niveau le noyau sans générer à nouveau le pilote du nouveau noyau, il se peut que votre système retourne au module `ixgbevf` spécifique à la distribution lors du prochain redémarrage. Cela peut rendre votre système inaccessible si la version propre à la distribution n’est pas compatible avec la mise en réseau améliorée.

1. Exécutez la commande **sudo depmod** pour mettre à jour les dépendances du module.

1. <a name="other-linux-enhanced-networking-stop-step"></a>Mettez à jour `initramfs` sur votre instance pour garantir que le nouveau module se charge au démarrage.

1. <a name="predictable-network-names-sriov"></a>Déterminez si par défaut votre système utilise des noms d’interface réseau prévisibles. Les systèmes qui utilisent **systemd** ou **udev** version 197 ou supérieure peuvent renommer les périphériques Ethernet et ne garantissent pas qu’une seule interface réseau sera nommée `eth0`. Ce comportement peut entraîner des problèmes de connexion à votre instance. Pour plus d’informations et pour voir les autres options de configuration, consultez la section sur les [noms d’interface réseau prévisibles](https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/) sur le site web de freedesktop.org.

   1. Vous pouvez vérifier les versions **systemd** ou **udev** sur les systèmes RPM en utilisant la commande suivante :

      ```
      [ec2-user ~]$ rpm -qa | grep -e '^systemd-[0-9]\+\|^udev-[0-9]\+'
      				systemd-208-11.el7_0.2.x86_64
      ```

      Dans l’exemple Red Hat Enterprise Linux 7 ci-dessus, la version **systemd** est 208, de sorte que les noms d’interface réseau prévisibles doivent être désactivés.

   1. Désactivez les noms d’interface réseau prévisibles en ajoutant l’option `net.ifnames=0` à la ligne `GRUB_CMDLINE_LINUX` dans `/etc/default/grub`.

      ```
      [ec2-user ~]$ sudo sed -i '/^GRUB\_CMDLINE\_LINUX/s/\"$/\ net\.ifnames\=0\"/' /etc/default/grub
      ```

   1. Générez à nouveau le fichier de configuration grub.

      ```
      [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
      ```

1. [Instance basée sur EBS] À partir de votre ordinateur local, arrêtez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [stop-instances](https://docs.aws.amazon.com/cli/latest/reference/ec2/stop-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Stop-EC2Instance.html) (AWS Tools for Windows PowerShell).

   [Instance basée sur le stockage d’instance] Vous ne pouvez pas arrêter l’instance pour modifier l’attribut. Au lieu de cela, passez à la procédure suivante.

1. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée à l’aide de l’une des commandes suivantes:

------
#### [ AWS CLI ]

   Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) comme suit.

   ```
   aws ec2 modify-instance-attribute \
       --instance-id i-1234567890abcdef0 -\
       -sriov-net-support simple
   ```

------
#### [ PowerShell ]

   Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) comme suit.

   ```
   Edit-EC2InstanceAttribute `
       -InstanceId i-1234567890abcdef0 `
       -SriovNetSupport "simple"
   ```

------

1. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans [Créer une AMI basée sur Amazon EBS](creating-an-ami-ebs.md). L’AMI hérite de l’attribut de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

   Si le système d’exploitation de votre instance contient un fichier `/etc/udev/rules.d/70-persistent-net.rules`, vous devez le supprimer avant de créer l’AMI. Ce fichier contient l’adresse MAC de la carte Ethernet de l’instance d’origine. Si une autre instance démarre avec ce fichier, le système d’exploitation ne pourra pas trouver le périphérique et il se peut qu’`eth0` échoue, entraînant des problèmes de démarrage. Le fichier est à nouveau généré au cycle de démarrage suivant et les instances lancées depuis l’AMI créent leur propre version du fichier.

1. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) (AWS Tools for Windows PowerShell).

1. (Facultatif) Connectez-vous à votre instance et vérifiez que le module est installé.

**Pour activer les réseaux améliorés (instances basées sur le stockage d’instance)**  
Suivez la procédure précédente jusqu’à l’étape à laquelle vous avez arrêté l’instance. Créez une nouvelle AMI comme décrit dans [Création d’une AMI basée sur Amazon S3](creating-an-ami-instance-store.md), en veillant à activer l’attribut de mise en réseau améliorée lors de l’enregistrement de l’AMI.

------
#### [ AWS CLI ]

Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/register-image.html) comme suit.

```
aws ec2 register-image --sriov-net-support simple ...
```

------
#### [ PowerShell ]

Utiliser [https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Register-EC2Image.html) comme suit.

```
Register-EC2Image -SriovNetSupport "simple" ...
```

------

### Windows
<a name="enable-windows"></a>

Si vous avez lancé votre instance et qu’elle n’a pas la mise en réseau déjà activée, vous devez télécharger et installer le pilote de la carte réseau requis sur votre instance, puis définir l’attribut d’instance `sriovNetSupport` pour activer la mise en réseau améliorée. Vous ne pouvez activer cet attribut que sur les types d’instance pris en charge. Pour de plus amples informations, veuillez consulter [Mise en réseau améliorée sur les EC2 instances Amazon](enhanced-networking.md).

**Important**  
Pour consulter les dernières mises à jour des pilotes sous Windows AMIs, consultez l'[historique des versions de l'AMI Windows](https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/ec2-windows-ami-version-history.html) dans le manuel *AWS Windows AMI Reference*.

**Pour activer la mise en réseau améliorée**

1. <a name="amazon-linux-enhanced-networking-start-step"></a>Connectez-vous à votre instance en tant qu’administrateur local.

1. [Windows Server 2016 et versions ultérieures] Exécutez le PowerShell script de lancement EC2 suivant pour configurer l'instance une fois le pilote installé.

   ```
   PS C:\> C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 -Schedule
   ```
**Important**  
Le mot de passe de l’administrateur sera réinitialisé lorsque vous activerez le script d’initialisation de l’instance EC2 Launch. Vous pouvez modifier le fichier de configuration pour désactiver la réinitialisation du mot de passe administrateur en le spécifiant dans les paramètres des tâches d’initialisation.

1. À partir de l’instance, téléchargez le pilote de la carte réseau Intel adapté à votre système d’exploitation :
   + **Windows Server 2022**

     Visitez la [page de téléchargement](https://www.intel.com/content/www/us/en/download/706171/intel-network-adapter-driver-for-windows-server-2022.html) et téléchargez `Wired_driver_version_x64.zip`.
   + **Windows Server 2019** notamment pour Server version 1809 ou ultérieure\$1

     Visitez la [page de téléchargement](https://www.intel.com/content/www/us/en/download/19372/intel-network-adapter-driver-for-windows-server-2019.html) et téléchargez `Wired_driver_version_x64.zip`.
   + **Windows Server 2016** notamment pour Server version 1803 ou antérieure\$1

     Visitez la [page de téléchargement](https://www.intel.com/content/www/us/en/download/18737/intel-network-adapter-driver-for-windows-server-2016.html) et téléchargez `Wired_driver_version_x64.zip`.
   + **Windows Server 2012 R2**

     Visitez la [page de téléchargement](https://www.intel.com/content/www/us/en/download/17480/intel-network-adapter-driver-for-windows-server-2012-r2.html) et téléchargez `Wired_driver_version_x64.zip`.
   + **Windows Server 2012**

     Visitez la [page de téléchargement](https://www.intel.com/content/www/us/en/download/16789/intel-network-adapter-driver-for-windows-server-2012.html) et téléchargez `Wired_driver_version_x64.zip`.
   + **Windows Server 2008 R2**

     Visitez la [page de téléchargement](https://www.intel.com/content/www/us/en/download/15590/intel-network-adapter-driver-for-windows-7-final-release.html) et téléchargez `PROWinx64Legacy.exe`.

   \$1Les versions 1803 et antérieures de Server, ainsi que les versions 1809 et ultérieures, ne sont pas spécifiquement traitées dans les pages relatives aux pilotes et logiciels Intel.

1. Installez le pilote de la carte réseau Intel adapté à votre système d’exploitation :
   + **Windows Server 2008 R2**

     1. Dans le dossier **Téléchargements**, localisez le fichier `PROWinx64Legacy.exe` et renommez-le `PROWinx64Legacy.zip`.

     1. Extrayez le contenu du fichier `PROWinx64Legacy.zip`.

     1. Ouvrez la ligne de commande, accédez au dossier extrait et exécutez la commande suivante pour utiliser l’utilitaire `pnputil` afin d’ajouter et d’installer le fichier INF dans le magasin de pilotes.

        ```
        C:\> pnputil -a PROXGB\Winx64\NDIS62\vxn62x64.inf
        ```
   + **Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 et Windows Server 2012**

     1. Dans le dossier **Téléchargements**, extrayez le contenu du fichier `Wired_driver_version_x64.zip`.

     1. Ouvrez la ligne de commande, accédez au dossier extrait et exécutez l’une des commandes suivantes pour utiliser l’utilitaire `pnputil` pour ajouter et installer le fichier INF dans le magasin de pilotes.
        + Windows Server 2022

          ```
          pnputil -i -a PROXGB\Winx64\NDIS68\vxn68x64.inf
          ```
        + Windows Server 2019

          ```
          pnputil -i -a PROXGB\Winx64\NDIS68\vxn68x64.inf
          ```
        + Windows Server 2016

          ```
          pnputil -i -a PROXGB\Winx64\NDIS65\vxn65x64.inf
          ```
        + Windows Server 2012 R2

          ```
          pnputil -i -a PROXGB\Winx64\NDIS64\vxn64x64.inf
          ```
        + Windows Server 2012

          ```
          pnputil -i -a PROXGB\Winx64\NDIS63\vxn63x64.inf
          ```

1. Depuis votre ordinateur local, activez l’attribut de mise en réseau améliorée à l’aide de l’une des commandes suivantes:

------
#### [ AWS CLI ]

   Utilisez la commande [https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/modify-instance-attribute.html) comme suit.

   ```
   aws ec2 modify-instance-attribute \
       --instance-id i-1234567890abcdef0 \
       --sriov-net-support simple
   ```

------
#### [ PowerShell ]

   Utilisez l’applet de commande [https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Edit-EC2InstanceAttribute.html) comme suit.

   ```
   Edit-EC2InstanceAttribute `
       -InstanceId i-1234567890abcdef0 `
       -SriovNetSupport "simple"
   ```

------

1. (Facultatif) Créez une AMI à partir de l’instance, comme décrit dans [Créer une AMI basée sur Amazon EBS](creating-an-ami-ebs.md). L’AMI hérite de l’attribut de mise en réseau améliorée de l’instance. Par conséquent, vous pouvez utiliser cet AMI pour lancer une autre instance avec la mise en réseau améliorée activée par défaut.

1. Depuis votre ordinateur local, démarrez l’instance à l’aide de la console Amazon EC2 ou de l’une des commandes suivantes : [https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html](https://docs.aws.amazon.com/cli/latest/reference/ec2/start-instances.html) (AWS CLI) ou [https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Start-EC2Instance.html) (AWS Tools for Windows PowerShell).

## Résoudre les problèmes de connectivité
<a name="enhanced-networking-troubleshooting"></a>

Si vous perdez la connexion tout en activant la mise en réseau améliorée, il se peut que le module `ixgbevf` ne soit pas compatible avec le noyau. Essayez d’installer la version du module `ixgbevf` fournie avec la distribution de Linux pour votre instance.

Si vous activez la mise en réseau améliorée pour une instance de paravirtualisation ou une AMI, votre instance peut devenir inaccessible.

Pour plus d’informations, consultez la section [Comment activer et configurer la mise en réseau améliorée sur mes instances EC2 ?](https://repost.aws/knowledge-center/enable-configure-enhanced-networking)

# Surveillez les performances du réseau pour les paramètres ENA sur votre instance EC2
<a name="monitoring-network-performance-ena"></a>

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 I/O crédit réseau pour allouer 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 Direct Connect et vers Internet. Pour de plus amples informations, veuillez consulter [Bande passante réseau des EC2 instances Amazon](ec2-instance-network-bandwidth.md).
+ **Packet-per-second Performances (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 de plus amples informations, consultez [Suivi de la connexion du groupe de sécurité Amazon EC2](security-group-connection-tracking.md).
+ **Accès à un service lien-local** : Amazon EC2 fournit un maximum de PPS par interface réseau pour le trafic vers des services de proxy locaux tels que le service Amazon DNS, le service des métadonnées d’instance et le service de synchronisation temporelle d’Amazon.

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.

**Topics**
+ [Exigences](#network-performance-metrics-requirements)
+ [Métriques du pilote ENA](#network-performance-metrics)
+ [Afficher les métriques de performances réseau de votre instance](#view-network-performance-metrics)
+ [Métriques pour ENA Express](#network-performance-metrics-ena-express)
+ [Métriques de performances réseau avec le pilote DPDK pour ENA](#network-performance-metrics-dpdk)
+ [Métriques sur les instances en cours d'exécution FreeBSD](#network-performance-metrics-freebsd)

## Exigences
<a name="network-performance-metrics-requirements"></a>

**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](enhanced-networking-ena.md).
+ 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-network-performance.html) dans le *guide de CloudWatch l'utilisateur Amazon*.
+ Pour prendre en charge la métrique `conntrack_allowance_available`, installez la version 2.8.1 ou ultérieure du pilote ENA.
+ Pour contourner la limite PPS de 1 024 pour les fragments de sortie, installez le pilote ENA version 2.13.3 ou ultérieure.

**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`.

  1. Développez **Network Adapters (Cartes réseau)**.

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

  1. 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](enhanced-networking-ena.md).
+ 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-network-performance.html) dans le *guide de CloudWatch l'utilisateur Amazon*.

## Métriques du pilote ENA
<a name="network-performance-metrics"></a>

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\$1in\$1allowance\$1exceeded |  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\$1out\$1allowance\$1exceeded |  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\$1allowance\$1exceeded |  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\$1allowance\$1available | Nombre de connexions suivies pouvant être établies par l’instance avant d’atteindre l’allocation Connexions suivies de ce type d’instance. | [Instances basées sur Nitro](instance-types.md#instance-hypervisor-type) uniquement  | 
| linklocal\$1allowance\$1exceeded |  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 de métadonnées d’instance et le service de synchronisation temporelle d’Amazon, mais n’affecte pas le trafic vers les résolveurs DNS personnalisés.  | Tous les types d’instances | 
| pps\$1allowance\$1exceeded |  Le nombre de paquets mis en file d’attente ou abandonnés parce que le PPS bidirectionnel a dépassé le maximum pour l’instance. \$1  | Tous les types d’instances | 

\$1 En fonction du paramètre du mode proxy de fragments pour le pilote ENA Linux v2.13.3 ou ultérieur, cette limite peut également inclure des pertes de fragments de sortie supérieures à 1 024 PPS pour l’interface réseau. Si le mode proxy de fragments est activé pour le pilote Linux, les pertes de fragments de sortie contournent la limite de 1 024 PPS qui s’applique habituellement et sont comptabilisées dans les limites des autorisations PPS standard. Le mode proxy de fragments est désactivé par défaut.

## Afficher les métriques de performances réseau de votre instance
<a name="view-network-performance-metrics"></a>

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

### Instances Linux
<a name="view-network-performance-metrics-linux"></a>

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

### instances Windows
<a name="view-network-performance-metrics-windows"></a>

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 conformément au 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
   ```

1. Copiez `EnaPerfCounters.man`, le fichier manifeste, du package d’installation du pilote vers `%SystemRoot%\System32\drivers`.

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

1. Appuyez sur Ctrl\$1N pour ajouter de nouveaux compteurs.

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

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

1. Choisissez **OK**.

## Métriques pour ENA Express
<a name="network-performance-metrics-ena-express"></a>

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. Si vous avez activé ENA Express pour les attachements de l’interface réseau à la fois 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 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.

Pour afficher une liste de métriques pour votre instance Linux filtrée pour ENA Express, exécutez la commande suivante **ethtool** pour votre interface réseau (représentée ici par `eth0`). Prenez note de la valeur de la `ena_srd_mode` métrique.

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

Les métriques suivantes sont disponibles pour toutes les instances dont l'ENA Express est activé.

**ena\$1srd\$1mode**  
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\$1srd\$1eligible\$1tx\$1pkts**  
Le nombre de réseau est le suivant :  
+ 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](ena-express.md#ena-express-supported-instance-types) 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 fonctionner 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.
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\$1srd\$1tx\$1pkts**  
Le nombre de paquets SRD transmis au cours d’une période donnée.

**ena\$1srd\$1rx\$1pkts**  
Le nombre de paquets SRD reçus au cours d’une période donnée.

**ena\$1srd\$1resource\$1utilisation**  
Le pourcentage de l’utilisation maximale de la mémoire autorisée pour les connexions SRD simultanées que l’instance a consommées.

Pour vérifier si la transmission de paquets utilise le SRD, vous pouvez comparer le nombre de paquets éligibles (métrique `ena_srd_eligible_tx_pkts`) par rapport au nombre de paquets SRD transmis (métrique `ena_srd_tx_pkts`) au cours d’une période donnée.

**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 se retrouver dans cette lacune lors de migrations en direct ou de mises à jour de serveur en direct par gouttelettes. 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
<a name="network-performance-metrics-dpdk"></a>

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.

Le pilote DPDK v25.03 ou ultérieur prend en charge le mode proxy de fragments. Si le mode proxy de fragments est activé pour le pilote DPDK, les pertes de fragments de sortie contournent la limite de 1 024 PPS qui s’applique habituellement et sont comptabilisées dans les limites des autorisations PPS standard. Le mode proxy de fragments est désactivé par défaut.

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](https://doc.dpdk.org/guides/testpmd_app_ug/) de la documentation DPDK.

## Métriques sur les instances en cours d'exécution FreeBSD
<a name="network-performance-metrics-freebsd"></a>

À 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 de FreeBSD métriques, entrez la commande suivante et définissez *interval* une valeur comprise entre 1 et 3 600. Cette valeur indique la fréquence, en secondes, à laquelle les FreeBSD métriques doivent être 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 1 fois toutes les 10 secondes :

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

Pour désactiver la collecte de FreeBSD métriques, vous pouvez exécuter la commande précédente et spécifier `0` comme*interval*.

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

```
sysctl dev.ena.network_interface.eni_metrics
```

# Améliorez la latence du réseau pour les EC2 instances basées sur Linux
<a name="ena-improve-network-latency-linux"></a>

La latence réseau est le temps nécessaire à un paquet de données pour voyager de sa source à sa destination. Les applications qui envoient des données via le réseau ont besoin de réponses rapides pour offrir une expérience utilisateur positive. Une latence réseau élevée peut entraîner divers problèmes, tels que les suivants :
+ Temps de chargement lents des pages Web
+ Retard des flux vidéo
+ Difficulté d’accès aux ressources en ligne

Cette section décrit les mesures que vous pouvez prendre pour améliorer la latence du réseau sur les EC2 instances Amazon qui s'exécutent sous Linux. Afin d’obtenir une latence optimale, procédez comme suit pour configurer les paramètres de votre instance, de votre noyau et de votre pilote ENA. Pour obtenir des conseils de configuration supplémentaires, consultez le [guide des meilleures pratiques et d'optimisation des performances du pilote Linux ENA](https://github.com/amzn/amzn-drivers/blob/master/kernel/linux/ena/ENA_Linux_Best_Practices.rst) surGitHub.

**Note**  
Les étapes et les paramètres peuvent varier légèrement en fonction de votre matériel réseau spécifique, de l’AMI à partir de laquelle vous avez lancé votre instance et du cas d’utilisation de votre application. Avant d’apporter des modifications, testez et surveillez minutieusement les performances de votre réseau pour vous assurer d’obtenir les résultats souhaités.

## Réduisez le nombre de sauts de réseau à réseau pour les paquets de données
<a name="ena-latency-reduce-hops"></a>

Chaque saut effectué par un paquet de données lorsqu’il passe d’un routeur à l’autre augmente la latence du réseau. En général, le trafic doit effectuer plusieurs sauts pour atteindre votre destination. Il existe deux méthodes pour réduire les sauts de réseau pour vos EC2 instances Amazon, comme suit :
+ **Groupe de placement de clusters** : lorsque vous spécifiez un [groupe de placement de clusters](placement-strategies.md#placement-groups-cluster), Amazon EC2 lance des instances situées à proximité les unes des autres, physiquement au sein de la même zone de disponibilité (AZ) avec un emballage plus serré. La proximité physique des instances du groupe leur permet de profiter d’une connectivité à haut débit, ce qui se traduit par une faible latence et un débit de flux unique élevé.
+ **Hôte dédié** : un [hôte dédié](dedicated-hosts-overview.md) est un serveur physique qui vous est dédié. Avec un hôte dédié, vous pouvez lancer vos instances pour qu’elles s’exécutent sur le même serveur physique. La communication entre les instances qui s’exécutent sur le même hôte dédié peut se faire sans sauts réseau supplémentaires.

## Comment la configuration du noyau Linux affecte la latence
<a name="ena-latency-kernel-config"></a>

La configuration du noyau Linux peut augmenter ou diminuer la latence du réseau. Pour atteindre vos objectifs d’optimisation de la latence, il est important d’affiner la configuration du noyau Linux en fonction des exigences spécifiques de votre charge de travail.

Il existe de nombreuses options de configuration du noyau Linux qui peuvent contribuer à réduire la latence du réseau. Les options les plus efficaces sont les suivantes.
+ **Activer le mode d’interrogation occupé :** le mode d’interrogation occupé réduit la latence sur le chemin de réception du réseau. Lorsque vous activez le mode d’interrogation occupé, le code de la couche de socket peut interroger directement la file d’attente de réception d’un périphérique réseau. L’inconvénient de l’interrogation intensive est l’utilisation accrue du CPU de l’hôte en raison de l’interrogation en boucle serrée des nouvelles données. Il existe deux paramètres globaux qui contrôlent le nombre de microsecondes d’attente des paquets pour toutes les interfaces.

     
`busy_read`  
Un délai d’interrogation intensive de faible latence pour les lectures de sockets. Cela contrôle le nombre de microsecondes à attendre pour que la couche de socket lise les paquets dans la file d’attente du périphérique. Pour activer la fonction globalement avec la commande **sysctl**, l’organisation Linux Kernel recommande une valeur de 50 microsecondes. Pour plus d’informations, consultez [busy\$1read](https://www.kernel.org/doc/html/v5.19/admin-guide/sysctl/net.html?highlight=busy_read) dans le *guide de l’utilisateur et de l’administrateur du noyau Linux*.  

  ```
  [ec2-user ~]$ sudo sysctl -w net.core.busy_read=50
  ```  
`busy_poll`  
Un délai d’interrogation intensive de faible latence pour poll et select. Cela contrôle le nombre de microsecondes à attendre pour que les événements se produisent. La valeur recommandée se situe entre 50 et 100 microsecondes, en fonction du nombre de sockets que vous interrogez. Plus vous ajoutez de sockets, plus la valeur doit être élevée.  

  ```
  [ec2-user ~]$ sudo sysctl -w net.core.busy_poll=50
  ```
+ **Configurer les états d’alimentation « C-states » du processeur** : les états « C-states » contrôlent les niveaux de veille dans lesquels un cœur peut entrer lorsqu’il est inutilisé. Il se peut que vous vouliez contrôler les états « C-state » pour ajuster la latence de votre système par rapport aux performances. Dans les états C profonds, le CPU est essentiellement « en veille » et ne peut pas répondre aux demandes jusqu’à ce qu’il se réveille et repasse a l’état actif. La mise en veille de cœurs prend du temps. Même si un cœur en veille donne plus de marge pour qu’un autre cœur fonctionne à une fréquence plus élevée, ce cœur en veille prend du temps pour se remettre en route et fonctionner.

  Par exemple, si un cœur qui est assigné à la gestion des interruptions de paquets est en veille, il se peut que la prise en charge de cette interruption soit retardée. Vous pouvez configurer le système de manière à ce qu’il n’utilise pas d’états C profonds. Cependant, si cette configuration réduit la latence de réaction du processeur, elle réduit également la marge de manœuvre dont disposent les autres cœurs pour Turbo Boost.

  Pour réduire la latence de réaction du processeur, vous pouvez limiter les états C-states plus approfondis. Pour plus d’informations, consultez la section [Performances élevées et faible latence en limitant les « états C » profonds](https://docs.aws.amazon.com/linux/al2/ug/processor_state_control.html#c-states) dans le *Guide de l’utilisateur Amazon Linux 2*.

## Modération des interruptions
<a name="ena-latency-interrupt-moderation"></a>

Le pilote réseau ENA permet la communication entre une instance et un réseau. Le pilote traite les paquets réseau et les transmet à la pile réseau ou à la carte Nitro. Lorsqu’un paquet réseau arrive, la carte Nitro génère une interruption pour le CPU afin d’informer le logiciel d’un événement.

Interruption  
Une interruption est un signal qu’un périphérique ou une application envoie au processeur. L’interruption indique au processeur qu’un événement s’est produit ou qu’une condition qui a été remplie nécessite une attention immédiate. Les interruptions peuvent gérer des tâches sensibles au temps, telles que la réception de données d’une interface réseau, la gestion d’événements matériels ou le traitement de demandes émanant d’autres périphériques.

Modération des interruptions  
La modération des interruptions est une technique qui réduit le nombre d’interruptions générées par un périphérique en les regroupant ou en les retardant. L’objectif de la modération d’interruptions est d’améliorer les performances du système en réduisant la surcharge associée à la gestion d’un grand nombre d’interruptions. Un trop grand nombre d’interruptions augmente l’utilisation du CPU, ce qui a un impact négatif sur le débit, tandis qu’un nombre insuffisant d’interruptions augmente la latence.

Modération dynamique des interruptions  
La modération dynamique des interruptions est une forme améliorée de modération des interruptions qui ajuste dynamiquement le taux d’interruption en fonction de la charge actuelle du système et des modèles de trafic. Elle vise à trouver un équilibre entre la réduction du nombre d’interruptions et le nombre de paquets par seconde, ou bande passante.  
La modération dynamique des interruptions est activée par défaut dans certains AMIs cas (mais elle peut être activée ou désactivée dans tous AMIs).

Pour minimiser la latence réseau, il peut être nécessaire de désactiver la modération des interruptions Toutefois, cela peut également augmenter la charge de traitement des interruptions. Il est important de trouver le juste équilibre entre la réduction de la latence et la réduction de la charge. Les commandes `ethtool` peuvent vous aider à configurer la modération des interruptions. Par défaut, `rx-usecs` a la valeur de `20`, et `tx-usecs` a la valeur `64`.

Pour obtenir la configuration actuelle de modification des interruptions, utilisez la commande suivante.

```
[ec2-user ~]$ ethtool -c interface | egrep "rx-usecs:|tx-usecs:|Adaptive RX"
Adaptive RX: on  TX: off
rx-usecs: 20
tx-usecs: 64
```

Pour désactiver la modification des interruptions et la modération dynamique des interruptions, utilisez la commande suivante.

```
[ec2-user ~]$ sudo ethtool -C interface adaptive-rx off rx-usecs 0 tx-usecs 0
```

# Considérations relatives au système Nitro en vue de l’optimisation des performances
<a name="ena-nitro-perf"></a>

Le système Nitro est un ensemble de composants matériels et logiciels conçus pour AWS offrir des performances, une disponibilité et une sécurité élevées. 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](https://aws.amazon.com/ec2/nitro/).

Tous les types d’instances EC2 de la génération actuelle effectuent le traitement des paquets réseau sur les cartes Nitro EC2. 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 entrées et sorties (I/O) interfaces, such as those needed for Virtual Private Clouds (VPCs). For all of the components that send or receive information over the network, the Nitro cards act as a self-contained computing device for I/Otrafic) physiquement séparées de la carte mère du système sur laquelle s'exécutent les charges de travail des clients.

## Flux de paquets sur les cartes Nitro
<a name="ena-nitro-perf-network-flow"></a>

Les instances EC2 créées sur le système Nitro ont des capacités d’accélération matérielle qui permettent de traiter plus rapidement les paquets, tel que mesuré par les taux de 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](#ena-nitro-perf-exceptions).

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
<a name="ena-nitro-perf-overall-design"></a>

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
<a name="ena-nitro-perf-considerations"></a>

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
<a name="ena-nitro-perf-infra-considerations"></a>

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 de la connexion du groupe de sécurité Amazon EC2](security-group-connection-tracking.md).

**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](https://github.com/amzn/amzn-drivers/tree/master/kernel/linux/ena#driver-compilation) 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 [Installer le pilote ENA sur les instances Windows EC2](ena-adapter-driver-install-upgrade-win.md).

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

**Limite de file d’octets (BQL)**  
BQL est une fonctionnalité qui limite le nombre d’octets transmis à la carte Nitro afin de réduire les files d’attente. BQL est désactivé par défaut dans les pilotes ENA, les systèmes d’exploitation Amazon Linux et la plupart des distributions Linux. Si BQL et le remplacement du proxy de fragments sont tous deux activés, cela peut entraîner des limitations de performances en limitant le nombre d’octets transmis à Nitro avant que tous les fragments ne soient traités.

#### Considérations relatives à la conception de l’application
<a name="ena-nitro-perf-app-design"></a>

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. Amazon EC2 prend en charge les trames géantes de 9 001 octets, mais ce n’est pas le cas de tous les services. 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 normalement au débit standard (et non accélérés). Cela peut entraîner des variations dans vos performances. Cependant, vous pouvez remplacer le comportement standard des paquets fragmentés sortants par le paramètre du mode proxy fragmenté. Pour de plus amples informations, veuillez consulter [Optimisez les performances du réseau sur votre système Nitro](#ena-nitro-perf-maximize). 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.

**Files d’attente de l’adaptateur réseau élastique (ENA)**  
L’ENA (Elastic Network Adapter) utilise plusieurs files d’attente (files ENA) de réception (Rx) et de transmission (Tx) pour améliorer les performances et la capacité de mise à l’échelle du réseau sur les instances EC2. Ces files d’attente gèrent efficacement le trafic réseau en équilibrant la charge des données envoyées et reçues entre les files d’attente disponibles.  
Pour de plus amples informations, veuillez consulter [Files d’attente ENA](ena-queues.md).

**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.  
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](security-group-connection-tracking.md#untracked-connections), 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
<a name="ena-nitro-perf-exceptions"></a>

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. Cependant, vous pouvez contourner les limites relatives aux fragments de sortie grâce au mode proxy de fragments, en fonction de la version de votre pilote. Pour plus d’informations, consultez les mesures que vous pouvez prendre dans la section [Optimisez les performances du réseau sur votre système Nitro](#ena-nitro-perf-maximize).

**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](security-group-connection-tracking.md#connection-tracking-timeouts).

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

**Flux L2 asymétriques**  
Les plateformes NitroV3 et antérieures n'utilisent pas l'accélération matérielle pour le trafic entre deux ENIs dans le même sous-réseau où un ENI utilise le routeur de passerelle par défaut et l'autre non. Les plateformes NitroV4 et ultérieures utilisent l’accélération matérielle dans ce scénario. Pour de meilleures performances sur NitroV3 ou des plateformes antérieures, assurez-vous que le routeur de passerelle par défaut utilisé correspond aux deux ENIs ou que ceux-ci se ENIs trouvent dans des sous-réseaux différents.

## Optimisez les performances du réseau sur votre système Nitro
<a name="ena-nitro-perf-maximize"></a>

Vous pouvez optimiser les performances de votre réseau sur le système Nitro en ajustant les paramètres réseau.

**Topics**
+ [Considérations](#considerations)
+ [Optimisation des performances PPS](#tuning)
+ [Configurer l’allocation des files d’attente ENA](#max-perf-ena-queues)
+ [Surveiller la performance des instances Linux](#monitoring)

### Considérations
<a name="considerations"></a>

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](#ena-nitro-perf-considerations).

   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](https://github.com/amzn/amzn-drivers/blob/master/kernel/linux/ena/ENA_Linux_Best_Practices.rst) sur GitHub.

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

### Optimisation des performances PPS
<a name="tuning"></a>

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](security-group-connection-tracking.md#untracked-connections).
+ Utilisez le protocole UDP pour le trafic réseau.
+ Pour les instances EC2 ayant une bande passante agrégée de 100 Gbit/s ou plus, distribuez la charge de travail sur 100 flux individuels ou plus afin de répartir la charge de travail de manière égale sur la carte Nitro.
+ Pour dépasser la limite PPS des fragments de sortie sur les instances EC2, vous pouvez activer le mode proxy de fragments (en fonction de la version de votre pilote). Ce paramètre permet d’évaluer les paquets fragmentés dans le chemin de traitement, dépassant ainsi la limite PPS de sortie de 1 024. Lorsque vous chargez le pilote, exécutez l’une des commandes suivantes pour activer ou désactiver le mode proxy de fragments :

  **Activer le mode proxy de fragments**

  ```
  sudo insmod ena.ko enable_frag_bypass=1
  ```

  **Désactiver le mode proxy de fragments**

  ```
  sudo insmod ena.ko enable_frag_bypass=0
  ```

### Configurer l’allocation des files d’attente ENA
<a name="max-perf-ena-queues"></a>

Sur les types d'instances pris en charge, vous pouvez répartir ces files d'attente de manière dynamique entre les interfaces réseau Elastic (ENIs). L’allocation flexible des files d’attente ENA optimise la distribution des ressources, permettant ainsi une utilisation maximale du vCPU. Les charges de travail à hautes performances réseau nécessitent généralement plusieurs files d’attente ENA. Pour de plus amples informations, veuillez consulter [Files d’attente ENA](ena-queues.md).

### Surveiller la performance des instances Linux
<a name="monitoring"></a>

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 sur votre instance EC2](monitoring-network-performance-ena.md).

# Optimisation des performances réseau sur les instances EC2 Windows
<a name="enhanced-networking-os"></a>

Il se peut que vous ayez besoin de modifier la configuration par défaut du système d’exploitation pour obtenir des performances réseau optimales sur vos instances Windows dont la mise en réseau est améliorée. Nous recommandons les modifications de configuration suivantes pour les applications nécessitant des performances réseau élevées. D'autres optimisations (telles que l'activation du déchargement par checksum et l'activation du flux RSS, par exemple) sont déjà configurées sur Windows officiel. AMIs

**Note**  
Le transfert de la charge TCP Chimney doit être désactivé dans la plupart des cas d’utilisation ; il est obsolète depuis Windows Server 2016.

Outre ces optimisations de système d’exploitation, vous devez également tenir compte de l’unité de transmission maximale (MTU) de votre trafic réseau et l’ajuster en fonction de votre charge de travail et de l’architecture réseau. Pour de plus amples informations, veuillez consulter [Unité de transmission maximale (MTU) du réseau pour votre instance EC2](network_mtu.md).

AWS mesure régulièrement les latences aller-retour moyennes entre les instances lancées dans un groupe de placement en cluster de 50 µs et les latences finales de 200 µs au 99,9 centile. Si vos applications nécessitent des temps de latence constamment faibles, nous vous recommandons d’utiliser la dernière version des pilotes ENA sur des instances à performances fixes et conçues sur le système Nitro.

## Configurer l’affinité du processeur de mise à l’échelle côté réception
<a name="windows-rss-cpu-affinity"></a>

La distribution de la charge de l’UC du trafic réseau sur plusieurs processeurs est exécutée à l’aide de la technologie RSS (Receive side scaling) Par défaut, les fenêtres Amazon officielles AMIs sont configurées avec RSS activé. Les interfaces réseau élastiques ENA fournissent jusqu’à huit files d’attente RSS. En paramétrant l’affinité de l’UC pour les files d’attente RSS, ainsi que d’autres processus, il est possible de répartir la charge de l’UC sur des systèmes multicœurs, permettant ainsi le traitement d’un trafic réseau plus important. Pour les types d'instance de plus de 16 VCPUs, nous vous recommandons d'utiliser l'`Set-NetAdapterRSS` PowerShell applet de commande, qui exclut manuellement le processeur de démarrage (processeurs logiques 0 et 1 lorsque l'hyperthreading est activé) de la configuration RSS pour toutes les interfaces réseau élastiques, afin d'éviter tout conflit avec les différents composants du système.

Windows est compatible avec la technologie « hyper-thread » et veille à ce que les files d’attente RSS d’une même carte d’interface réseau (NIC) soient toujours placées sur des cœurs physiques différents. Par conséquent, à moins que l'hyperthreading ne soit désactivé, afin d'éviter tout conflit avec d'autres NICs, répartissez la configuration RSS de chaque carte réseau sur une gamme de 16 processeurs logiques. L'`Set-NetAdapterRss`applet de commande vous permet de définir la plage par carte réseau des processeurs logiques valides en définissant les valeurs de BaseProcessorGroup,, BaseProcessorNumber MaxProcessingGroup MaxProcessorNumber, et NumaNode (facultatif). S’il n’y a pas assez de cœurs physiques pour éliminer complètement les conflits entre les cartes réseau, minimisez le chevauchement des plages ou réduisez le nombre de processeurs logiques dans les plages d’interfaces réseau élastiques en fonction de la charge de travail prévue pour l’interface (en d’autres termes, une interface réseau administrative à faible volume n’aura peut-être pas besoin d’autant de files d’attente RSS affectées). De plus, comme indiqué précédemment, divers composants doivent fonctionner sur le processeur 0. Nous recommandons donc de l'exclure de toutes les configurations RSS lorsqu'un nombre suffisant de v CPUs est disponible. 

Par exemple, lorsqu'il existe trois interfaces réseau élastiques sur une instance de 72 vCPU avec 2 nœuds NUMA avec l'hyperthreading activé, les commandes suivantes répartissent la charge réseau entre les deux CPUs sans chevauchement et empêchent complètement l'utilisation du noyau 0. 

```
Set-NetAdapterRss -Name NIC1 -BaseProcessorGroup 0 -BaseProcessorNumber 2 -MaxProcessorNumber 16 
Set-NetAdapterRss -Name NIC2 -BaseProcessorGroup 1 -BaseProcessorNumber 0 -MaxProcessorNumber 14 
Set-NetAdapterRss -Name NIC3 -BaseProcessorGroup 1 -BaseProcessorNumber 16 -MaxProcessorNumber 30
```

Notez que ces paramètres sont persistants pour chaque adaptateur réseau. Si une instance est redimensionnée avec un nombre de v différentCPUs, vous devez réévaluer la configuration RSS pour chaque interface Elastic network activée. La documentation Microsoft complète relative à l'applet de commande se trouve ici : [Set](https://learn.microsoft.com/en-us/powershell/module/netadapter/set-netadapterrss) -. NetAdapterRss

Remarque spéciale pour les charges de travail SQL : nous vous recommandons également de revoir vos paramètres d'affinité de I/O thread ainsi que la configuration RSS de votre interface Elastic Network afin de minimiser I/O les conflits sur le réseau. CPUs Consultez la section [Configuration du serveur : masque d’affinité](https://learn.microsoft.com/en-us/sql/database-engine/configure-windows/affinity-mask-server-configuration-option).