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
- 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.
- Aux deux extrémités de la connexion (chaque terminal), exécutez la commande
top
ouhtop
pour surveiller l'utilisation du processeur. Recueillez les statistiques de réseau à l'aide de la commande
netstat
avant d'exécuter des tests.netstat -s >> netstat.log
Dans un autre terminal, exécutez la commande
tcpdump
avant toute capture avec la valeur du paramètresnaplen
de128
.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
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.
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 serveursiperf3
.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.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 &
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.
- Vérifiez les résultats des clients
iperf3
pour la bande passante et la perte de paquets. - Vérifiez les résultats du serveur
iperf3
pour les paquets non ordonnés. 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
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
Accédez à la page de l'appareil pour vérifier le débit du port.
Si le résultat
netstat
affiche des erreurs de lecture/écriture, un réglage de flux groupé TCP/UDP peut être nécessaire.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.
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.