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 ne definisce la velocità in uscita massima possibile. Tuttavia, puoi raggiungere questa velocità in uscita massima solo in situazioni specifiche.
Questa pagina illustra le aspettative, che sono utili per pianificare i deployment. Classifica la larghezza di banda utilizzando due dimensioni:
- In uscita o in entrata: come utilizzati in questa pagina, in uscita e in entrata si riferiscono sempre al punto di vista di un'istanza Google Cloud:
- I pacchetti inviati da un'istanza Google Cloud ne compongono il valore in uscita (in uscita).
- I pacchetti inviati a un'istanza Google Cloud compongono il suo traffico in entrata (in entrata).
- 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 esterne a una rete VPC.
Nessuna delle interfacce di rete virtuali (vNIC) aggiuntive né indirizzi IP aggiuntivi per vNIC aumentano la larghezza di banda in entrata o in uscita per un Compute Engine. Ad esempio, una VM C3 con 22 vCPU è limitata a 23 Gbit/s di larghezza di banda totale in uscita. Se configuri la VM C3 con due vNIC, la VM è comunque limitata a una larghezza di banda in uscita totale di 23 Gbps, non a 23 Gbps per vNIC.
Tutte le informazioni riportate in questa pagina si applicano alle istanze di calcolo di Compute Engine, nonché ai prodotti che dipendono da queste istanze. Ad esempio, un nodo Google Kubernetes Engine è un'istanza Compute Engine.
Riepilogo della larghezza di banda
La tabella seguente illustra le aspettative relative alla larghezza di banda in base al fatto che un pacchetto viene inviato da (in uscita) o ricevuto da (in entrata) un'istanza di calcolo e al metodo di instradamento dei pacchetti.
In uscita
Aspettative di larghezza di banda | |
---|---|
Routing all'interno di una rete VPC |
|
Routing all'esterno di una rete VPC |
|
In entrata
Aspettative relative alla larghezza di banda | |
---|---|
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 il numero massimo per istanza e le tariffe in uscita. Queste tariffe si basano sul tipo di macchina dell'istanza di calcolo che invia il pacchetto e sul fatto che la destinazione del pacchetto sia accessibile utilizzando route all'interno di una rete VPC o route all'esterno di una rete VPC. La larghezza di banda in uscita include i pacchetti emessi da tutte delle NIC dell'istanza e dei dati trasferiti a tutti gli Hyperdisk e volumi Persistent Disk connessi all'istanza.
Larghezza di banda in uscita massima per istanza
La larghezza di banda in uscita massima per istanza è generalmente di 2 Gbps per vCPU, ma ci sono alcune differenze ed eccezioni, a seconda della serie di macchine. La tabella seguente mostra l'intervallo dei limiti massimi per la larghezza di banda in uscita per traffico instradato all'interno di una rete VPC solo per il livello di rete standard, non prestazioni di rete Tier_1 per VM.
Serie di macchine | Limite massimo di traffico in uscita per istanza più basso senza rete Tier_1 | Limite massimo di traffico in uscita per istanza più elevato senza rete Tier_1 |
---|---|---|
C4 | 10 Gbps | 100 Gbit/s |
C3 | 23 Gbps | 100 Gbps |
C3D | 20 Gbit/s | 100 Gbit/s |
C2 e C2D | 10 Gbps | 32 Gbps |
E2 | 1 Gbps | 16 Gbps |
H3 | N/D | 200 Gbit/s |
N4 | 10 Gbps | 50 Gbps |
N2 e N2D | 10 Gbps | 32 Gbit/s |
N1 (escluse le VM con 1 vCPU) | 10 Gbps | 32 Gbps sulla piattaforma CPU Intel Skylake 16 Gbps su piattaforme CPU precedenti a Intel Skylake |
Tipi di macchina N1 con 1 vCPU, f1-micro e g1-small | 2 Gbit/s | 2 Gbit/s |
T2D | 10 Gbps | 32 Gbps |
X4 | N/D | 100 Gbps |
Z3 | 23 Gbps | 100 Gbit/s |
Puoi trovare la larghezza di banda in uscita massima per istanza per ogni tipo di macchina elencata nella pagina della famiglia di macchine specifica:
- Serie C, E, N e Tau: famiglia di macchine per uso generico
- Serie Z: famiglia di macchine ottimizzate per lo spazio di archiviazione
- Serie C2 e H: famiglia di macchine ottimizzate per il calcolo
- Serie M e X: famiglia di macchine ottimizzate per la memoria
- Serie A e G: famiglia di macchine ottimizzate per l'acceleratore
La larghezza di banda massima in uscita per istanza non è una garanzia. La larghezza di banda in 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 il caricamento parziale del checksum e il caricamento parziale della segmentazione TCP (TSO)
- Congestione della rete
- In una situazione in cui gli I/O di Persistent Disk competono con altro traffico in uscita dalla rete del traffico, il 60% della larghezza di banda massima è assegnato al Persistent Disk scritture, lasciando il 40% per il resto del traffico di rete in uscita. Consulta: Fattori che influiscono sulle prestazioni del disco per ulteriori dettagli.
Per ottenere la larghezza di banda in uscita massima per istanza possibile:
- Attiva 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 della rete. MTU più grandi possono ridurre l'overhead delle intestazioni dei pacchetti e aumentare il throughput dei dati del payload.
- Utilizza la versione più recente del driver gVNIC.
- Utilizzare serie di macchine di terza generazione o successive che utilizzano Titanium. per non sovraccaricare l'elaborazione di rete dalla CPU host.
In uscita verso destinazioni instradabili all'interno di una rete VPC
Dal punto di vista di un'istanza di invio e degli 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 in Larghezza di banda in uscita massima per istanza .
- Larghezza di banda in uscita tra regioni per progetto: se è presente un'istanza di invio e una o il suo hop successivo si trovano in regioni diverse, Google Cloud applica un limite massimo di larghezza di banda in uscita tra regioni. È improbabile che la maggior parte dei clienti raggiunga questo limite. Per domande su questo limite, invia una richiesta di assistenza.
- Limiti di Cloud VPN e Cloud Interconnect: quando invii il traffico da un'istanza a una destinazione IP interna instradabile da un tunnel Cloud VPN di hop successivo o da un allegato VLAN Cloud Interconnect, la larghezza di banda in uscita è limitata da:
- Frequenza massima di 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 VPN Cloud di hop successivo o collegamenti VLAN Cloud Interconnect che utilizzano il routing ECMP, devi utilizzare più connessioni TCP (tuple di 5 elementi univoche).
Le destinazioni instradabili all'interno di una rete VPC includono tutte le seguenti destinazioni, ciascuna 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 regionali negli
intervalli di indirizzi IPv4 principali 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 della rete di un'istanza ricevente (vNIC). (quando un'istanza di invio si connette allo spazio di archiviazione di Indirizzo IPv4 esterno vNIC, i pacchetti vengono instradati utilizzando un valore predefinito per l'hop successivo gateway Internet, In uscita verso destinazioni esterne a una rete VPC .
- Un indirizzo IPv4 interno in un intervallo IP alias della vNIC di un'istanza di destinazione.
- Un indirizzo IPv4 interno di una regola di inoltro 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 a uno stack doppio che riceve il vNIC dell'istanza. - Un indirizzo IPv6 compreso nell'intervallo di indirizzi IPv6
/96
di un inoltro interno per il forwarding del protocollo o un bilanciatore del carico di rete passthrough interno.
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
- Intervalli di indirizzi di subnet IPv6 esterni utilizzati da
queste risorse di destinazione quando i pacchetti vengono instradati tramite route di subnet
o route di subnet di peering all'interno della rete VPC o
route all'interno della rete VPC che non utilizzano
hop successivo del gateway internet:
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
assegnato alla vNIC di un'istanza di destinazione a doppio stack. - Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
di un inoltro 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 i seguenti percorsi di rete VPC:
- Percorsi dinamici
- Route statiche tranne quelle che utilizzano un hop successivo del gateway internet predefinito
- Route personalizzati per il peering
Il seguente elenco classifica il traffico dalle istanze di invio alle destinazioni interne, dalla larghezza di banda massima a quella minima:
- Tra le istanze di calcolo nella stessa zona
- Tra istanze di calcolo in zone diverse della stessa regione
- Tra istanze di calcolo in regioni diverse
- Da un'istanza di calcolo ad API e servizi Google Cloud utilizzando l'accesso privato Google o accedendo alle API Google dall'indirizzo IP esterno di un'istanza. Questo include gli endpoint di Private Service Connect per le API di Google.
Uscita verso destinazioni esterne a una rete VPC
Dal punto di vista di un'istanza di invio e degli indirizzi IP di destinazione all'esterno di una rete VPC, Google Cloud limita la posta in uscita a una delle seguenti tariffe che viene raggiunta per prima:
Larghezza di banda in uscita per istanza: la larghezza di banda massima per tutte le connessioni da un'istanza di calcolo a destinazioni esterne a una rete VPC è la più piccola tra la larghezza di banda in uscita massima per istanza e una di queste velocità:
- 25 Gbps, se la rete Tier_1 è abilitata
- 7 Gbps, se la rete Tier_1 non è abilitata
- 1 Gbps per le istanze H3
- 7 Gbps per NIC fisica per le serie di macchine che supportano più NIC fisiche, ad esempio 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 la rete Tier_1 sia abilitata.Velocità in uscita massima per flusso: la larghezza di banda massima per ogni connessione a 5 tuple univoca, da un'istanza di calcolo a una destinazione esterna a una rete VPC, è di 3 Gbps, tranne 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 calcolo 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 esterne a una rete VPC includono tutte le seguenti destinazioni, ciascuna accessibile tramite una route nella rete VPC dell'istanza mittente 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 regionali per le risorse Google Cloud, inclusi gli indirizzi IPv4 esterni delle vNIC VM, gli indirizzi IPv4 esterni per il forwarding del protocollo esterno, i bilanciatori del carico di rete passthrough esterni e i pacchetti di risposta ai gateway Cloud NAT.
- Indirizzi IPv6 esterni regionali in subnet a doppio stack con intervalli di indirizzi IPv6 esterni utilizzati da indirizzi IPv6 esterni di istanze a doppio stack, forwarding del protocollo esterno e bilanciatori del carico di rete passthrough esterni. La subnet deve trovarsi in un percorso separato in una rete VPC 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 un modello a doppio stack una subnet con un intervallo di indirizzi IPv6 esterno si trova nello stesso rete VPC o in una rete VPC in peering, consulta In uscita 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 sulle risorse Google Cloud che utilizzano determinati tipi di indirizzi IP esterni, consulta Indirizzi IP esterni.
Larghezza di banda in entrata
Google Cloud gestisce la larghezza di banda in entrata (ingress) in base a come il pacchetto in entrata viene indirizzato a un'istanza di calcolo di destinazione.
Ingresso alle destinazioni instradabili all'interno di una rete VPC
Un'istanza ricevente può gestire tanti pacchetti in entrata pari al suo tipo di macchina, sistema operativo e altre condizioni di rete lo consentono. Google Cloud Non implementare alcuna limitazione della larghezza di banda mirata sui pacchetti in entrata consegnati a un'istanza se il pacchetto in entrata viene consegnato utilizzando route all'interno di un Rete VPC:
- Route di subnet nella rete VPC dell'istanza di destinazione
- Route di subnet di peering in una rete VPC in peering
- Route in un'altra rete i cui hop successivi sono tunnel Cloud VPN, collegamenti VLAN di Cloud Interconnect o istanze di appliance router situate nella rete VPC dell'istanza di destinazione
Destinazioni per i pacchetti instradati all'interno di una rete VPC include:
- L'indirizzo IPv4 interno principale dell'interfaccia di rete (NIC) dell'istanza di destinazione. Gli indirizzi IPv4 interni principali sono indirizzi IPv4 interni regionali provenienti da un intervallo di indirizzi IPv4 principale di una subnet.
- Un indirizzo IPv4 interno da un intervallo IP dell'alias della NIC dell'istanza di destinazione. Gli intervalli IP alias possono provenire sia dall'indirizzo IPv4 principale di una subnet o uno dei suoi intervalli di indirizzi IPv4 secondari.
- Un indirizzo IPv6 dall'intervallo di indirizzi IPv6
/96
assegnato a uno stack doppio che riceve il NIC dell'istanza. Gli intervalli IPv6 delle istanze Compute possono provenire da questi intervalli IPv6 delle subnet:- Un intervallo di indirizzi IPv6 interno.
- Un intervallo di indirizzi IPv6 esterni quando il pacchetto in entrata viene instradato internamente all'istanza ricevente utilizzando una delle route di rete VPC elencate in precedenza .
- Un indirizzo IPv4 interno di una regola di forwarding utilizzata dal protocollo interno l'inoltro all'istanza ricevente o al bilanciatore del carico di rete passthrough interno dove è un backend del bilanciatore del carico. Regola di forwarding interno IPv4 provengono dall'intervallo di indirizzi IPv4 principale di una subnet.
- Un indirizzo IPv6 interno compreso nell'intervallo IPv6
/96
di una regola di forwarding utilizzata tramite inoltro del protocollo interno all'istanza ricevente o al bilanciatore del carico di rete passthrough interno in cui l'istanza ricevente è un backend del bilanciatore del carico. Gli indirizzi IPv6 della regola di inoltro interna provengono dall'intervallo di indirizzi IPv6 interno di una subnet. - Un indirizzo IPv6 esterno dell'intervallo IPv6
/96
di una regola di forwarding utilizzata mediante l'inoltro di un protocollo esterno all'istanza ricevente o al bilanciatore del carico di rete passthrough esterno. L'istanza ricevente è un backend del bilanciatore del carico quando pacchetto in entrata viene instradato all'interno della rete VPC utilizzando uno dei i percorsi elencati in precedenza in questa sezione. Gli indirizzi IPv6 della regola di inoltro esterno provengono dall'intervallo di indirizzi IPv6 esterno 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 nell'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 per il bilanciatore del carico.
Ingresso a destinazioni esterne a una rete VPC
Google Cloud implementa i seguenti limiti di larghezza di banda per i pacchetti in entrata inviati a un'istanza di ricezione utilizzando route esterne a una rete VPC. Quando è incluso il bilanciamento del carico, la larghezza di banda vengono applicati singolarmente a ciascuna istanza ricevente.
Per le serie di macchine che non supportano più NIC fisiche, lo stato la limitazione della larghezza di banda in entrata si applica collettivamente a tutte le reti virtuali (vNIC). Il limite è la prima delle seguenti tariffe rilevate:
- 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 singolarmente a ogni NIC fisica. Il limite è la prima delle seguenti tariffe rilevate:
- 1.800.000 pacchetti al secondo per NIC fisica
- 30 Gbit/s per NIC fisico
Destinazioni dei pacchetti instradati mediante route all'esterno di Le reti 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 destinazione.
- Un indirizzo IPv6 esterno dall'intervallo di indirizzi IPv6
/96
assegnato a una vNIC di un'istanza di ricezione a doppio stack quando il pacchetto in arrivo viene indirizzato utilizzando un percorso esterno alla rete VPC dell'istanza di ricezione. - Un indirizzo IPv4 esterno di una regola di inoltro utilizzata dal forwarding del protocollo esterno all'istanza di destinazione o al bilanciatore del carico di rete passthrough esterno, dove l'istanza di destinazione è un backend del bilanciatore del carico.
- Un indirizzo IPv6 esterno dell'intervallo IPv6
/96
di una regola di forwarding utilizzata mediante l'inoltro di un protocollo esterno all'istanza ricevente o al bilanciatore del carico di rete passthrough esterno. L'istanza ricevente deve essere un backend del bilanciatore del carico quando pacchetto in entrata viene instradato utilizzando una route esterna a un VPC Google Cloud. - Risposte in entrata stabilite elaborate da Cloud NAT.
Fotogrammi Jumbo
Per ricevere e inviare jumbo frame, configurare la rete VPC utilizzata dalle tue istanze di calcolo; imposta il unità massima di trasmissione (MTU) a un valore maggiore, fino a 8896.
Valori di MTU più elevati aumentano la dimensione del pacchetto e riducono l'intestazione del pacchetto che aumenta la velocità effettiva dei dati del payload.
Puoi usare i jumbo frame con il driver gVNIC versione 1.3 o successiva di istanze VM o con il driver IDPF sulle istanze bare metal. Non tutte le immagini pubbliche di Google Cloud includono questi driver. Per ulteriori informazioni sul supporto dei sistemi operativi per i jumbo frame, consulta La scheda Funzionalità di networking nella Dettagli del sistema operativo .
Se utilizzi un'immagine sistema operativo che non supporta completamente i jumbo frame,
puoi installare manualmente il driver gVNIC versione v1.3.0 o successiva. Google consiglia di installare la versione del driver gVNIC contrassegnata da Latest
per usufruire 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, vedi Per l'utilizzo su sistemi operativi non supportati.
Ricezione e trasmissione di code
A ogni NIC o vNIC per un'istanza Compute vengono assegnati di trasmettere code per l'elaborazione di pacchetti dalla rete.
- Coda di ricezione (RX): in coda per la ricezione dei pacchetti. Quando il NIC riceve un pacchetto, dalla rete, il NIC seleziona il descrittore per un pacchetto in entrata la coda, lo elabora e lo passa al sistema operativo guest collegata a un core vCPU utilizzando un interruzione. Se la coda RX è piena e non è disponibile alcun buffer per posizionare un pacchetto, viene ignorato. In genere, questo può accadere se un'applicazione utilizza in modo eccessivo un core vCPU collegato anche alla coda dei 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. Il NIC quindi elabora il descrittore e trasmette il pacchetto.
Allokazione della coda predefinita
A meno che non assegni esplicitamente i conteggi delle code per le NIC, è in grado di modellare l'algoritmo utilizzato da Google Cloud per assegnare un numero fisso di RX e TX per NIC nel seguente modo:
- Istanze Bare Metal
- Per le istanze bare metal è presente una sola NIC, pertanto il numero massimo di code è 16.
- Istanze VM che utilizzano l'interfaccia di rete gVNIC
Il conteggio delle code dipende dall'utilizzo o meno da parte della serie di macchine Titanium o meno.
- Gen3 (escluso M3) e istanze successive che utilizzano Titanium: dividi il
di vCPU per il numero di vNIC (
num_vcpus/num_vnics
). - VM Gen1 e Gen2 che non utilizzano Titanium: dividi il
il numero di vCPU per il numero di vNIC e dividi il risultato per 2
(
num_vcpus/num_vnics/2
).
Scarta eventuali residui.
Per le istanze C4, per migliorare le prestazioni, le seguenti configurazioni non utilizzano i calcoli predefiniti:
- Per le istanze Linux con 2 vCPU, il conteggio della coda è 1.
- Per le istanze Linux con 4 vCPU, il numero di code è 2.
Se il numero calcolato è inferiore a 1, assegna invece una coda a ogni vNIC.
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 assegnare invece a ciascuna code vNIC 16.
- Gen3 (escluso M3) e istanze successive che utilizzano Titanium: dividi il
di vCPU per il numero di vNIC (
- 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 qualsiasi importo rimanente:
[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
, ignoralo e assegna a ogni coda vNIC 32.
Gli esempi riportati di seguito mostrano come calcolare il numero predefinito di code per un'istanza VM:
Se un'istanza VM utilizza VirtIO e ha 16 vCPU e 4 vNIC, il valore 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 valore calcolato è
[128/2/2] = 32
. Google Cloud assegna a ogni vNIC il numero massimo di code per vNIC possibile. Google Cloud assegna16
code per vNIC.
Sui sistemi Linux, puoi utilizzare ethtool
per configurare una vNIC con meno code rispetto al numero di code assegnate da Google Cloud per vNIC.
Allocazione di code personalizzate per le istanze VM
Anziché l'allocazione della coda predefinita, puoi assegnare un conteggio delle code personalizzato (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 specificate deve rispettare le seguenti regole:
Il numero minimo di code che puoi assegnare per vNIC è 1.
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
. Utilizzando gVNIC, il numero massimo di code è
16
. Per le seguenti configurazioni di VM riservate, il numero massimo di code è8
:- AMD SEV su 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 delle code personalizzati a tutte le NIC dell'istanza di calcolo, la somma delle assegnazioni del conteggio delle code deve essere inferiore o uguale al numero di vCPU assegnate all'istanza.
Puoi eseguire una sottoscrizione eccessiva del conteggio della coda personalizzata per le vNIC. In altre parole, può avere una somma dei conteggi delle code assegnati a tutte le NIC per la VM maggiore del numero di vCPU per la tua istanza. A sottoscriva in eccesso il 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 il networking Tier_1 abilitato.
- È stato specificato un conteggio coda personalizzato per tutte le NIC configurate per l'istanza.
Con la sovrascrizione della coda, il numero massimo di code per l'istanza VM è 16 volte il numero di NIC. Quindi, se hai 6 NIC configurate per un con 30 vCPU, puoi configurare un massimo di (16 * 6) o 96 per la tua istanza.
Esempi
Se un'istanza VM ha 8 vCPU e 3 NIC, il numero massimo di code 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
mentre mantieni le altre due Le assegnazioni code vNIC perché la somma delle code assegnate non può superare il valore di vCPU (8).Se un'istanza VM ha 96 vCPU e 2 NIC, puoi assegnare a entrambe le NIC fino a 32 code ciascuna se utilizzi il driver virtIO o fino a 16 code ciascuna se utilizzi il driver gVNIC. In questo esempio, la somma delle code assegnate è sempre inferiore al numero di vCPU.
È anche possibile assegnare un conteggio coda personalizzato per solo alcune NIC, lasciando che sia Google Cloud ad assegnare le code alle NIC rimanenti. Il numero di code che puoi assegnare per vNIC è comunque soggetto alle regole menzionate in precedenza. Puoi modellare la fattibilità della tua configurazione e, se è possibile, il numero di code che Google Cloud assegna alle NIC rimanenti con questa procedura:
Calcola la somma delle code per le NIC utilizzando l'assegnazione di code personalizzate. Per un'istanza VM con 20 vCPU e 6 NIC, supponiamo di assegnare
nic0
5 code,nic1
6 code enic2
4 code e di lasciare che sia Google Cloud a assegnare le code pernic3
,nic4
enic5
. In questo esempio, la somma code assegnate in modo personalizzato è5+6+4 = 15
.Sottrai la somma delle code assegnate in modo personalizzato dal numero di vCPU. Se la differenza non è almeno uguale al numero di NIC rimanenti per cui Google Cloud deve assegnare le code. Google Cloud restituisce un errore. Continuando con l'istanza di esempio di 20 vCPU e una somma di
15
code assegnate in modo personalizzato, Google Cloud ha20-15 = 5
code rimanenti e assegnale alle NIC rimanenti (nic3
,nic4
,nic5
).Dividi la differenza del passaggio precedente per il numero di NIC rimanenti e ignora il resto -
⌊(number of vCPUs - sum of assigned queues)/(number of remaining NICs)⌋
. Questo calcolo genera sempre un numero intero (non una frazione) maggiore di zero a causa del vincolo spiegato nel passaggio precedente. Google Cloud assegna a ogni NIC rimanente un conteggio delle code corrispondente al numero calcolato, a condizione che il numero calcolato non sia superiore al 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 è superiore a
16
, Google Cloud assegna a ogni vNIC rimanente16
code.
- Se utilizzi virtIO o un driver personalizzato, se il numero calcolato di code per ogni vNIC rimanente è maggiore di
Configura conteggi personalizzati delle code
Per creare un'istanza di calcolo che utilizza un conteggio coda personalizzato per una o più NIC o vNIC, completa i seguenti passaggi.
gcloud
- Se non disponi già di un Rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creale.
- Utilizza il
comando
gcloud compute instances create
per creare l'istanza di calcolo. 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 name per la nuova istanza ComputeZONE
: la zona in cui creare l'istanzaMACHINE_TYPE
: il tipo di macchina in esecuzione in un'istanza Compute Engine. Per eseguire la sovraiscrizione al conteggio della coda, il tipo di macchina specificato deve supportare la rete gVNIC e Tier_1.NETWORK_NAME
: nome della rete creata in precedenzaSUBNET_*
: il nome di una delle subnet create in precedenzaQUEUE_SIZE
: il numero di code per vNIC, alle regole illustrate Allocazione personalizzata delle code.
Terraform
- Se non hai già una rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creale.
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 da configurare per l'istanza di calcolo 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 calcoloPROJECT_ID
: l'ID del progetto in cui creare l'istanza. A meno che non utilizzi una rete VPC condiviso, il progetto specificato deve essere lo stesso in cui tutte le subnet e in cui sono state create le reti.DEVICE_NAME
: il nome da associare all'avvio disco 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 l'avvio disco, ad esempiopd-standard
MACHINE_TYPE
: il tipo di macchina in esecuzione in un'istanza Compute Engine. Per eseguire una sottoscrizione eccessiva del conteggio della coda, il tipo di macchina specificato deve supportare la rete gVNIC e Tier_1.ZONE
: la zona in cui creare l'istanzaQUEUE_COUNT
: il numero di code per la vNIC, in base alle regole descritte in Allocazione delle code personalizzate.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, creale.
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ù reti interfacce.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 calcoloZONE
: zona in cui creare l'istanza ComputeVM_NAME
: nome del nuova istanza ComputeMACHINE_TYPE
: tipo di macchina, predefinito o personalizzato, per la nuova istanza di calcolo. Per eseguire una sottoscrizione eccessiva del conteggio della coda, il tipo di macchina deve supportare la rete gVNIC e Tier_1.SUBNET_*
: il nome della subnet a cui si connette l'interfaccia di reteQUEUE_COUNT
: numero di code per la vNIC, in base alle regole descritte in Allocazione delle code personalizzate.
Allocazioni delle code e modifica del tipo di macchina
Le istanze di calcolo vengono create allocazione predefinita delle code, Oppure puoi assegnare conteggio di code personalizzate su ogni scheda di interfaccia di rete virtuale (vNIC) quando crei una nuova utilizzando l'API Compute Engine. Assegnazioni di code vNIC predefinite o personalizzate vengono impostati solo quando si crea un'istanza Compute. Se l'istanza ha vNIC che utilizzare i conteggi predefiniti delle code, puoi cambiarne il tipo di macchina. Se il tipo di macchina a cui stai passando ha un numero diverso di vCPU, i conteggi della coda predefiniti per l'istanza vengono ricalcolati in base al nuovo tipo di macchina.
Se la tua istanza di calcolo ha vNIC che utilizzano conteggi di code personalizzati 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 l'istanza di computing risultante supporta lo stesso conteggio delle code per vNIC come istanza originale. Per le istanze di calcolo che utilizzano all'interfaccia VirtIO-Net e hanno un conteggio di code personalizzato maggiore di 16 per vNIC, non puoi cambiare il tipo di macchina in una terza generazione o una successiva perché usano solo gVNIC. Puoi invece eseguire la migrazione a un tipo di macchina di terza generazione o successivo seguendo istruzioni in Sposta il carico di lavoro in una nuova istanza di computing.
Passaggi successivi
- Scopri di più sui tipi di macchina.
- 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 Compute.
- Completa il tutorial di avvio rapido Creare un'istanza VM Linux in Compute Engine.
- Completa il tutorial della guida rapida Crea un'istanza VM di Windows Server in Compute Engine.