Google Cloud tiene conto della larghezza di banda per istanza di computing, non per interfaccia di rete virtuale (vNIC) o indirizzo IP. Il tipo di macchina di un'istanza definisce la velocità di uscita massima possibile; tuttavia, puoi raggiungere questa velocità di uscita massima possibile solo in situazioni specifiche.
Questa pagina descrive i limiti di larghezza di banda della rete, utili per pianificare le implementazioni. Classifica la larghezza di banda utilizzando due dimensioni:
- Uscita o ingresso: come utilizzato in questa pagina, uscita e ingresso sono sempre
dal punto di vista di un'istanza Google Cloud :
- I pacchetti inviati da un'istanza compongono il traffico in uscita. Google Cloud
- I pacchetti inviati a un'istanza costituiscono il suo traffico in entrata. Google Cloud
- Come viene instradato il pacchetto: un pacchetto può essere instradato da un'istanza di invio o a un'istanza di ricezione utilizzando route i cui hop successivi si trovano all'interno di una rete VPC o route al di fuori di una rete VPC.
Tutte le informazioni riportate in questa pagina si applicano alle istanze di calcolo di Compute Engine, nonché ai prodotti che dipendono dalle istanze di Compute Engine. Ad esempio, un nodo Google Kubernetes Engine è un'istanza Compute Engine.
Configurazioni che influiscono sulla larghezza di banda della rete
Per ottenere la massima larghezza di banda in entrata e in uscita possibile, configura le prestazioni di rete Tier_1 per VM per la tua istanza di Compute.
Né le interfacce di rete virtuali (vNIC) aggiuntive né gli indirizzi IP aggiuntivi per vNIC aumentano la larghezza di banda in entrata o in uscita per un'istanza di calcolo. Ad esempio, una VM C3 con 22 vCPU è limitata a 23 Gbps di larghezza di banda in uscita totale. Se configuri la VM C3 con due vNIC, la VM è comunque limitata a una larghezza di banda di uscita totale di 23 Gbps, non a una larghezza di banda di 23 Gbps per vNIC.
Le interfacce di rete dinamiche (anteprima) utilizzano la larghezza di banda della vNIC padre. Non è presente isolamento del traffico all'interno di una vNIC principale. Il traffico di rete di una NIC dinamica può esaurire le altre NIC dinamiche associate alla stessa vNIC padre. Per evitare questo conflitto, puoi utilizzare il controllo del traffico (TC) di Linux per creare criteri di gestione del traffico specifici per le applicazioni. Queste norme aiutano a implementare l'equità o determinati tipi di priorità. Per la definizione delle priorità, mappi il traffico (ad esempio per le NIC dinamiche) a una classe di traffico e poi mappi questa classe di traffico a una qualità del servizio. Per un esempio di questo approccio, consulta Traffic shaping con Red Hat.
Le NIC dinamiche non sono supportate per le istanze Compute Engine che eseguono un sistema operativo Windows.
Riepilogo della larghezza di banda
La seguente tabella illustra la larghezza di banda massima possibile in base al fatto che un pacchetto venga inviato da (uscita) o ricevuto da (ingresso) un'istanza di calcolo e al metodo di routing dei pacchetti.
Limiti di larghezza di banda in uscita
Routing all'interno di una rete VPC |
|
---|---|
Routing all'esterno di una rete VPC |
|
Limiti di larghezza di banda in entrata
Routing all'interno di una rete VPC |
|
---|---|
Routing all'esterno di una rete VPC |
|
Larghezza di banda in uscita
Google Cloud limita la larghezza di banda in uscita utilizzando le tariffe di uscita massime per istanza. Queste tariffe si basano sul tipo di macchina dell'istanza di computing che invia il pacchetto e sul fatto che la destinazione del pacchetto sia accessibile utilizzando le route all'interno di una rete VPC o le route al di fuori di una rete VPC. La larghezza di banda in uscita include i pacchetti emessi da tutte le NIC dell'istanza e i dati trasferiti a tutti i volumi Hyperdisk e di Persistent Disk collegati all'istanza.
Larghezza di banda in uscita massima per istanza
La larghezza di banda in uscita massima per istanza è in genere di 2 Gbps per vCPU, ma esistono alcune differenze ed eccezioni, a seconda della serie di macchine. La seguente tabella mostra l'intervallo dei limiti massimi per la larghezza di banda in uscita per il traffico instradato all'interno di una rete VPC.
La tabella seguente riassume la larghezza di banda di uscita massima per ogni serie di macchine. Puoi trovare la larghezza di banda di uscita massima per istanza per ogni tipo di macchina elencato nella pagina della famiglia di macchine specifica (utilizzando i link per ogni serie di macchine nella tabella).
Limite massimo di uscita per istanza | ||
---|---|---|
Serie di macchine | Standard | Networking Tier_1 |
C4, C4A, e C4D | 100 Gbps | 200 Gbps |
C3 e C3D | 100 Gbps | 200 Gbps |
C2 e C2D | 32 Gbps | 100 Gbps |
E2 | 16 Gbps | N/D |
E2 con core condiviso | 2 Gbps | N/D |
H3 | 200 Gbps | N/D |
M4 | 100 Gbps | 200 Gbps |
M3 | 32 Gbps | 100 Gbps |
M2 | 32 Gbps su CPU Intel Cascade Lake o versioni successive 16 Gbps su altre piattaforme CPU |
N/D |
M1 | 32 Gbps | N/D |
N4 | 50 Gbps | N/D |
N2 ed N2D | 32 Gbps | 100 Gbps |
N1 (escluse le VM con 1 vCPU) | 32 Gbps su CPU Intel Skylake e successive 16 Gbps su piattaforme CPU precedenti |
N/D |
Tipi di macchine N1 con 1 vCPU | 2 Gbps | N/D |
N1 con core condiviso (f1-micro e g1-small) | 1 Gbps | N/D |
T2A e T2D | 32 Gbps | N/D |
X4 | 100 Gbps | N/D |
Z3 | 100 Gbps | 200 Gbps |
Per informazioni sulla larghezza di banda di rete per le serie di macchine ottimizzate per l'acceleratore, consulta Networking e macchine GPU.
La larghezza di banda in uscita massima per istanza non è una garanzia. La larghezza di banda di uscita effettiva può essere ridotta in base a fattori quali il seguente elenco non esaustivo:
- Utilizzo di VirtIO anziché gVNIC con istanze di calcolo che supportano entrambi
- Dimensione pacchetto
- Overhead del protocollo
- Il numero di flussi
- Impostazioni del driver Ethernet del sistema operativo guest dell'istanza di calcolo, ad esempio checksum offload e TCP segmentation offload (TSO)
- Congestione della rete
- In una situazione in cui gli I/O di Persistent Disk competono con altro traffico di uscita di rete, il 60% della larghezza di banda di rete massima viene assegnato alle scritture di Persistent Disk, lasciando il 40% per altro traffico di uscita di rete. Per ulteriori dettagli, consulta Fattori che influiscono sulle prestazioni del disco.
Per ottenere la larghezza di banda in uscita massima per istanza più elevata possibile:
- Abilita le prestazioni di rete Tier_1 per VM con tipi di macchine più grandi.
- Utilizza l'unità massima di trasmissione (MTU) della rete VPC più grande supportata dalla topologia di rete. MTU più grandi possono ridurre l'overhead dell'intestazione del pacchetto e aumentare il throughput dei dati del payload.
- Utilizza la versione più recente del driver gVNIC.
- Utilizza serie di macchine di terza generazione o successive che utilizzano Titanium per trasferire l'elaborazione di rete dalla CPU host.
Traffico in uscita verso destinazioni instradabili all'interno di una rete VPC
Dal punto di vista di un'istanza di invio e per gli indirizzi IP di destinazione accessibili tramite route all'interno di una rete VPC, Google Cloud limita il traffico in uscita utilizzando queste regole:
- Larghezza di banda in uscita massima per VM:la larghezza di banda in uscita massima per istanza descritta nella sezione Larghezza di banda in uscita massima per istanza.
- Larghezza di banda in uscita tra regioni per progetto:se un'istanza di invio e una destinazione interna o il relativo hop successivo si trovano in regioni diverse,Google Cloud impone una quota in base alla regione e al progetto dell'istanza di invio e alla regione della destinazione interna o dell'hop successivo. Per ulteriori informazioni su questa quota, consulta Larghezza di banda di uscita di rete tra regioni (Mbps) dalle istanze di Compute nella documentazione relativa a quote e limiti VPC.
- Limiti di Cloud VPN e Cloud Interconnect:quando invii
traffico da un'istanza a un indirizzo IP interno di destinazione instradabile da un
tunnel Cloud VPN o un collegamento VLAN Cloud Interconnect di hop successivo, la larghezza di banda di uscita è limitata da:
- Velocità massima dei pacchetti e larghezza di banda per tunnel Cloud VPN
- Quantità massima di pacchetti e larghezza di banda per collegamento VLAN
- Per utilizzare completamente la larghezza di banda di più tunnel Cloud VPN di hop successivo o collegamenti VLAN Cloud Interconnect utilizzando il routing ECMP, devi utilizzare più connessioni TCP (tuple a 5 elementi uniche).
Le destinazioni instradabili all'interno di una rete VPC includono tutte le seguenti destinazioni, ognuna delle quali è accessibile dal punto di vista dell'istanza di invio tramite una route il cui hop successivo non è il gateway internet predefinito:
- Indirizzi IPv4 interni a livello di regione negli
intervalli di indirizzi IPv4 primari e secondari della subnet,
inclusi gli intervalli di indirizzi IPv4 privati e gli intervalli di indirizzi IPv4 pubblici utilizzati privatamente, utilizzati da queste risorse di destinazione:
- L'indirizzo IPv4 interno principale dell'interfaccia di rete (vNIC) di un'istanza di ricezione. Quando un'istanza di invio si connette all'indirizzo IPv4 esterno della vNIC di un'altra istanza, i pacchetti vengono instradati utilizzando un gateway internet predefinito di hop successivo, pertanto si applica l'uscita verso destinazioni esterne a una rete VPC.
- Un indirizzo IPv4 interno in un intervallo IP alias della vNIC di un'istanza di ricezione.
- Un indirizzo IPv4 interno di una regola di forwarding interna per il forwarding del protocollo o per un bilanciatore del carico di rete passthrough interno.
- Indirizzi IPv4 interni globali per queste risorse di destinazione:
- Intervalli di indirizzi di subnet IPv6 interni utilizzati da
queste risorse di destinazione:
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
assegnato alla vNIC di un'istanza di ricezione dual-stack o solo IPv6 (anteprima). - Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
di una regola di forwarding interno per il forwarding del protocollo o per un bilanciatore del carico di rete passthrough interno.
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
- Intervalli di indirizzi delle subnet IPv6 esterne utilizzati da
queste risorse di destinazione quando i pacchetti vengono instradati utilizzando route di subnet
o route di subnet in peering all'interno della rete VPC o da route personalizzate
all'interno della rete VPC che non utilizzano l'hop successivo del gateway internet predefinito:
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
assegnato alla vNIC di un'istanza di ricezione dual-stack o solo IPv6 (anteprima). - Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
di una regola di forwarding esterno per il forwarding del protocollo o per un bilanciatore del carico di rete passthrough esterno.
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
- Altre destinazioni accessibili utilizzando le seguenti route di rete VPC:
- Route dinamiche
- Route statiche tranne quelle che utilizzano un hop successivo del gateway internet predefinito
- Route personalizzate di peering
Il seguente elenco classifica il traffico dalle istanze di invio alle destinazioni interne, dalla larghezza di banda più alta a quella più bassa:
- Tra le istanze di computing nella stessa zona
- Tra istanze di computing in zone diverse della stessa regione
- Tra istanze di computing in regioni diverse
- Da un'istanza di Compute alle API e ai servizi utilizzando l'accesso privato Google o l'accesso alle API di Google dall'indirizzo IP esterno di un'istanza. Google Cloud Sono inclusi gli endpoint Private Service Connect per le API di Google.
Traffico in uscita verso destinazioni esterne a una rete VPC
Dal punto di vista di un'istanza di invio e per gli indirizzi IP di destinazione al di fuori di una rete VPC, Google Cloud limita il traffico in uscita alla velocità raggiunta per prima tra le seguenti:
Larghezza di banda in uscita per istanza:la larghezza di banda massima per tutte le connessioni da un'istanza di computing a destinazioni esterne a una rete VPC è la minore tra la larghezza di banda in uscita massima per istanza e una di queste velocità:
- 25 Gbps, se il networking Tier_1 è abilitato
- 7 Gbps, se la funzionalità Tier_1 networking non è abilitata
- 1 Gbps per le istanze H3
- 7 Gbps per NIC fisica per le serie di macchine che supportano più NIC fisiche, come A3.
Ad esempio, anche se un'istanza
c3-standard-44
ha una larghezza di banda in uscita massima per VM di 32 Gbps, la larghezza di banda in uscita per VM da una VMc3-standard-44
a destinazioni esterne è di 25 Gbps o 7 Gbps, a seconda che sia attivato Tier_1 networking.Velocità di uscita massima per flusso:la larghezza di banda massima per ogni connessione a 5 tuple univoca, da un'istanza di Compute a una destinazione al di fuori di una rete VPC, è di 3 Gbps, tranne che su H3, dove è di 1 Gbps.
Larghezza di banda del traffico in uscita da internet per progetto:la larghezza di banda massima per tutte le connessioni dalle istanze di computing in ogni regione di un progetto alle destinazioni esterne a una rete VPC è definita dalle quote di larghezza di banda del traffico in uscita da internet del progetto.
Le destinazioni al di fuori di una rete VPC includono tutte le seguenti destinazioni, ognuna delle quali è accessibile tramite una route nella rete VPC dell'istanza di invio il cui hop successivo è il gateway internet predefinito:
- Indirizzi IPv4 e IPv6 esterni globali per bilanciatori del carico di rete proxy esterni e bilanciatori del carico delle applicazioni esterni
- Indirizzi IPv4 esterni a livello di regione per le risorse, inclusi gli indirizzi IPv4 esterni delle vNIC delle VM, gli indirizzi IPv4 esterni per l'inoltro di protocolli esterni, i bilanciatori del carico di rete pass-through esterni e i pacchetti di risposta ai gateway Cloud NAT. Google Cloud
- Indirizzi IPv6 esterni a livello di regione in subnet a doppio stack o solo IPv6 (anteprima) con intervalli di indirizzi IPv6 esterni utilizzati da indirizzi IPv6 esterni di istanze a doppio stack o solo IPv6 (anteprima), inoltro di protocollo esterno e bilanciatori del carico di rete passthrough esterni. La subnet deve trovarsi in una rete VPC separata e non in peering. L'intervallo di indirizzi IPv6 di destinazione deve essere accessibile utilizzando una route nella rete VPC dell'istanza di invio il cui hop successivo è il gateway internet predefinito. Se una subnet a doppio stack o solo IPv6 con un intervallo di indirizzi IPv6 esterni si trova nella stessa rete VPC o in una rete VPC in peering, consulta Egress verso destinazioni instradabili all'interno di una rete VPC.
- Altre destinazioni esterne accessibili utilizzando una route statica nella rete VPC dell'istanza di invio, a condizione che l'hop successivo per la route sia il gateway internet predefinito.
Per informazioni dettagliate su quali risorse Google Cloud utilizzano quali tipi di indirizzi IP esterni, consulta Indirizzi IP esterni.
Larghezza di banda in entrata
Google Cloud gestisce la larghezza di banda in entrata (ingress) a seconda di come il pacchetto in entrata viene indirizzato a un'istanza di calcolo ricevente.
Ingresso alle destinazioni instradabili all'interno di una rete VPC
Un'istanza di ricezione può gestire tutti i pacchetti in entrata consentiti dal tipo di macchina, dal sistema operativo e da altre condizioni di rete. Google Cloud non implementa alcuna limitazione della larghezza di banda intenzionale sui pacchetti in entrata inviati a un'istanza se il pacchetto in entrata viene inviato utilizzando route all'interno di una rete VPC:
- Route subnet nella rete VPC dell'istanza di ricezione
- Route subnet di peering in una rete VPC in peering
- Route in un'altra rete i cui hop successivi sono tunnel Cloud VPN, collegamenti Cloud Interconnect (VLAN) o istanze di appliance router situate nella rete VPC dell'istanza di ricezione
Le destinazioni per i pacchetti instradati all'interno di una rete VPC includono:
- L'indirizzo IPv4 interno principale dell'interfaccia di rete (NIC) dell'istanza di ricezione. Gli indirizzi IPv4 interni principali sono indirizzi IPv4 interni regionali che provengono da un intervallo di indirizzi IPv4 principali della subnet.
- Un indirizzo IPv4 interno da un intervallo IP alias della NIC dell'istanza di ricezione. Gli intervalli IP alias possono provenire dall'intervallo di indirizzi IPv4 primario di una subnet o da uno dei suoi intervalli di indirizzi IPv4 secondari.
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
assegnato a una NIC di un'istanza di ricezione a doppio stack o solo IPv6 (anteprima). Gli intervalli IPv6 delle istanze di computing possono provenire da questi intervalli IPv6 della subnet:- Un intervallo di indirizzi IPv6 interno.
- Un intervallo di indirizzi IPv6 esterni quando il pacchetto in entrata viene instradato internamente all'istanza di ricezione utilizzando una delle route di rete VPC elencate in precedenza in questa sezione.
- Un indirizzo IPv4 interno di una regola di forwarding utilizzata dal forwarding del protocollo interno all'istanza di ricezione o al bilanciatore del carico di rete passthrough interno in cui l'istanza di ricezione è un backend del bilanciatore del carico. Gli indirizzi IPv4 regola di forwarding interne provengono dall'intervallo di indirizzi IPv4 principale di una subnet.
- Un indirizzo IPv6 dell'intervallo IPv6
/96
di una regola di forwarding utilizzata dal forwarding del protocollo interno all'istanza di ricezione o al bilanciatore del carico di rete passthrough interno in cui l'istanza di ricezione è un backend del bilanciatore del carico. Gli indirizzi IPv6 regola di forwarding interne provengono da un intervallo di indirizzi IPv6 interni di una subnet. - Un indirizzo IPv6 esterno dell'intervallo IPv6
/96
di una regola di forwarding utilizzata dal forwarding del protocollo esterno all'istanza di ricezione o al bilanciatore del carico di rete passthrough esterno. L'istanza di ricezione è un backend del bilanciatore del carico quando il pacchetto in entrata viene instradato all'interno della rete VPC utilizzando una delle route elencate in precedenza in questa sezione. Gli indirizzi IPv6 regola di forwarding esterno provengono dall'intervallo di indirizzi IPv6 esterni di una subnet. - Un indirizzo IP all'interno dell'intervallo di destinazione di una route statica personalizzata che utilizza l'istanza di ricezione come istanza di hop successivo (
next-hop-instance
onext-hop-address
). - Un indirizzo IP all'interno dell'intervallo di destinazione di una route statica personalizzata che utilizza un hop successivo del bilanciatore del carico di rete passthrough interno (
next-hop-ilb
), se l'istanza ricevente è un backend per quel bilanciatore del carico.
Ingresso verso destinazioni esterne a una rete VPC
Google Cloud implementa i seguenti limiti di larghezza di banda per i pacchetti in entrata recapitati a un'istanza di ricezione utilizzando route al di fuori di una rete VPC. Quando è coinvolto il bilanciamento del carico, i limiti di larghezza di banda vengono applicati singolarmente a ogni istanza di ricezione.
Per le serie di macchine che non supportano più NIC fisiche, la limitazione della larghezza di banda in entrata applicabile si applica collettivamente a tutte le interfacce di rete virtuali (vNIC). Il limite è la prima delle seguenti tariffe riscontrate:
- 1.800.000 pacchetti al secondo
- 30 Gbps
Per le serie di macchine che supportano più NIC fisiche, come A3, la limitazione della larghezza di banda in entrata applicabile si applica individualmente a ogni NIC fisica. Il limite è la prima delle seguenti tariffe riscontrate:
- 1.800.000 pacchetti al secondo per NIC fisica
- 30 Gbps per NIC fisica
Le destinazioni per i pacchetti instradati utilizzando route al di fuori di una rete VPC includono:
- Un indirizzo IPv4 esterno assegnato in una configurazione di accesso NAT uno-a-uno su una delle interfacce di rete (NIC) dell'istanza di ricezione.
- Un indirizzo IPv6 esterno dall'intervallo di indirizzi IPv6
/96
assegnato a una vNIC di un'istanza di ricezione a doppio stack o solo IPv6 (anteprima) quando il pacchetto in entrata viene instradato utilizzando una route al di fuori della rete VPC dell'istanza di ricezione. - Un indirizzo IPv4 esterno di una regola di forwarding utilizzata dal forwarding del protocollo esterno all'istanza di ricezione o al bilanciatore del carico di rete passthrough esterno in cui l'istanza di ricezione è un backend del bilanciatore del carico.
- Un indirizzo IPv6 esterno dell'intervallo IPv6
/96
di una regola di forwarding utilizzata dal forwarding del protocollo esterno all'istanza di ricezione o al bilanciatore del carico di rete passthrough esterno. L'istanza di ricezione deve essere un backend del bilanciatore del carico quando il pacchetto in entrata viene instradato utilizzando una route esterna a una rete VPC. - Risposte in entrata stabilite elaborate da Cloud NAT.
Utilizzare i frame jumbo per massimizzare la larghezza di banda della rete
Per ricevere e inviare frame jumbo, configura la rete VPC utilizzata dalle tue istanze di Compute; imposta l'unità massima di trasmissione (MTU) su un valore più grande, fino a 8896.
Valori MTU più elevati aumentano le dimensioni dei pacchetti e riducono l'overhead dell'intestazione del pacchetto, il che aumenta la velocità effettiva dei dati utili.
Puoi utilizzare i jumbo frame con il driver gVNIC versione 1.3 o successive sulle istanze VM oppure con il driver IDPF sulle istanze bare metal. Non tutte le immagini pubbliche di Google Cloud includono questi driver. Per maggiori informazioni sul supporto dei jumbo frame da parte del sistema operativo, consulta la scheda Funzionalità di rete nella pagina Dettagli del sistema operativo.
Se utilizzi un'immagine del sistema operativo che non supporta completamente i jumbo frame, puoi installare manualmente la versione 1.3.0 o successive del driver gVNIC. Google
consiglia di installare la versione del driver gVNIC contrassegnata con Latest
per beneficiare di
funzionalità aggiuntive e correzioni di bug. Puoi scaricare i driver gVNIC da
GitHub.
Per aggiornare manualmente la versione del driver gVNIC nel sistema operativo guest, consulta la sezione Utilizzo su sistemi operativi non supportati.
Frame jumbo e macchine GPU
Per i tipi di macchina GPU, utilizza le impostazioni MTU consigliate per i frame Jumbo. Per maggiori informazioni, consulta Impostazioni MTU consigliate per i Jumbo Frame.
Ricevere e trasmettere code
A ogni NIC o vNIC per un'istanza di calcolo viene assegnato un numero di code di ricezione e trasmissione per l'elaborazione dei pacchetti dalla rete.
- Coda di ricezione (RX): coda per la ricezione dei pacchetti. Quando la NIC riceve un pacchetto dalla rete, seleziona il descrittore per un pacchetto in entrata dalla coda, lo elabora e lo consegna al sistema operativo guest tramite una coda di pacchetti collegata a un core vCPU utilizzando un interrupt. Se la coda RX è piena e non è disponibile alcun buffer per inserire un pacchetto, quest'ultimo viene eliminato. In genere, questo può accadere se un'applicazione utilizza eccessivamente un core vCPU collegato anche alla coda di pacchetti selezionata.
- Coda di trasmissione (TX): coda per la trasmissione dei pacchetti. Quando il sistema operativo guest invia un pacchetto, viene allocato un descrittore e inserito nella coda TX. La scheda NIC elabora quindi il descrittore e trasmette il pacchetto.
Allocazione predefinita delle code
A meno che tu non assegni esplicitamente i conteggi delle code per le NIC, puoi modellare l'algoritmo Google Cloud utilizzato per assegnare un numero fisso di code RX e TX per NIC nel seguente modo:
- Istanze bare metal
- Per le istanze bare metal, esiste una sola NIC, quindi il numero massimo di code è 16.
- Istanze VM che utilizzano l'interfaccia di rete gVNIC
Per le istanze C4, per migliorare le prestazioni, le seguenti configurazioni utilizzano un numero fisso di code:
- Per le istanze Linux con 2 vCPU, il conteggio delle code è 1.
- Per le istanze Linux con 4 vCPU, il conteggio delle code è 2.
Per le altre serie di macchine, il conteggio delle code dipende dal fatto che la serie di macchine utilizzi Titanium o meno.
Per le istanze di terza generazione (esclusa M3) e successive che utilizzano Titanium:
Dividi il numero di vCPU per il numero di vNIC (
num_vcpus/num_vnics
) e ignora il resto.Per le VM di prima e seconda generazione che non utilizzano Titanium:
Dividi il numero di vCPU per il numero di vNIC e poi dividi il risultato per 2 (
num_vcpus/num_vnics/2
). Ignora il resto.
Per completare il calcolo del conteggio predefinito della coda:
Se il numero calcolato è inferiore a 1, assegna a ogni vNIC una coda.
Determina se il numero calcolato è maggiore del numero massimo di code per vNIC, ovvero
16
. Se il numero calcolato è maggiore di16
, ignora il numero calcolato e assegna a ogni vNIC 16 code.
- Istanze VM che utilizzano l'interfaccia di rete VirtIO o un driver personalizzato
Dividi il numero di vCPU per il numero di vNIC e ignora eventuali resti:
[number of vCPUs/number of vNICs]
.Se il numero calcolato è inferiore a 1, assegna a ogni vNIC una coda.
Determina se il numero calcolato è maggiore del numero massimo di code per vNIC, ovvero
32
. Se il numero calcolato è maggiore di32
, ignora il numero calcolato e assegna a ogni vNIC 32 code.
Esempi
I seguenti esempi mostrano come calcolare il numero predefinito di code per un'istanza VM:
Se un'istanza VM utilizza VirtIO e dispone di 16 vCPU e 4 vNIC, il numero calcolato è
[16/4] = 4
. Google Cloud assegna quattro code a ogni vNIC.Se un'istanza VM utilizza gVNIC e ha 128 vCPU e due vNIC, il numero calcolato è
[128/2/2] = 32
. Google Cloud assegna a ogni vNIC il numero massimo di code per vNIC possibile. Google Cloudassegna16
code per vNIC.
Sui sistemi Linux, puoi utilizzare ethtool
per configurare una vNIC con meno code
rispetto al numero di code che Google Cloud assegna per vNIC.
Conteggi delle code quando si utilizza l'interfaccia di rete dinamica
Se utilizzi interfacce di rete dinamiche con le tue interfacce di rete, i conteggi delle code non cambiano. Una NIC dinamica non ha proprie code di ricezione e trasmissione; utilizza le stesse code della vNIC padre.
Allocazione personalizzata delle code per le istanze VM
Anziché l'allocazione predefinita delle code, puoi assegnare un conteggio personalizzato delle code (totale di RX e TX) a ogni vNIC quando crei una nuova istanza di calcolo utilizzando l'API Compute Engine.
Il numero di code personalizzate che specifichi deve rispettare le seguenti regole:
Il conteggio minimo di code che puoi assegnare per vNIC è uno.
Il numero massimo di code che puoi assegnare a ogni vNIC di un'istanza VM è il minore tra il numero di vCPU o il numero massimo di code per vNIC, in base al tipo di driver:
- Se utilizzi virtIO
o un driver personalizzato, il numero massimo di code è
32
. - Se utilizzi gVNIC, il conteggio massimo
della coda è
16
, ad eccezione di quanto segue, dove il conteggio massimo della coda è 32:- Istanze A2 o G2
- Istanze TPU
- Istanze C2, C2D, N2 o N2D con networking Tier_1 abilitato
Per le seguenti configurazioni di Confidential VM, il numero massimo di code è
8
:- AMD SEV sui tipi di macchine C2D e N2D
- AMD SEV-SNP sui tipi di macchine N2D
- Se utilizzi virtIO
o un driver personalizzato, il numero massimo di code è
Se assegni conteggi di code personalizzati a tutte le NIC dell'istanza di computing, la somma delle assegnazioni del conteggio di code deve essere inferiore o uguale al numero di vCPU assegnate all'istanza.
Puoi eseguire l'oversubscription del conteggio delle code personalizzate per le tue vNIC. In altre parole, puoi avere una somma dei conteggi delle code assegnati a tutte le NIC per la tua istanza VM superiore al numero di vCPU per la tua istanza. Per eseguire l'oversubscription del conteggio delle code personalizzate, l'istanza VM deve soddisfare le seguenti condizioni:
- Utilizza gVNIC come tipo di vNIC per tutte le NIC configurate per l'istanza.
- Utilizza un tipo di macchina che supporta la rete Tier_1.
- Ha la rete Tier_1 abilitata.
- È stato specificato un conteggio delle code personalizzato per tutte le NIC configurate per l'istanza.
Con l'oversubscription della coda, il numero massimo di code per l'istanza VM è 16 volte il numero di NIC. Pertanto, se hai configurato 6 NIC per un'istanza con 30 vCPU, puoi configurare un massimo di (16 * 6) o 96 code personalizzate per la tua istanza.
Esempi
Se un'istanza VM ha 8 vCPU e 3 vNIC, il numero massimo di code per l'istanza è il numero di vCPU, ovvero 8. Puoi assegnare 1 coda a
nic0
, 4 code anic1
e 3 code anic2
. In questo esempio, non puoi assegnare successivamente 4 code anic2
mantenendo le altre due assegnazioni di code vNIC perché la somma delle code assegnate non può superare il numero di vCPU.Se hai una VM N2 con 96 vCPU e 2 vNIC, puoi assegnare a entrambe le vNIC fino a 32 code ciascuna quando utilizzi il driver virtIO o fino a 16 code ciascuna quando utilizzi il driver gVNIC. Se abiliti il networking Tier_1 per la VM N2, puoi assegnare fino a 32 code a ogni vNIC. In questo esempio, la somma delle code assegnate è sempre inferiore o uguale al numero di vCPU.
È anche possibile assegnare un conteggio delle code personalizzato solo ad alcune NIC, consentendo aGoogle Cloud di assegnare le code alle NIC rimanenti. Il numero di code che puoi assegnare per vNIC è ancora soggetto alle regole menzionate in precedenza. Puoi modellare la fattibilità della tua configurazione e, se la tua configurazione è possibile, il numero di code che Google Cloud assegna alle vNIC rimanenti con questa procedura:
Calcola la somma delle code per le vNIC utilizzando l'assegnazione personalizzata delle code. Per una VM di esempio con 20 vCPU e 6 vNIC, supponiamo di assegnare
nic0
5 code,nic1
6 code,nic2
4 code e di lasciare che Google Cloud assegni le code pernic3
,nic4
enic5
. In questo esempio, la somma delle code personalizzate assegnate è5+6+4 = 15
.Sottrai la somma delle code assegnate personalizzate dal numero di vCPU. Se la differenza è inferiore al numero di vNIC rimanenti per le quali Google Cloud deve assegnare le code, Google Cloud restituisce un errore perché ogni vNIC deve avere almeno una coda.
Continuando l'esempio con una VM con 20 vCPU e una somma di
15
code assegnate personalizzate, Google Cloud rimangono20-15 = 5
code da assegnare alle vNIC rimanenti (nic3
,nic4
,nic5
).Dividi la differenza del passaggio precedente per il numero di vNIC rimanenti e scarta eventuali resti:
⌊(number of vCPUs - sum of assigned queues)/(number of remaining vNICs)⌋
. Questo calcolo restituisce sempre un numero intero (non una frazione) almeno pari a uno a causa del vincolo spiegato nel passaggio precedente. Google Cloud Assegna a ogni vNIC rimanente un conteggio delle code corrispondente al numero calcolato, a condizione che il numero calcolato non sia maggiore del numero massimo di code per vNIC. Il numero massimo di code per vNIC dipende dal tipo di driver:
- Se utilizzi virtIO o un driver personalizzato, se il numero calcolato di code per
ogni vNIC rimanente è maggiore di
32
, Google Cloud assegna a ogni vNIC rimanente32
code. - Se utilizzi gVNIC, se il numero calcolato di code per ogni vNIC rimanente
è maggiore del limite di
16
o32
(a seconda della configurazione della VM), Google Cloud assegna a ogni vNIC rimanente16
code.
Configurare i conteggi personalizzati delle code
Per creare un'istanza di calcolo che utilizza un conteggio di code personalizzato per una o più NIC o vNIC, completa i seguenti passaggi.
Nei seguenti esempi di codice, la VM viene creata con il tipo di interfaccia di rete
impostato su GVNIC
e le prestazioni di rete Tier_1 per VM abilitate. Puoi utilizzare questi esempi di codice per specificare i conteggi massimi delle code e l'oversubscription delle code disponibili per i tipi di macchine supportati.
gcloud
- Se non hai già una rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creala.
- Utilizza il
comando
gcloud compute instances create
per creare l'istanza di Compute. Ripeti il flag--network-interface
per ogni vNIC che vuoi configurare per l'istanza e includi l'opzionequeue-count
.
gcloud compute instances create INSTANCE_NAME \ --zone=ZONE \ --machine-type=MACHINE_TYPE \ --network-performance-configs=total-egress-bandwidth-tier=TIER_1 \ --network-interface=network=NETWORK_NAME_1,subnet=SUBNET_1,nic-type=GVNIC,queue-count=QUEUE_SIZE_1 \ --network-interface=network=NETWORK_NAME_2,subnet=SUBNET_2,nic-type=GVNIC,queue-count=QUEUE_SIZE_2
Sostituisci quanto segue:
INSTANCE_NAME
: un nome per la nuova istanza di computingZONE
: la zona in cui creare l'istanzaMACHINE_TYPE
: il tipo di macchina dell'istanza. Per eseguire l'oversubscription del conteggio delle code, il tipo di macchina che specifichi deve supportare gVNIC e il networking Tier_1.NETWORK_NAME
: il nome della rete creata in precedenzaSUBNET_*
: il nome di una delle subnet create in precedenzaQUEUE_SIZE
: il numero di code per la vNIC, soggetto alle regole descritte in Allocazione personalizzata delle code.
Terraform
- Se non hai già una rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creala.
Crea un'istanza di calcolo con conteggi di code specifici per le vNIC utilizzando la risorsa
google_compute_instance
. Ripeti il parametro--network-interface
per ogni vNIC che vuoi configurare per l'istanza di computing e includi il parametroqueue-count
.# Queue oversubscription instance resource "google_compute_instance" "VM_NAME" { project = "PROJECT_ID" boot_disk { auto_delete = true device_name = "DEVICE_NAME" initialize_params { image="IMAGE_NAME" size = DISK_SIZE type = "DISK_TYPE" } } machine_type = "MACHINE_TYPE" name = "VM_NAME" zone = "ZONE" network_performance_config { total_egress_bandwidth_tier = "TIER_1" } network_interface { nic_type = "GVNIC" queue_count = QUEUE_COUNT_1 subnetwork_project = "PROJECT_ID" subnetwork = "SUBNET_1" } network_interface { nic_type = "GVNIC" queue_count = QUEUE_COUNT_2 subnetwork_project = "PROJECT_ID" subnetwork = "SUBNET_2" } network_interface { nic_type = "GVNIC" queue_count = QUEUE_COUNT_3 subnetwork_project = "PROJECT_ID" subnetwork = "SUBNET_3"" } network_interface { nic_type = "GVNIC" queue_count = QUEUE_COUNT_4 subnetwork_project = "PROJECT_ID" subnetwork = "SUBNET_4"" } }
Sostituisci quanto segue:
VM_NAME
: un nome per la nuova istanza di computingPROJECT_ID
: l'ID del progetto in cui creare l'istanza. A meno che tu non utilizzi una rete VPC condiviso, il progetto che specifichi deve essere lo stesso in cui sono state create tutte le subnet e le reti.DEVICE_NAME
: Il nome da associare al disco di avvio nel sistema operativo guestIMAGE_NAME
: il nome di un'immagine, ad esempio"projects/debian-cloud/global/images/debian-11-bullseye-v20231010"
.DISK_SIZE
: le dimensioni del disco di avvio in GiBDISK_TYPE
: il tipo di disco da utilizzare per il disco di avvio, ad esempiopd-standard
MACHINE_TYPE
: il tipo di macchina dell'istanza. Per eseguire l'oversubscription del conteggio delle code, il tipo di macchina che specifichi deve supportare gVNIC e il networking Tier_1.ZONE
: la zona in cui creare l'istanzaQUEUE_COUNT
: il numero di code per la vNIC, soggetto alle regole descritte in Allocazione personalizzata delle code.SUBNET_*
: il nome della subnet a cui si connette l'interfaccia di rete
REST
- Se non hai già una rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creala.
Crea un'istanza di calcolo con conteggi di code specifici per le NIC utilizzando il metodo
instances.insert
. Ripeti la proprietànetworkInterfaces
per configurare più interfacce di rete.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", "machineType": "machineTypes/MACHINE_TYPE", "networkPerformanceConfig": { "totalEgressBandwidthTier": TIER_1 }, "networkInterfaces": [ { "nicType": gVNIC, "subnetwork":"regions/region/subnetworks/SUBNET_1", "queueCount": "QUEUE_COUNT_1" } ], "networkInterfaces": [ { "nicType": gVNIC, "subnetwork":"regions/region/subnetworks/SUBNET_2", "queueCount": "QUEUE_COUNT_2" } ], }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto in cui creare l'istanza di ComputeZONE
: la zona in cui creare l'istanza di computingVM_NAME
: il nome della nuova istanza di computingMACHINE_TYPE
: tipo di macchina, predefinita o personalizzata, per la nuova istanza di Compute. Per eseguire l'oversubscription del conteggio delle code, il tipo di macchina deve supportare gVNIC e il networking Tier_1.SUBNET_*
: il nome della subnet a cui si connette l'interfaccia di reteQUEUE_COUNT
: numero di code per la vNIC, soggetto alle regole descritte in Allocazione personalizzata delle code.
Allocazioni di code e modifica del tipo di macchina
Le istanze di calcolo vengono create con un'allocazione predefinita della coda oppure puoi assegnare un numero di code personalizzato a ogni scheda di interfaccia di rete virtuale (vNIC) quando crei una nuova istanza di calcolo utilizzando l'API Compute Engine. Le assegnazioni di code vNIC predefinite o personalizzate vengono impostate solo durante la creazione di un'istanza di Compute. Se la tua istanza ha vNIC che utilizzano conteggi di code predefiniti, puoi modificare il tipo di macchina. Se il tipo di macchina a cui stai passando ha un numero diverso di vCPU, i conteggi delle code predefiniti per la tua istanza vengono ricalcolati in base al nuovo tipo di macchina.
Se la VM ha vNIC che utilizzano conteggi di code personalizzati e non predefiniti, puoi modificare il tipo di macchina utilizzando Google Cloud CLI o l'API Compute Engine per aggiornare le proprietà dell'istanza. La conversione ha esito positivo se la VM risultante supporta lo stesso numero di code per vNIC dell'istanza originale. Per le VM che utilizzano l'interfaccia VirtIO-Net e hanno un conteggio delle code personalizzato superiore a 16 per vNIC, non puoi modificare il tipo di macchina in un tipo di macchina di terza generazione o successivo perché utilizzano solo gVNIC. Puoi invece eseguire la migrazione della VM a un tipo di macchina di terza generazione o successivo seguendo le istruzioni riportate in Sposta il workload a una nuova istanza di computing.
Passaggi successivi
- Scopri di più sui tipi di macchine.
- Scopri di più sulle istanze di macchine virtuali.
- Crea e avvia un'istanza VM.
- Configura le prestazioni di rete Tier_1 per VM per un'istanza di calcolo.
- Completa il tutorial di avvio rapido Crea un'istanza VM Linux in Compute Engine.
- Completa il tutorial di avvio rapido Crea un'istanza VM di Windows Server in Compute Engine.