Maximisez la bande passante réseau sur les instances de calcul accéléré avec EFA - Amazon Elastic Compute Cloud

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

Maximisez la bande passante réseau sur les instances de calcul accéléré avec EFA

Pour optimiser la bande passante sur les types d'instances accélérées suivants, vous pouvez utiliser plusieurs interfaces Elastic Fabric Adapter (EFA).

  • Les instances P5 et P5e prennent en charge jusqu'à 32 cartes réseau et peuvent fournir jusqu'à 3 200 Gbit/s de bande passante réseau.

  • Les instances G6e prennent en charge jusqu'à quatre cartes réseau et peuvent fournir jusqu'à 400 Gbit/s de bande passante réseau

Pour plus d'informations sur la prise en main des instances GPU accélérées, consultezAccélération des performances grâce aux GPU instances.

Nous vous recommandons de définir une seule interface EFA réseau par carte réseau. Pour configurer ces interfaces au lancement, nous recommandons les paramètres suivants :

  • Pour l’interface réseau 0, spécifiez l’index d’appareils 0.

  • Pour les interfaces réseaux 1 à 31, spécifiez l’index d’appareils 1.

Si vous utilisez la EC2 console Amazon, dans l'assistant de lancement d'instance, choisissez Modifier dans la section Paramètres réseau. Développez Configuration réseau avancée et choisissez Ajouter une interface réseau pour ajouter le nombre requis d’interfaces réseau. Pour chaque interface réseau, pour EFA, sélectionnez Activer. Pour toutes les interfaces réseau, à l’exception de l’interface réseau principale, pour Index d’appareils, spécifiez 1. Configurez les paramètres restants selon les besoins.

Si vous utilisez la commande run-instances AWS CLI, pour--network-interfaces, spécifiez le nombre requis d'interfaces réseau. Pour chaque interface réseau, pour InterfaceType, spécifiez efa. Pour l’interface réseau principale, pour NetworkCardIndex et DeviceIndex, spécifiez 0. Pour les autres interfaces réseau, pour NetworkCardIndex, spécifiez une valeur unique comprise entre 1 et 31, et pour DeviceIndex, spécifiez 1.

L'exemple d'extrait de commande suivant montre une demande comportant 32 interfaces EFA réseau.

$ aws --region $REGION ec2 run-instances \ --instance-type p5.48xlarge \ --count 1 \ --key-name key_pair_name \ --image-id ami_id \ --network-interfaces "NetworkCardIndex=0,DeviceIndex=0,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=1,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=2,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=3,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=4,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=5,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=6,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=7,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=8,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=9,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=10,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=11,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=12,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=13,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=14,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=15,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=16,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=17,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=18,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=19,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=20,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=21,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=22,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=23,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=24,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=25,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=26,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=27,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=28,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=29,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=30,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" \ "NetworkCardIndex=31,DeviceIndex=1,Groups=security_group_id,SubnetId=subnet_id,InterfaceType=efa" ...

Si vous utilisez un modèle de lancement, spécifiez le nombre requis d’interfaces réseau dans le modèle de lancement. Pour chaque interface réseau, pour InterfaceType, spécifiez efa. Pour l’interface réseau principale, pour NetworkCardIndex et DeviceIndex, spécifiez 0. Pour les autres interfaces réseau, pour NetworkCardIndex, spécifiez une valeur unique comprise entre 1 et 31, et pour DeviceIndex, spécifiez 1. L’extrait de code suivant montre un exemple avec 3 interfaces réseau sur 32 possibles.

"NetworkInterfaces":[ { "NetworkCardIndex":0, "DeviceIndex":0, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true }, { "NetworkCardIndex": 1, "DeviceIndex": 1, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true }, { "NetworkCardIndex": 2, "DeviceIndex": 1, "InterfaceType": "efa", "AssociatePublicIpAddress":false, "Groups":[ "security_group_id" ], "DeleteOnTermination":true } ...

Lorsque vous lancez une instance P5 ou P5e avec plusieurs interfaces réseau, vous ne pouvez pas attribuer automatiquement d'adresses IP publiques. Toutefois, vous pouvez associer une adresse IP élastique à l'interface réseau principale (NetworkCardIndex=0, DeviceIndex =0) après le lancement pour la connectivité Internet. Ubuntu 20.04 et versions ultérieures ainsi qu'Amazon Linux 2 et versions ultérieures sont configurés pour utiliser l'interface réseau principale pour le trafic Internet lorsque l'instance est lancée, comme recommandé sur cette page.

Pour obtenir les meilleures performances réseau sur les instances G6e, vous pouvez IMDS cartographier les interfaces réseau connectées et les optimiser en utilisant des instances réseau NetworkCardIndexes disjointes.

L'exemple de script suivant rassemble les détails de la pièce jointe NetworkCardIndexes.

$ TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X- aws-ec2-metadata-token-ttl-seconds: 21600") count=$(ls -l /sys/class/net/eth* | wc -l) for ((i = 0 ; i < ${count} ; i++)); do mac=$(cat /sys/class/net/eth$i/address) network_card=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" "http://169.254.169.254/latest/meta-data/network/interfaces/macs/$mac/ network-card") device_number=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" "http://169.254.169.254/latest/meta-data/network/interfaces/macs/$mac/ device-number") device_bdf=$(realpath /sys/class/net/eth${i}/device) echo "eth${i} ${network_card} ${device_number} ${device_bdf}" done