Je dois mesurer la bande passante réseau entre des instances Linux Amazon EC2. Quelle est la marche à suivre ?

Plusieurs facteurs peuvent affecter les performances réseau Amazon EC2, notamment :

  • Proximité physique des instances EC2, répertoriées dans l'ordre décroissant :
    • Instances de la même zone de disponibilité
    • Instances d'une autre zone de disponibilité de la même région
    • Instances de différentes régions du même continent
    • Instances de différentes régions de différents continents
  • Unité de transmission maximale (MTU) des instances EC2. La configuration d'interface par défaut des instances EC2 utilise des trames jumbo (MTU de 9001), ce qui permet un débit supérieur dans un Cloud privé virtuel (VPC) unique. Cependant, à l'extérieur d'un VPC unique, la MTU maximale est de 1500, ce qui exige que les gros paquets soient fragmentés par des systèmes intermédiaires. Par conséquent, la valeur MTU par défaut de 9001 peut être inefficace et coûter davantage en surcharge de traitement qu'elle n'offre de gains en débit réseau, en particulier lorsque la majeure partie du trafic réseau implique un accès via Internet. Les types d'instance qui peuvent être configurés pour utiliser les trames jumbo sont CC2, C3, R3, CG1, CR1, G2, HS1, HI1, I2, T2 et M3. Pour plus d'informations, consultez Types d'instance.
  • Taille d'instance EC2. Les grandes tailles d'instance définies pour un type d'instance offrent généralement de meilleures performances réseau que les tailles d'instance plus petites pour le même type d'instance.
  • Prise en charge de la mise en réseau améliorée EC2 pour Linux, à l'exception des types d'instance T2 et M3.
  • Prise en charge du Calcul Haute Performance (HPC) EC2 en utilisant des groupes de placement. HPC offre une bande passante entièrement bisectionnelle et une faible latence, permettant ainsi la prise en charge de vitesses réseau de 10 gigabits. Pour plus d'informations, consultez Lancement d'instances dans un groupe de placement. Consultez la Matrice des types d'instance pour voir les performances réseau de chaque type d'instance.

En raison de ces facteurs, il y a souvent une différence de performances réseau importante entre les environnements de Cloud. Les bonnes pratiques d'évaluation de l'impact des performances réseau sur les applications basées sur le Cloud doivent inclure des tests réguliers d'évaluation du réseau de votre environnement. Cet article décrit les étapes requises pour définir, configurer et tester les performances réseau entre instances EC2. Etant donné que les performances réseau constituent souvent un aspect essentiel des performances des applications, le test des performances réseau peut fournir des informations appréciables pour déterminer le type, la taille et la configuration des instances EC2 qui répondent le mieux à vos besoins.

Avant de commencer les tests d'évaluation, lancez et configurez vos instances Linux EC2 :

  1. Suivez les étapes de la rubrique Lancement d'une instance Amazon EC2 pour lancer deux instances Linux à partir desquelles vous pourrez exécuter le test des performances réseau.
  2. Pour garantir les meilleures performances réseau possibles, vérifiez que les instances prennent en charge la mise en réseau améliorée pour Linux, lancez les instances dans le même VPC et suivez les étapes de la rubrique Activation de la mise en réseau améliorée sur les instances Linux d'un VPC.
  3. Si vous testez les performances réseau entre des instances qui ne se trouvent pas dans le même groupe de placement ou qui ne prennent pas en charge les trames jumbo, suivez les étapes de la rubrique Unité de transmission maximale (MTU) du réseau pour votre instance EC2 afin de vérifier et définir la MTU sur votre instance Amazon EC2.
  4. Suivez les étapes de la rubrique Connexion à votre instance Linux pour vérifier que vous pouvez accéder aux instances.

Connectez-vous à vos instances Linux via une session de terminal et exécutez les commandes suivantes pour installer iperf3.

  • Pour installer iperf3 sur des hôtes Linux basés sur RHEL :
         $ sudo yum --enablerepo=epel install iperf iperf3
  • Pour installer iperf3 sur des hôtes Debian/Ubuntu :
         $ sudo apt-get update
         $ sudo apt-get upgrade
         $ sudo apt-get install git gcc make
         $ git clone https://github.com/esnet/iperf
         $ cd iperf
         $ ./configure
         $ sudo make
         $ sudo make install
         # optionally run "make clean" to free up disk space
         # by removing artifacts in the build tree.
         $ sudo make clean
         $ sudo ldconfig

iperf3 communique via le port 5001 par défaut lors du test des performances TCP ; cependant, ce port est configurable à l'aide du commutateur -p. Vérifiez que les groupes de sécurité sont configurés de façon à autoriser la communication via le port qui sera utilisé par iperf3.

  1. Configurez une instance en tant que serveur écoutant sur le port par défaut ou spécifiez un autre port d'écoute à l'aide du commutateur -p :
         $ sudo iperf3 -s -p 80
  2. Configurez une seconde instance en tant que client et exécutez un test sur le serveur avec les paramètres souhaités. Par exemple, la commande suivante lance un test TCP sur l'instance de serveur spécifiée avec 10 connexions parallèles sur le port 80 :
         $ sudo iperf3 -c 10.0.2.176 -i 1 -t 60 -V -p 80

En utilisant les paramètres iperf3 décrits, la sortie affiche l'intervalle (60 secondes) par connexion TCP, les données transférées par connexion et la bande passante utilisée par chaque connexion. La sortie iperf3 présentée ici a été générée en testant deux instances Linux EC2 de type c4.8xlarge situées dans le même groupe de placement et assurant la prise en charge du Calcul Haute Performance (HPC). La bande passante totale de transmission entre toutes les connexions était de 9,60 Gbits/s :

File d'attente:

[ ID] Interval       Transfer     Bandwidth

[  5]  0.0-60.0 sec  6.71 GBytes   960 Mbits/sec

[  4]  0.0-60.0 sec  6.69 GBytes   957 Mbits/sec

[  6]  0.0-60.0 sec  6.55 GBytes   937 Mbits/sec

[  7]  0.0-60.0 sec  6.84 GBytes   980 Mbits/sec

[  8]  0.0-60.0 sec  6.68 GBytes   956 Mbits/sec

[  9]  0.0-60.0 sec  6.76 GBytes   968 Mbits/sec

[ 10]  0.0-60.0 sec  6.55 GBytes   938 Mbits/sec

[ 12]  0.0-60.0 sec  6.77 GBytes   969 Mbits/sec

[ 11]  0.0-60.0 sec  6.70 GBytes   960 Mbits/sec

[ 13]  0.0-60.0 sec  6.80 GBytes   973 Mbits/sec

[SUM]  0.0-60.0 sec  67.0 GBytes  9.60 Gbits/sec

iperf3 communique via le port 5201 par défaut lors du test des performances UDP ; cependant, ce port est configurable à l'aide du commutateur -p. Vérifiez que les groupes de sécurité sont configurés de façon à autoriser la communication via le port qui sera utilisé par iperf3.

  1. Configurez une instance en tant que serveur écoutant sur le port par défaut ou spécifiez un autre port d'écoute à l'aide du commutateur -p :
         $ sudo iperf3 -s -p 80
  2. Configurez une seconde instance en tant que client et exécutez un test sur le serveur avec les paramètres souhaités. Par exemple, la commande suivante va lancer un test UDP sur l'instance de serveur spécifiée avec un objectif de bande passante de 100 Mbits/s sur le port 80 :
         $ sudo iperf3 -c 10.0.2.176 -p 80 -u -b 100m

La sortie affiche l'intervalle (de temps), le volume de données transférées, la bande passante atteinte, l'instabilité (l'instabilité réseau est l'écart de temps lors des arrivées périodiques de datagrammes) et les pertes/le nombre total de datagrammes UDP :

[ ID] Interval        Transfer     Bandwidth       Jitter    Lost/Total Datagrams

[  3]  0.0-10.0 sec   120 MBytes   101 Mbits/sec   0.005 ms  0/85470 (0%)

[  3]  0.0-10.0 sec   1 datagram received out-of-order

[  3] Sent 15113 datagrams

Linux Amazon EC2, réseau, performances, groupes de placement, HPC, débit, iperf, iperf3, MTU, VPC, UDP, TCP


Cette page vous a-t-elle été utile ? Oui | Non

Retour au Centre de connaissances AWS Support

Vous avez besoin d'aide ? Consultez le site du Centre AWS Support.