Calculer le débit du réseau sur l'interconnexion

Ce tutoriel explique comment calculer le débit du réseau dans Google Cloud et dans vos emplacements cloud tiers ou sur site qui sont connectés via Cloud Interconnect. Ce document explique comment analyser les résultats, répertorie les variables susceptibles d'altérer les performances du réseau et dévoile des conseils de dépannage.

Limites et points à noter

  • Les limites de Cloud Interconnect s'appliquent. Pour en savoir plus, consultez les Quotas Cloud Interconnect.
  • Limites de la carte d'interface réseau : Google Cloud tient compte de la bande passante de chaque instance de machine virtuelle (VM), et non de chaque interface réseau ou adresse IP. Le type de machine d'une VM définit son débit de sortie maximal. Toutefois, ce taux ne peut être atteint que dans des situations spécifiques. Consultez ce tableau pour connaître le nombre de processeurs virtuels par type de machine.
  • Les autres appareils du chemin (pare-feu, commutateurs avec de petits tampons et appareils des autres fournisseurs) et leurs limites s'appliquent. Effectuez les tâches suivantes pour limiter ces risques.

    • Collectez des statistiques de réseau sur les pare-feu et les commutateurs du chemin.
    • Pour les tests Cloud Interconnect, contournez autant d'appareils que possible entre l'hôte sur site et l'appareil Google Edge.
    • Identifiez et vérifiez tous les appareils du chemin entre le réseau sur site et la VM Google Cloud pour déterminer s'ils peuvent être à l'origine des problèmes de débit.

Présentation des outils de mesure du débit du réseau

Ce tutoriel explique comment utiliser les outils suivants pour calculer le débit du réseau :

  • iPerf3 : outil de test du réseau pouvant créer des flux de données TCP/UDP (monothread ou multithread) et mesurer le débit du réseau qui les achemine.

    Remarque : iPerf3 est recommandé uniquement pour les machines à processeur unique.

  • Netperf : outil semblable à iPerf3, mais adapté aux tests de débit sur des instances à plusieurs processeurs qui sont liées à un seul processeur.

  • tcpdump : analyseur de paquets de ligne de commande qui capture les détails des paquets et les communications TCP/IP pour un dépannage plus avancé. L'outil tcpdump est compatible avec d'autres outils, tels que Wireshark.

  • Netstat : utilitaire réseau de ligne de commande qui affiche les connexions réseau pour le protocole TCP (à la fois entrants et sortants), les tables de routage et plusieurs interfaces réseau (contrôleur d'interface réseau ou interface réseau définie par logiciel) et les statistiques de protocole réseau.

  • mtr : outil de diagnostic réseau qui effectue à la fois des fonctions traceroute et ping. Il vérifie les routeurs du chemin de routage en limitant le nombre de sauts que les paquets individuels peuvent traverser et écoute les réponses de leur expiration.

Mesurer le débit avec iPerf3

Cette procédure permet de mesurer le débit d'une seule instance de VM.

Choisir un type de machine volumineux

Pour effectuer des tests de débit, utilisez un type de machine volumineux, tel que n1-standard-8. Ce type de machine fournit une limite de débit de sortie maximale de 16 Gbit/s, de sorte que le débit de sortie par VM n'interfère pas avec les tests.

Installer les outils

Installer iPerf3, mtr, netstat et tcpdump sur une instance de VM Linux

Pour les distributions basées sur Debian, exécutez les commandes suivantes :

    sudo apt-get update
    sudo apt-get install iperf3 tcpdump mtr netstat

Pour les distributions basées sur Redhat, exécutez les commandes suivantes :

    yum update
    yum install iperf3 tcpdump mtr netstat

Installer netperf

Pour les distributions basées sur Debian, exécutez les commandes suivantes :

    sudo apt-get install git build-essential autoconf texinfo -y
    git clone https://github.com/HewlettPackard/netperf.git
    cd netperf
    ./autogen.sh
    ./configure --enable-histogram --enable-demo=yes
    make
    cp src/netserver ~/.local/bin
    cp src/netperf ~/.local/bin

Pour les distributions basées sur Redhat, exécutez les commandes suivantes :

    sudo yum install git build-essential autoconf texinfo -y
    git clone https://github.com/HewlettPackard/netperf.git
    cd netperf
    ./autogen.sh
    ./configure --enable-histogram --enable-demo=yes
    make
    cp src/netserver ~/.local/bin
    cp src/netperf ~/.local/bin

Exécuter les tests prérequis

  1. Assurez-vous que les tailles des rattachements de VLAN sont correctement configurées. Pour en savoir plus, reportez-vous à la section Modifier des rattachements de VLAN.
  2. Aux deux extrémités de la connexion (chaque terminal), exécutez la commande top ou htop pour surveiller l'utilisation du processeur.
  3. Recueillez les statistiques de réseau à l'aide de la commande netstat avant d'exécuter des tests.

    netstat -s >> netstat.log
    
  4. Dans un autre terminal, exécutez la commande tcpdump avant toute capture avec la valeur du paramètre snaplen de 128.

    Exécutez cette commande sur les deux points de terminaison.

    sudo /usr/sbin/tcpdump -s 128 -i [DEVICE_INTERFACE] host [IP_ADDRESS of remote side] -w mycap.pcap
    
  5. Obtenez la taille de la mémoire en lecture et en écriture sur les hôtes source et de destination.

    $ sysctl net.ipv4.tcp_rmem
    $ sysctl net.ipv4.tcp_wmem
    $ sysctl net.core.rmem_max
    $ sysctl net.core.rmem_default
    $ net.core.wmem_max
    $ net.core.wmem_default
    $ uname -r
    $ cat /etc/os-release
    

Exécuter les tests iperf3

En raison de la limite de 3 Gbit/s pour chaque flux, nous vous recommandons d'exécuter plusieurs flux parallèles de tests iperf3. Nous vous recommandons d'exécuter un minimum de quatre tests et un maximum de dix tests pour compenser les limites de bande passante et obtenir des résultats utiles.

  1. Dans un autre terminal, exécutez le serveur iperf3 à une extrémité de la connexion (une VM ou une machine sur site). Plusieurs flux nécessitent plusieurs serveurs iperf3.

  2. Exécutez l'outil iPerf3 avec l'option udp pour les tests Cloud Interconnect. Si le débit souhaité est atteint avec UDP, vous devez effectuer d'autres étapes de dépannage.

  3. Pour exécuter les multiples serveurs iperf3 à partir de la ligne de commande, exécutez les commandes suivantes :

    $ iperf3 -s -p 5101&; iperf3 -s -t 30 -p 5102&; iperf3 -s  -p 5103 &
    
  4. Exécutez le script bash suivant pour exécuter plusieurs serveurs iperf3 :

    #!/bin/bash
    #start iperf3 server running in background
    
    for i in `seq 0 9`;
    do
            iperf3 -s  -B 10.0.100.35 -t 30 -u -p 521$i &
    done
    

La valeur iperf3 client s'exécute pendant 10 secondes par défaut, ce qui peut s'avérer insuffisant pour que le TCP atteigne le débit maximal. Définissez la valeur DURATION sur au moins 30 secondes pour obtenir des résultats plus fiables.

    iperf3 -c [server IP address] -P [THREADS] -t [DURATION]

Script bash pour exécuter plusieurs flux UDP iperf3

echo "UDP iperf test - 10 streams"
for i in `seq 0 9`;
do
       iperf3 -B 10.0.100.35 -c 192.168.50.3 --logfile ~/gcpvm_client-521$i.log -u -b 1G  -l 1390 -t10 -p 521$i    &

done

Script bash pour exécuter plusieurs flux TCP iperf3

echo "UDP iperf test - 10 streams"
for i in `seq 0 9`;
do
       iperf3 -B 10.0.100.35 -c 192.168.50.3 --logfile ~/gcpvm_client-521$i.log -b 1G  -l 1390 -t10 -p 521$i    &

done

Pendant que le test iperf3 est en cours d'exécution, surveillez les charges du processeur sur les deux appareils. Si la charge du processeur est proche de 100 %, le processeur est un goulot d'étranglement utilisé pour un thread iperf3. Dans ce cas, utilisez l'outil Netperf, car il accepte plusieurs processeurs.

Si vous ne pouvez pas exécuter Netperf, vous pouvez démarrer plusieurs serveurs iPerf3 et clients sur différents terminaux et différents ports simultanément.

Analyser les résultats du test

Effectuez les étapes suivantes.

  1. Vérifiez les résultats des clients iperf3 pour la bande passante et la perte de paquets.
  2. Vérifiez les résultats du serveur iperf3 pour les paquets non ordonnés.
  3. Effectuez une analyse de capture de paquets. Exécutez la commande suivante pour convertir le fichier pcap en fichier texte.

    tcpdump -A -[PCAP-FILENAME].pcap > [TXT-FILENAME].txt
    
  4. Exécutez la commande suivante pour obtenir le nombre total de paquets et de paquets non ordonnés.

    grep -e "Total" -A1 pcap [TXT-FILENAME]
    

    Le résultat est le suivant :

    gcpvm-send-5210.txt:Total UDP packets: 874032
    gcpvm-send-5210.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5211.txt:Total UDP packets: 791218
    gcpvm-send-5211.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5212.txt:Total UDP packets: 961510
    gcpvm-send-5212.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5213.txt:Total UDP packets: 961517
    gcpvm-send-5213.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5214.txt:Total UDP packets: 961501
    gcpvm-send-5214.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5215.txt:Total UDP packets: 961521
    gcpvm-send-5215.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5216.txt:Total UDP packets: 889932
    gcpvm-send-5216.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5217.txt:Total UDP packets: 961483
    gcpvm-send-5217.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5218.txt:Total UDP packets: 961479
    gcpvm-send-5218.txt:Total out-of-order packets: 0, missing packets: 0
    gcpvm-send-5219.txt:Total UDP packets: 961518
    gcpvm-send-5219.txt:Total out-of-order packets: 0, missing packets: 0
    

    L'analyse suivante indique la perte de paquets lors d'un test de performances :

    $ grep -e "Total" -A1 onPrem-send-*.txt
    

    Le résultat est le suivant :

    "Total" -A1 onPrem-send-*.txt
    onPrem-send-5210.txt:Total UDP packets: 858698
    onPrem-send-5210.txt:Total out-of-order packets: 0, missing packets: 5408
    --
    onPrem-send-5211.txt:Total UDP packets: 857667
    onPrem-send-5211.txt:Total out-of-order packets: 0, missing packets: 4929
    --
    onPrem-send-5212.txt:Total UDP packets: 857126
    onPrem-send-5212.txt:Total out-of-order packets: 0, missing packets: 5349
    --
    onPrem-send-5213.txt:Total UDP packets: 857424
    onPrem-send-5213.txt:Total out-of-order packets: 0, missing packets: 5495
    --
    onPrem-send-5214.txt:Total UDP packets: 857139
    onPrem-send-5214.txt:Total out-of-order packets: 0, missing packets: 4692
    --
    onPrem-send-5215.txt:Total UDP packets: 857175
    onPrem-send-5215.txt:Total out-of-order packets: 0, missing packets: 4789
    --
    onPrem-send-5216.txt:Total UDP packets: 857104
    onPrem-send-5216.txt:Total out-of-order packets: 0, missing packets: 5196
    --
    onPrem-send-5217.txt:Total UDP packets: 857122
    onPrem-send-5217.txt:Total out-of-order packets: 0, missing packets: 5423
    --
    onPrem-send-5218.txt:Total UDP packets: 857383
    onPrem-send-5218.txt:Total out-of-order packets: 0, missing packets: 5283
    --
    onPrem-send-5219.txt:Total UDP packets: 857313
    onPrem-send-5219.txt:Total out-of-order packets: 0, missing packets: 4934
    
  5. Accédez à la page de l'appareil pour vérifier le débit du port.

  6. Si le résultat netstat affiche des erreurs de lecture/écriture, un réglage de flux groupé TCP/UDP peut être nécessaire.

  7. Si les paquets ne sont pas ordonnés, les captures de paquets doivent être réalisées dans les passerelles VPN en vue d'une analyse plus approfondie. Pour en savoir plus sur l'exécution de captures de paquets dans les passerelles VPN, ouvrez une demande d'assistance.

  8. Si le test UDP iperf3 atteint le débit souhaité, le problème se situe ailleurs et un réglage TCP peut être nécessaire.