Effectuer l'analyse comparative d'une bande passante réseau plus élevée pour les instances de VM


Ce document explique comment tester les performances réseau Tier_1 par VM en créant deux VM et en diffusant le trafic entre elles afin d'observer les performances du réseau. Pour bénéficier de cette fonctionnalité, vous devez créer les VM avec des systèmes d'exploitation compatibles avec la carte d'interface réseau virtuelle Google (gVNIC). Les performances réseau Tier_1 par VM nécessitent des VM plus volumineuses. Assurez-vous donc de disposer d'un quota de processeurs suffisant pour créer les VM.

Avant de commencer

  • Vérifiez que vous utilisez une image publique compatible avec gVNIC ou créez une image personnalisée dans votre projet.
  • Vérifiez que vous avez créé des règles de pare-feu VPC autorisant le trafic d'entrée sur le port TCP:5001 ou tout autre port de votre choix, afin d'effectuer les tests de performances iperf.
  • Utilisez la version 2 de iPerf, et non la version 3, pour effectuer l'analyse comparative.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine en sélectionnant l'une des options suivantes:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.

Configurer des VM pour l'analyse comparative

Créez deux machines dotées d'un processeur virtuel n2-standard-64 sur lesquelles les performances réseau Tier_1 par VM sont activées et le paramètre d'unité de transmission maximale (MTU) est défini sur la valeur la plus élevée. Vous pouvez ainsi optimiser la bande passante de sortie de vos VM jusqu'à 75 Gbit/s (en utilisant des adresses IP internes).

gcloud

  1. Pour créer une image, utilisez la commande gcloud compute images create.

      gcloud compute images create IMAGE_NAME \
       --project=PROJECT_ID \
       --source-image-family=SOURCE_IMAGE_FAMILY \
       --source-image-project=SOURCE_IMAGE_PROJECT \
       --guest-os-features=GVNIC
    

    Remplacez les éléments suivants :

    • PROJECT_ID : nom de votre projet.
    • IMAGE_NAME : nom de l'image que vous souhaitez créer.
    • SOURCE_IMAGE_FAMILY : version requise d'une image publique. Pour ce test, utilisez ubuntu-2004-lts.
    • SOURCE_IMAGE_PROJECT : nom du projet contenant l'image source. Pour ce test, utilisez ubuntu-os-cloud.

    Exemple

    gcloud compute images create benchmark-image-test \
      --project=my-project \
      --source-image-family=ubuntu-2004-lts \
      --source-image-project=ubuntu-os-cloud \
      --guest-os-features=GVNIC
    
  2. Créez un réseau VPC en mode automatique utilisant le paramètre de MTU maximal :

      gcloud compute networks create NETWORK_NAME \
      --project=PROJECT_ID \
      --subnet-mode=AUTO --mtu=8896
    

    Remplacez les éléments suivants :

    • PROJECT_ID : nom de votre projet.
    • NETWORK_NAME : nom du réseau.
  3. Créez deux instances identiques :

      gcloud compute instances create \
          VM_NAME_1 VM_NAME_2 \
          --project=PROJECT_ID \
          --zone=ZONE \
          --machine-type=n2-standard-64 \
          --image=projects/PROJECT_NAME/global/images/IMAGE_NAME \
          --network=NETWORK_NAME \
          --network-interface=nic-type=GVNIC \
          --network-performance-configs=total-egress-bandwidth-tier=TIER_1
    

    Remplacez les éléments suivants :

    • VM_NAME_1, VM_NAME_2 : noms des instances de VM que vous souhaitez créer.
    • PROJECT_ID : nom de votre projet.
    • ZONE : zone des VM. Les deux VM doivent se trouver dans la même zone.
    • PROJECT_NAME/global/images/IMAGE_NAME : nom du projet et nom de l'image.
    • NETWORK_NAME : nom du réseau que vous avez configuré avec le paramètre de MTU maximal.

Effectuer l'analyse comparative

Vos deux VM doivent se trouver dans la même zone et sur le même réseau VPC. Lors de l'analyse comparative, les deux VM exécutent des tests bidirectionnels du chemin du réseau VPC.

Vérifier le paramètre de MTU

Vérifiez que le paramètre de MTU maximal est configuré sur le réseau cloud privé virtuel (VPC) à l'aide de ifconfig dans le système d'exploitation invité de l'une des VM.

  1. Connectez-vous à l'une des VM.

  2. Dans la fenêtre de terminal, exécutez la commande suivante :

     /sbin/ifconfig | grep mtu
    

    La MTU indiquée doit être 8 896.

     ens4: flags=4163  mtu 8896
     lo: flags=73  mtu 65536
    

Vérifier la configuration des VM

Vérifiez que la mise en réseau Tier_1 est activée sur les machines virtuelles en examinant leurs propriétés.

gcloud

Pour afficher les instances, utilisez la commande gcloud compute instances describe.

gcloud compute instances describe VM_NAME_1 \
    --project=PROJECT_ID \
    --zone=ZONE \
    --format="text(networkPerformanceConfig)"
gcloud compute instances describe VM_NAME_2 \
    --project=PROJECT_ID \
    --zone=ZONE \
    --format="text(networkPerformanceConfig)"

Remplacez les éléments suivants :

  • VM_NAME_1 : noms de l'instance de VM que vous souhaitez afficher.
  • VM_NAME_2 : noms de l'instance de VM que vous souhaitez afficher.
  • PROJECT_ID : nom de votre projet.
  • ZONE : zone des VM. Les deux VM doivent se trouver dans la même zone.

Dans la réponse, vous devriez obtenir le résultat suivant :

networkPerformanceConfig.totalEgressBandwidthTier: TIER_1

Utiliser iPerf pour effectuer l'analyse comparative des systèmes basés sur Debian

gcloud

  1. Si vous ne l'avez pas encore fait, suivez les étapes de la section Configurer des VM pour l'analyse comparative.

  2. Une fois que les deux VM sont en cours d'exécution, utilisez SSH pour vous connecter à l'une des VM.

    gcloud compute ssh VM_NAME_1 \
      --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • VM_NAME_1 : nom de votre première VM.
    • PROJECT_ID : nom de votre projet.
  3. Sur la première VM, procédez comme suit :

    1. Installez iperf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. Obtenez l'adresse IP interne de cette VM. Notez l'adresse IP interne, car vous en aurez besoin plus tard.

      ip a
      
    3. Démarrez le serveur iPerf.

      iperf -s
      

      Cette opération démarre un serveur qui écoute les connexions afin d'effectuer l'analyse comparative. Laissez le serveur iPerf s'exécuter pendant toute la durée du test.

  4. Depuis un terminal client distinct, connectez-vous à la deuxième VM à l'aide de SSH.

    gcloud compute ssh VM_NAME_2 \
       --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • VM_NAME_2 : nom de votre deuxième VM.
    • PROJECT_ID : nom de votre projet.
  5. Sur la deuxième VM, procédez comme suit :

    1. Installez iPerf.

      sudo apt-get update && sudo apt-get install iperf
      
    2. Exécutez le test iperf et définissez l'adresse IP de la première VM comme cible.

      iperf -t 30 -c internal_ip_of_instance_1 -P 16
      

      Un test de 30 secondes est alors exécuté. Si iPerf n'est pas en mesure d'accéder à l'autre VM, vous devrez peut-être ajuster le réseau ou les paramètres de pare-feu sur les VM ou dans la console Google Cloud.

      Les résultats doivent ressembler à l'exemple suivant. Il indique la limite de bande passante de sortie de 75 Gbit/s pour n2-standard-64 avec la mise en réseau Tier_1 activée, dépassant la limite de bande passante de sortie par défaut de 32 Gbit/s.

      ------------------------------------------------------------
      Client connecting to 10.128.0.10, TCP port 5001
      TCP window size: 1.59 MByte (default)
      ------------------------------------------------------------
      [ 12] local 10.128.0.11 port 57722 connected with 10.128.0.10 port 5001
      [ 11] local 10.128.0.11 port 57720 connected with 10.128.0.10 port 5001
      [ 16] local 10.128.0.11 port 57730 connected with 10.128.0.10 port 5001
      [  6] local 10.128.0.11 port 57710 connected with 10.128.0.10 port 5001
      [ 13] local 10.128.0.11 port 57724 connected with 10.128.0.10 port 5001
      [  8] local 10.128.0.11 port 57712 connected with 10.128.0.10 port 5001
      [  9] local 10.128.0.11 port 57716 connected with 10.128.0.10 port 5001
      [ 14] local 10.128.0.11 port 57726 connected with 10.128.0.10 port 5001
      [ 15] local 10.128.0.11 port 57728 connected with 10.128.0.10 port 5001
      [ 10] local 10.128.0.11 port 57718 connected with 10.128.0.10 port 5001
      [  4] local 10.128.0.11 port 57706 connected with 10.128.0.10 port 5001
      [  5] local 10.128.0.11 port 57708 connected with 10.128.0.10 port 5001
      [  3] local 10.128.0.11 port 57704 connected with 10.128.0.10 port 5001
      [ 17] local 10.128.0.11 port 57732 connected with 10.128.0.10 port 5001
      [  7] local 10.128.0.11 port 57714 connected with 10.128.0.10 port 5001
      [ 18] local 10.128.0.11 port 57734 connected with 10.128.0.10 port 5001
      [ ID] Interval       Transfer     Bandwidth
      [ 12]  0.0-30.0 sec  7.63 GBytes  2.19 Gbits/sec
      [ 11]  0.0-30.0 sec  17.7 GBytes  5.07 Gbits/sec
      [ 16]  0.0-30.0 sec  9.15 GBytes  2.62 Gbits/sec
      [  6]  0.0-30.0 sec  43.8 GBytes  12.6 Gbits/sec
      [ 13]  0.0-30.0 sec  23.6 GBytes  6.76 Gbits/sec
      [  8]  0.0-30.0 sec  13.3 GBytes  3.80 Gbits/sec
      [  9]  0.0-30.0 sec  9.29 GBytes  2.66 Gbits/sec
      [ 14]  0.0-30.0 sec  19.6 GBytes  5.62 Gbits/sec
      [ 15]  0.0-30.0 sec  12.5 GBytes  3.58 Gbits/sec
      [ 10]  0.0-30.0 sec  11.1 GBytes  3.19 Gbits/sec
      [  4]  0.0-30.0 sec  19.0 GBytes  5.43 Gbits/sec
      [  5]  0.0-30.0 sec  7.32 GBytes  2.10 Gbits/sec
      [  3]  0.0-30.0 sec  8.78 GBytes  2.51 Gbits/sec
      [ 17]  0.0-30.0 sec  17.5 GBytes  5.02 Gbits/sec
      [  7]  0.0-30.0 sec  33.4 GBytes  9.57 Gbits/sec
      [ 18]  0.0-30.0 sec  7.64 GBytes  2.19 Gbits/sec
      [SUM]  0.0-30.0 sec   261 GBytes  74.9 Gbits/sec
      

Supprimer des ressources après des tests d'analyse comparative

Supprimez les ressources que vous avez créées lors des tests d'analyse comparative pour éviter des frais pour l'image et les VM supplémentaires.

gcloud

  1. Exécutez la commande gcloud compute instances delete pour supprimer les instances que vous avez créées pour les tests de l'analyse comparative.

    gcloud compute instances delete \
      VM_NAME_1 VM_NAME_2 \
       --project=PROJECT_ID \
       --zone=ZONE
    

    Remplacez les éléments suivants :

    • VM_NAME_1 et VM_NAME_2 : noms des deux instances de VM que vous souhaitez supprimer.
    • PROJECT_ID : nom de votre projet.
    • ZONE : zone des VM. Les deux VM doivent se trouver dans la même zone.
  2. Exécutez la commande gcloud compute networks delete pour supprimer le réseau que vous avez créé pour les tests de l'analyse comparative.

    gcloud compute networks delete NETWORK_NAME  \
       --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • NETWORK_NAME : nom du réseau que vous souhaitez supprimer.
    • PROJECT_ID : nom de votre projet.
  3. Exécutez la commande gcloud compute images delete pour supprimer l'image que vous avez créée pour les tests de l'analyse comparative.

     gcloud compute images delete IMAGE_NAME  \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • IMAGE_NAME : nom de l'image que vous souhaitez supprimer.
    • PROJECT_ID : nom de votre projet.

Étapes suivantes