Google Cloud tient compte de la bande passante par instance de machine virtuelle (VM), et non par interface réseau (carte d'interface réseau) ou adresse IP. Le type de machine d'une VM définit son débit de sortie maximal possible. Cependant, vous ne pouvez atteindre ce débit de sortie maximal que dans des situations spécifiques.
Cette page décrit les attentes possibles en termes de bande passante, ce qui s'avère utile lors de la planification des déploiements. La bande passante est catégorisée selon deux dimensions :
- Sens du trafic : comme vous le verrez sur cette page, le sens du trafic est toujours du point de vue d'une VM Google Cloud :
- Les paquets envoyés à partir d'une VM Google Cloud composent son trafic de sortie (trafic sortant).
- Les paquets envoyés à une VM Google Cloud composent son trafic d'entrée (trafic entrant).
Type d'adresse IP de destination : Google Cloud catégorise les adresses IP comme étant internes ou externes :
- Une adresse IP au sein d'un réseau VPC est appelée adresse IP interne. Par exemple, la carte d'interface réseau de chaque VM possède une adresse IP interne principale située dans un réseau VPC. Les adresses IP internes peuvent correspondre à n'importe quelle plage d'adresses IP publiques valide ou réutilisée de manière privée.
- Une adresse IP accessible à partir d'Internet est une adresse IP externe. Les adresses IP externes peuvent être situées dans Google Cloud, telles que l'adresse IP externe attribuée à la carte d'interface réseau d'une VM. Les adresses IP externes sont toujours des adresses IP publiques, y compris des adresses IP publiques sur Internet en dehors de Google Cloud.
Consultez la page Adresses IP de la documentation sur les VPC pour obtenir des définitions précises. Par exemple, si vous réutilisez en privé une adresse IP publique dans votre réseau VPC, il s'agit d'une adresse IP interne, et l'adresse IP externe correspondante n'est plus accessible.
Toutes les informations sur cette page s'appliquent aux VM Compute Engine, ainsi qu'aux produits qui dépendent des VM Compute Engine. Par exemple, un nœud Google Kubernetes Engine est une VM Compute Engine.
Ni les interfaces réseau supplémentaires, ni les adresses IP supplémentaires par carte d'interface réseau n'augmentent la bande passante d'entrée ou de sortie d'une VM. Par exemple, une VM n1-standard-8
dotée de deux cartes d'interface réseau est limitée à 16 Gbit/s de bande passante totale de sortie, et non à 16 Gbit/s de bande passante de sortie par carte d'interface réseau.
Tableau récapitulatif de la bande passante
Le tableau suivant récapitule les attentes en termes de bande passante :
Adresse de destination du paquet | ||
Sens du trafic | Destination de l'adresse IP interne | Destination de l'adresse IP externe |
---|---|---|
Sortie à partir d'une VM Google Cloud |
|
La sortie maximale possible à partir d'une seule VM ne peut pas dépasser la valeur suivante :
|
|
||
Entrée vers une VM Google Cloud |
|
Google Cloud protège chaque VM en limitant le trafic entrant envoyé à une adresse IP externe associée à la VM. La limite est le premier des débits courants suivants :
|
Bande passante de sortie
Google Cloud limite la bande passante sortante (de sortie) par VM et par projet. La bande passante sortante inclut le trafic envoyé par toutes les cartes d'interface réseau de la VM, ainsi que les données transférées vers tous les disques persistants connectés à la VM.
La bande passante de sortie maximale standard dépend du type de machine de la VM. La bande passante de sortie maximale est généralement de 2 Gbit/s par processeur virtuel, mais il existe quelques différences et exceptions, en fonction de la série de machines. Le tableau suivant indique les limites minimales et maximales de bande passante de sortie, seulement pour le niveau de mise en réseau standard, et non pour les performances réseau par VM de niveau 1.
Série de machines | Limite de sortie minimale standard | Limite de sortie maximale standard |
---|---|---|
E2 | 1 Gbit/s | 16 Gbit/s |
T2D | 10 Gbit/s | 32 Gbit/s |
N2, C2, N2D et C2D | 10 Gbit/s | 32 Gbit/s |
N1 (à l'exception des VM comportant un processeur virtuel) | 10 Gbit/s | 32 Gbit/s sur la plate-forme de processeur Skylake 16 Gbit/s sur les plates-formes de processeur antérieures à Skylake |
Types de machines N1 comportant un processeur virtuel, f1-micro et g1-small | 2 Gbit/s | 2 Gbit/s |
A2 | Selon les GPU | Selon les GPU |
Par exemple, une VM basée sur le type de machine t2d-standard-6
dispose d'une bande passante de sortie maximale standard de 12 Gbit/s. Cette valeur est basée sur six processeurs virtuels, avec 2 Gbit/s pour chacun. Le résultat, 12 Gbit/s, est supérieur à la valeur minimale de la série de machines, sans dépasser la limite maximale de 32 Gbit/s.
La bande passante de sortie maximale pour chaque type de machine est listée sur la page de sa famille de machines spécifique :
- Famille de machines à usage général
- Famille de machines optimisées pour le calcul
- Famille de machines à mémoire optimisée
- Famille de machines optimisée pour les accélérateurs
La bande passante de sortie maximale possible n'est pas une garantie. Outre le type de machine, la bande passante de sortie est affectée par de nombreux facteurs, dont ceux de la liste non exhaustive suivante :
- Un pilote Ethernet au niveau de l'invité (GVNIC) offre de meilleures performances que l'interface réseau VirtIO
- Taille des paquets
- Surcharge de protocole
- Nombre de flux
- Paramètres du pilote Ethernet du système d'exploitation invité de la VM, tels que le déchargement de somme de contrôle et le déchargement de la segmentation par TCP (TSO)
- Congestion du réseau
- Destination du paquet. Google Cloud gère le trafic de sortie d'une VM différemment suivant que l'adresse de destination du paquet sortant est une adresse IP interne ou une adresse IP externe.
- Dans une situation où les disques persistants sont en concurrence avec un autre trafic de sortie réseau, 60 % de la bande passante réseau maximale est alloué aux écritures sur disques persistants, ce qui laisse 40 % pour le reste du trafic de sortie réseau. Pour en savoir plus, consultez la section Autres facteurs ayant une incidence sur les performances dans la documentation sur les disques persistants.
Vous pouvez activer les performances réseau par VM de niveau 1 avec des types de machines à usage général et optimisés pour le calcul, qui offrent des bandes passantes réseau plus élevées.
Sortie vers une adresse IP interne de destination
Du point de vue d'une VM émettrice, Google Cloud limite la sortie maximale possible à l'adresse IP interne de destination en fonction du type de machine de la VM émettrice. Les adresses IP internes sont celles d'un réseau VPC, d'un réseau VPC différent connecté à l'aide de l'appairage de réseaux VPC, ou d'un réseau connecté à votre réseau VPC à l'aide de Cloud VPN ou de Cloud Interconnect.
La liste suivante classe le trafic entre plusieurs VM, en utilisant les sources et les destinations d'adresses IP internes, de la bande passante la plus élevée possible à la plus basse :
- Entre plusieurs VM d'une même zone
- Entre des VM situées dans différentes zones de la même région
- Entre des VM situées dans différentes zones de différentes régions
- Depuis une VM vers les API et services Google à l'aide de Private Service Connect
Lors de l'envoi de trafic depuis une VM vers une adresse IP interne située sur un autre réseau VPC connecté à l'aide de tunnels Cloud VPN, la bande passante de sortie est limitée au débit de données maximal d'un tunnel Cloud VPN.
Pour utiliser pleinement la bande passante de plusieurs tunnels et le routage ECMP, vous devez utiliser plusieurs connexions TCP (cinq tuples uniques). Un hachage à cinq tuples est constitué d'un protocole, d'une adresse IP source, d'un port source, d'une adresse IP de destination et d'un port de destination.
Sortie vers une adresse IP externe de destination
Du point de vue d'une VM émettrice, Google Cloud limite le trafic sortant envoyé à une adresse IP externe ou publique à l'une des valeurs suivantes dès qu'elle est atteinte. Une adresse IP externe est routable publiquement : une adresse IP externe d'une ressource Google Cloud ou une adresse sur Internet.
- 25 Gbit/s, au total, pour tous les flux de paquets et connexions sur les VM avec mise en réseau de niveau 1
- 7 Gbit/s, au total, pour tous les flux de paquets et connexions sur les VM sans mise en réseau de niveau 1
- 3 Gbit/s par flux (hachage unique à cinq tuples)
Vous pouvez associer une adresse IP externe à une VM Google Cloud dans l'une des capacités suivantes :
- Vous pouvez attribuer une adresse IP externe à l'interface réseau d'une VM.
- Une règle de transfert externe utilisée pour le transfert de protocole nécessite une adresse IP externe.
- L'adresse IP d'une règle de transfert d'un équilibreur de charge TCP/UDP nécessite une adresse IP externe.
- Les adresses IP externes sont associées à une passerelle Cloud NAT.
Par exemple, même si une instance n2-standard-16
possède une limite de bande passante de sortie de 32 Gbit/s, la bande passante de sortie totale vers Internet est limitée à 7 Gbit/s.
Quotas et limites de sortie agrégées par projet
Google Cloud applique également les éléments suivants pour les projets :
Bande passante de sortie Internet maximale de toutes les VM dans chaque région vers des adresses IP externes en dehors de Google Cloud : cette limite est définie par le quota de bande passante de sortie Internet de chaque région.
Bande passante de sortie maximale de toutes les VM dans une région donnée vers toutes les autres régions Google Cloud : s'applique au trafic envoyé à à la fois vers des adresses IP internes de destination et des adresses IP externes de destination. Cette limite est calculée par télémétrie interne et il est peu probable qu'elle restreigne la bande passante interrégionale pour la plupart des projets. Pour toute question concernant l'obtention de la bande passante régionale requise, contactez votre équipe commerciale.
Bande passante d'entrée
Google Cloud gère le trafic entrant vers une VM différemment suivant que la destination du paquet est une adresse IP interne ou externe.
Entrée vers une adresse IP interne de destination
Google Cloud n'applique aucune restriction intentionnelle au trafic entrant vers une adresse IP interne associée. Une VM peut recevoir autant de trafic interne que le permettent son type de machine, son système d'exploitation, et d'autres conditions et ressources réseau. Une adresse IP interne associée correspond à l'un des éléments suivants :
- L'adresse IP interne principale de l'interface réseau d'une VM
- Une adresse IP d'alias issue d'une plage d'adresses IP d'alias attribuée à l'interface réseau d'une VM
- L'adresse IP d'une règle de transfert interne utilisée pour le transfert de protocole interne
- L'adresse IP d'une règle de transfert d'un équilibreur de charge TCP/UDP interne
Entrée vers une adresse IP externe de destination
Google Cloud limite le trafic entrant envoyé à l'adresse IP externe associée d'une VM suivant le premier débit atteint parmi les suivants :
- 1 800 000 paquets par seconde
- 20 Gbit/s.
Dans le contexte de cette limitation, une adresse IP externe associée correspond à l'un des éléments suivants :
- Une adresse IP externe attribuée à l'interface réseau d'une VM
- L'adresse IP d'une règle de transfert externe utilisée pour le transfert de protocole externe
- L'adresse IP d'une règle de transfert d'un équilibreur de charge réseau TCP/UDP
- Des réponses entrantes établies traitées par Cloud NAT
En ce qui concerne les deux dernières définitions d'une adresse IP externe associée, notez que si une adresse IP externe est partagée entre plusieurs VM, Google Cloud limite le trafic entrant individuellement pour chaque VM de backend.
Files d'attente de réception et de transmission
Chaque carte d'interface réseau de VM se voit attribuer un nombre de files d'attente de réception et de transmission pour le traitement des paquets à partir du réseau.
- File d'attente de réception (RX) : file d'attente pour recevoir les paquets. Lorsque la carte d'interface réseau reçoit un paquet du réseau, elle sélectionne le descripteur d'un paquet entrant dans la file d'attente, le traite et le transmet au système d'exploitation invité par le biais d'une file d'attente de paquets associée à un cœur de processeur virtuel via une interruption. Si la file d'attente RX est pleine et qu'aucun tampon n'est disponible pour placer un paquet, le paquet est supprimé. Cela peut généralement se produire si une application surutilise un cœur de processeur virtuel également associé à la file d'attente de paquets sélectionnée.
- File d'attente de transmission (TX) : file d'attente pour transmettre des paquets. Lorsque le système d'exploitation invité envoie un paquet, un descripteur est alloué et placé dans la file d'attente TX. La carte d'interface réseau traite ensuite le descripteur et transmet le paquet.
Allocation de file d'attente par défaut
Sauf si vous attribuez explicitement un nombre de files d'attente aux cartes d'interface réseau, vous pouvez modéliser l'algorithme utilisé par Google Cloud pour attribuer un nombre fixe de files d'attente RX et TX par carte d'interface réseau de la manière suivante :
Utilisez l'une des méthodes suivantes, en fonction du type d'interface réseau :
- VirtIO : divisez le nombre de processeurs virtuels par le nombre de cartes d'interface réseau et supprimez le reste : [
number of vCPUs/number of NICs
]. - GVNIC : divisez le nombre de processeurs virtuels par le nombre de cartes d'interface réseau, puis divisez le résultat par 2 et supprimez le reste : [
number of vCPUs/number of NICs/2
].
Ce calcul donne toujours un nombre entier (et non une fraction).
- VirtIO : divisez le nombre de processeurs virtuels par le nombre de cartes d'interface réseau et supprimez le reste : [
Si le nombre calculé est inférieur à 1, attribuez plutôt une file d'attente à chaque carte d'interface réseau.
Déterminez si le nombre calculé est supérieur au nombre maximal de files d'attente par carte d'interface réseau. Le nombre maximal de files d'attente par carte d'interface réseau dépend du type de pilote :
- Avec virtIO ou un pilote personnalisé, le nombre maximal de files d'attente par carte d'interface réseau est de
32
. Si le nombre calculé est supérieur à32
, ignorez le nombre calculé et attribuez 32 files d'attente à chaque carte d'interface réseau. - Avec gvNIC, le nombre maximal de files d'attente par carte d'interface réseau est de
16
. Si le nombre calculé est supérieur à16
, ignorez le nombre calculé et attribuez 16 files d'attente à chaque carte d'interface réseau.
- Avec virtIO ou un pilote personnalisé, le nombre maximal de files d'attente par carte d'interface réseau est de
Les exemples suivants montrent comment calculer le nombre de files d'attente par défaut :
Si une VM utilise VirtIO et comporte 16 processeurs virtuels et 4 cartes d'interface réseau, le nombre calculé est
[16/4] = 4
. Google Cloud attribue quatre files d'attente à chaque carte d'interface réseau.Si une VM utilise GVNIC et dispose de 128 processeurs virtuels et de deux cartes d'interface réseau, le nombre calculé est
[128/2/2] = 32
. Google Cloud attribue à chaque carte le nombre maximal de files d'attente par carte d'interface réseau possible. Google Cloud attribue16
files d'attente par carte d'interface réseau.
Sur les systèmes Linux, vous pouvez utiliser ethtool
pour configurer une carte réseau avec moins de files d'attente que le nombre de files d'attente par carte d'interface réseau attribué par Google Cloud.
Allocation de file d'attente personnalisée
Au lieu de l'allocation de file d'attente par défaut, vous pouvez attribuer un nombre personnalisé de files d'attente (à la fois RX et TX) à chaque carte d'interface réseau lorsque vous créez une VM à l'aide de l'API Compute Engine.
Le nombre de files d'attente personnalisées que vous spécifiez doit respecter les règles suivantes :
Le nombre minimal de files d'attente que vous pouvez attribuer par carte d'interface réseau est de 1.
Le nombre maximal de files d'attente que vous pouvez attribuer est inférieur au nombre de processeurs virtuels ou au nombre maximal de files d'attente par carte d'interface réseau, en fonction du type de pilote :
Si vous attribuez des nombres de files d'attente personnalisés à toutes les cartes d'interface réseau de la VM, la somme de vos attributions de files d'attente doit être inférieure ou égale au nombre de processeurs virtuels attribués à l'instance de VM.
Par exemple :
Si une VM comporte 8 processeurs virtuels et 3 cartes d'interface réseau, le nombre maximal de files d'attente pour la VM correspond au nombre de processeurs virtuels, soit 8. Vous pouvez attribuer 1 file d'attente à
nic0
, 4 files d'attente ànic1
et 3 files d'attente ànic2
. Dans cet exemple, vous ne pouvez pas attribuer ensuite 4 files d'attente ànic2
tout en conservant les 2 autres files d'attente, car la somme des files d'attente attribuées ne peut pas dépasser le nombre de processeurs virtuels (8).Si une VM comporte 96 processeurs virtuels et 2 cartes d'interface réseau, vous pouvez attribuer jusqu'à 32 files d'attente à chaque carte d'interface réseau lorsque vous utilisez le pilote virtIO, ou jusqu'à 16 files d'attente lorsque vous utilisez le pilote gvNIC. Dans cet exemple, la somme des files d'attente attribuées est toujours inférieure au nombre de processeurs virtuels.
Il est également possible d'attribuer un nombre de files d'attente personnalisé à certaines cartes d'interface réseau uniquement, ce qui permet à Google Cloud d'attribuer des files d'attente aux cartes d'interface réseau restantes. Le nombre de files d'attente que vous pouvez attribuer par carte d'interface réseau est toujours soumis aux règles ci-dessus. Vous pouvez modéliser la faisabilité de votre configuration et, si votre configuration est possible, le nombre de files d'attente attribuées par Google Cloud aux cartes d'interface réseau restantes avec ce processus :
Calculez la somme des files d'attente pour les cartes d'interface réseau à l'aide de l'attribution de files d'attente personnalisée. Pour un exemple de VM avec 20 processeurs virtuels et 6 cartes d'interface réseau, supposons que vous souhaitez attribuer 5 files d'attente à
nic0
, 6 files d'attente ànic1
, 4 files d'attente ànic2
, puis laisser Google Cloud attribuer les files d'attente pournic3
,nic4
etnic5
. Dans cet exemple, la somme des files d'attente attribuées de manière personnalisée est5+6+4 = 15
.Soustrayez la somme des files d'attente personnalisées aux nombres de processeurs virtuels. Si la différence n'est pas au moins égale au nombre de cartes d'interface réseau restantes auxquelles Google Cloud doit attribuer des files d'attente, Google Cloud renvoie une erreur. En reprenant l'exemple de VM de 20 processeurs virtuels et une somme de
15
files d'attente personnalisées, Google Cloud dispose de20-15 = 5
files d'attente restantes à attribuer aux cartes d'interface réseau restantes (nic3
,nic4
,nic5
).Divisez la différence de l'étape précédente par le nombre de cartes d'interface réseau restantes et supprimez le reste :
⌊(number of vCPUs - sum of assigned queues)/(number of remaining NICs)⌋
. Ce calcul donne toujours un nombre entier (et non une fraction) au moins égal à un en raison de la contrainte expliquée à l'étape précédente. Google Cloud attribue à chaque carte réseau restante un nombre de files d'attente correspondant au nombre calculé, à condition que le nombre calculé ne dépasse pas le nombre maximal de files d'attente par carte d'interface réseau. Le nombre maximal de files d'attente par carte d'interface réseau dépend du type de pilote :- En utilisant virtIO ou un pilote personnalisé, si le nombre de files d'attente calculé pour chaque carte d'interface réseau restante est supérieur à
32
, Google Cloud attribue32
files d'attente à chaque carte d'interface réseau restante. - En utilisant gvNIC, si le nombre de files d'attente calculé pour chaque carte d'interface réseau restante est supérieur à
16
, Google Cloud attribue16
files d'attente à chaque carte d'interface réseau restante.
- En utilisant virtIO ou un pilote personnalisé, si le nombre de files d'attente calculé pour chaque carte d'interface réseau restante est supérieur à
API
Créez une VM avec un nombre de files d'attente spécifique pour les cartes d'interface réseau à l'aide de la méthode instances.insert.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "machineTypes/MACHINE_TYPE" "networkInterfaces": [ { "network": string, "subnetwork": string, "networkIP": string, "name": string, "queueCount": "QUEUE_SIZE", .... ], } ], }
Remplacez les éléments suivants :
PROJECT_ID
: ID du projet dans lequel créer la VMZONE
: zone dans laquelle créer la VMMACHINE_TYPE
: type de machine prédéfini ou personnalisé pour la nouvelle VMVM_NAME
: nom de la nouvelle VMQUEUE_SIZE
: nombre de files d'attente pour la carte d'interface réseau, sous réserve des règles décrites dans cette section.
Allocations de file d'attente et modification du type de machine
Si vous arrêtez une instance de VM et modifiez son type de machine, et que le nouveau type de machine possède un nombre différent de processeurs virtuels, Google Cloud ne modifie pas les attributions de files d'attente par carte d'interface réseau. Les attributions de files d'attente par défaut ou personnalisées pour les cartes d'interface réseau ne sont définies que lors de la création d'une VM.
Étapes suivantes
- Types de machines
- Instances de machines virtuelles
- Créer et démarrer une instance de VM
- Performances réseau Tier_1 par VM
- Démarrage rapide à l'aide d'une VM Linux
- Démarrage rapide à l'aide d'une VM Windows