Larghezza di banda della rete

Google Cloud tiene conto della larghezza di banda per istanza di computing, non per interfaccia di rete virtuale (vNIC) o indirizzo IP. Lo spazio di archiviazione di un'istanza machine type definisce il suo valore massimo velocità in uscita; ma puoi raggiungere la velocità in uscita massima situazioni specifiche.

Questa pagina descrive le aspettative, che sono utili quando pianifichi deployment di machine learning. Classifica la larghezza di banda utilizzando due dimensioni:

  • In uscita o in entrata: come utilizzati in questa pagina, i dati in uscita e in entrata sono sempre dal 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).
  • Modalità di routing del pacchetto: un pacchetto può essere instradato da un'istanza di invio o verso un'istanza ricevente utilizzando route i cui hop successivi si trovano all'interno di un o route VPC da una rete VPC all'esterno di 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 è ancora limitata a una larghezza di banda totale in uscita di 23 Gbps, che non sia di 23 Gbit/s per vNIC.

Tutte le informazioni in questa pagina sono applicabili a Compute Engine di Compute Engine, nonché i prodotti che dipendono da Compute Engine di Compute Engine. Ad esempio, un nodo di Google Kubernetes Engine è un in esecuzione in un'istanza Compute Engine.

Riepilogo larghezza di banda

La tabella seguente illustra le aspettative di larghezza di banda in base al fatto che un pacchetto viene inviato da (in uscita) o ricevuto da (in entrata) un'istanza di computing e di routing dei pacchetti.

In uscita

Aspettative di larghezza di banda
Routing all'interno di una rete VPC
  • Definito principalmente da un larghezza di banda in uscita massima per istanza in base al tipo di macchina dell'istanza di invio e se Il networking Tier_1 è abilitato.

    • VM N2, N2D, C2 e C2D con supporto di rete Tier_1 limiti di larghezza di banda in uscita fino a 100 Gbit/s.
    • Le VM H3 supportano limiti di larghezza di banda in uscita da VM a VM fino a 200 Gbit/s.
    • Le istanze A2 e G2 supportano il traffico in uscita limiti di larghezza di banda fino a 100 Gbit/s.
    • Le istanze A3 supportano limiti di larghezza di banda in uscita fino a 1800 Gbit/s.
    • Le istanze C3, C3D, Z3 e X4 supportano fino a 200 Gbit/s limiti di larghezza di banda in uscita con il networking Tier_1.
  • Per altri fattori, definizioni e scenari, vedi In uscita verso le destinazioni all'interno di una rete VPC.
Routing all'esterno di una rete VPC
  • Definito principalmente da un traffico in uscita massimo per istanza basata sul tipo di macchina dell'istanza di invio se il networking Tier_1 è abilitato. Fatta eccezione per le VM H3, il traffico in uscita massimo possibile di un'istanza di invio verso una destinazione all'esterno della rete VPC non può superare seguenti:

    • 7 Gbps in totale quando il networking Tier_1 non lo è attivata
    • 25 Gbit/s in totale quando il networking di livello_1 è attivata
    • 3 Gbps per flusso
  • Per altri fattori, definizioni e avvertenze, vedi In uscita verso destinazioni al di fuori di una rete VPC.

In entrata

Aspettative di larghezza di banda
Routing all'interno di una rete VPC
  • In genere, le tariffe in entrata sono simili a quelle in uscita per un tipo di macchina.
  • Le dimensioni dell'istanza Compute, la capacità del server NIC, il traffico che entra in altre VM guest in esecuzione lo stesso hardware host, la configurazione di rete del sistema operativo guest il numero di letture del disco eseguite dalla tua istanza può sulla velocità in entrata.
  • Google Cloud non impone ulteriori limitazioni e le tariffe di traffico in entrata all'interno di una rete VPC.
  • Per altri fattori, definizioni e scenari, vedi In entrata verso destinazioni instradabili all'interno di una rete VPC.
Routing all'esterno di una rete VPC
  • Google Cloud protegge ogni istanza di computing limitando traffico in entrata instradato all'esterno di una rete VPC. Il limite è il primo dei seguenti tassi riscontrati:

    • 1.800.000 pps (pacchetti al secondo)
    • 30 Gbit/s
  • Per una serie di macchine che supporta più NIC fisiche come A3, il limite è la prima delle seguenti tariffe incontrati:

    • 1.800.000 pps (pacchetti al secondo) per unità fisica NIC
    • 30 Gbit/s per NIC fisico
  • Per altri fattori, definizioni e scenari, vedi In entrata verso destinazioni al di fuori di un 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 Compute che invia il pacchetto e se la sua destinazione è accessibile utilizzando route all'interno di una rete VPC o route all'esterno di rete VPC. La larghezza di banda in uscita include i pacchetti emessi da tutti 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 in uscita più basso per istanza senza networking Tier_1 Limite massimo di traffico in uscita più alto per istanza senza networking Tier_1
E2 1 Gbit/s 16 Gbps
C3 23 Gbit/s 100 Gbit/s
C3D 20 Gbit/s 100 Gbit/s
C2 e C2D 10 Gbps 32 Gbit/s
E2 1 Gbit/s 16 Gbps
H3 N/D 200 Gbit/s
N4 10 Gbps 50 Gbit/s
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 Gbit/s
X4 N/D 100 Gbit/s
Z3 23 Gbit/s 100 Gbit/s

Puoi trovare la larghezza di banda in uscita massima per istanza per ogni tipo di macchina elencati nella pagina specifica della famiglia di macchine:

La larghezza di banda massima in uscita per istanza non è una garanzia. Il traffico in uscita effettivo la larghezza di banda può essere ridotta in base a fattori quali: elenco non esaustivo:

  • Utilizzo di VirtIO anziché gVNIC con di Compute Engine che supportano
  • Dimensione pacchetto
  • Overhead del protocollo
  • Il numero di flussi
  • Le impostazioni del driver Ethernet del sistema operativo guest dell'istanza Compute, ad esempio offload di checksum e offload 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:

  • Attiva le prestazioni di rete Tier_1 per VM con tipi di macchine più grandi.
  • Utilizza la rete VPC più grande massima unità di trasmissione (MTU) supportata dalla tua rete una topologia. MTU più grandi possono ridurre l'overhead delle intestazioni dei pacchetti e aumentare il payload e la velocità effettiva dei dati.
  • 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 in merito limite, invia una richiesta di assistenza.
  • Limiti di Cloud VPN e Cloud Interconnect: durante l'invio il traffico da un'istanza a un indirizzo IP interno instradabile tramite un tunnel Cloud VPN dell'hop successivo o VLAN Cloud Interconnect collegamento, la larghezza di banda in uscita è limitata da:

Le destinazioni instradabili all'interno di una rete VPC includono tutte le le destinazioni che seguono, ognuna delle quali è accessibile dal punto di vista invio dell'istanza tramite una route il cui hop successivo non è la connessione internet predefinita gateway:

  • Indirizzi IPv4 interni regionali in intervalli di indirizzi IPv4 principali e secondari di subnet, inclusi intervalli di indirizzi IPv4 privati e indirizzi IPv4 pubblici utilizzati privatamente utilizzati dalle seguenti 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 dell'istanza ricevente. vNIC.
    • Un indirizzo IPv4 interno di una regola di forwarding interno per entrambi i protocolli 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.
  • 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 a uno stack doppio che riceve il vNIC dell'istanza.
    • 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.
  • Altre destinazioni accessibili tramite la seguente rete VPC route:

Il seguente elenco classifica il traffico dall'invio delle istanze agli indirizzi interni dalla larghezza di banda massima possibile a quella più bassa:

In 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 Compute a destinazioni esterne a un VPC è la più piccola Larghezza di banda in uscita massima per istanza e uno di questi tariffe:

    • 25 Gbps, se il networking Tier_1 è abilitato
    • 7 Gbps, se il networking Tier_1 non è abilitato
    • 1 Gbps per istanze H3
    • 7 Gbit/s per NIC fisico per le serie di macchine che supportano NIC fisiche, ad esempio A3.

    Ad esempio, anche se un'istanza c3-standard-44 ha una per VM larghezza di banda in uscita massima di 32 Gbps, la larghezza di banda in uscita per VM da una VM c3-standard-44` verso destinazioni esterne è 25 Gbps o 7 Gbps, a seconda che Il networking Tier_1 è abilitato.

  • Frequenza massima in uscita per flusso: la larghezza di banda massima per ciascun unico Connessione a 5 tuple, da un'istanza Compute a una destinazione esterna a La rete VPC è di 3 Gbps, tranne su H3, in cui è di 1 Gbps.

  • Larghezza di banda in uscita da internet per progetto: la larghezza di banda massima per tutti di connessioni da istanze di calcolo in ogni regione di un progetto al di fuori di una rete VPC è definita la larghezza di banda in uscita da internet del progetto quotas.

Le destinazioni all'esterno di una rete VPC includono tutte le le seguenti destinazioni, ciascuna delle quali è accessibile da una route nella rete VPC dell'istanza il cui hop successivo è il valore predefinito gateway internet:

  • 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 Google Cloud, tra cui Indirizzi IPv4 esterni vNIC della VM, indirizzi IPv4 esterni per il protocollo esterno forwarding, bilanciatori del carico di rete passthrough esterni e pacchetti di risposta a Cloud NAT gateway VPN ad alta disponibilità.
  • Indirizzi IPv6 esterni a livello di regione 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 tramite una route nel 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 tramite una route statica nel rete VPC dell'istanza, a condizione che l'hop successivo per la route è il gateway internet predefinito.

Per maggiori dettagli su quali risorse Google Cloud utilizzano quali tipi di per gli indirizzi IP esterni, consulta Indirizzi IP esterni.

Larghezza di banda in entrata

Google Cloud gestisce la larghezza di banda in entrata (in entrata) a seconda di come pacchetto in entrata viene instradato a un'istanza di computing ricevente.

Ingress verso 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 ricevente
  • 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 Cloud Interconnect (VLAN) o appliance router Istanze situate nella rete VPC dell'istanza ricevente

Destinazioni per i pacchetti instradati all'interno di una rete VPC include:

  • L'indirizzo IPv4 interno principale della rete dell'istanza ricevente (NIC). Gli indirizzi IPv4 interni principali sono interni a livello di regione che provengono da indirizzi IPv4 intervallo di indirizzi IPv4 principale della subnet.
  • Un indirizzo IPv4 interno da un intervallo IP alias dell'istanza ricevente. NIC. 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 della subnet:
  • 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. Interno Gli indirizzi IPv6 della regola di forwarding provengono dall'indirizzo IPv6 interno di una subnet intervallo.
  • 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. Regola di forwarding esterno Gli indirizzi IPv6 provengono dall'intervallo di indirizzi IPv6 esterno di una subnet.
  • Un indirizzo IP nell'intervallo di destinazione di una route statica personalizzata che utilizza l'istanza ricevente come istanza dell'hop successivo (next-hop-instance o next-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 quel bilanciatore del carico.

In entrata verso destinazioni esterne a una rete VPC

Google Cloud implementa i seguenti limiti di larghezza di banda per gli indirizzi di pacchetti consegnati a un'istanza ricevente utilizzando route all'esterno di un 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 è il primo dei seguenti tassi riscontrati:

  • 1.800.000 pacchetti al secondo
  • 30 Gbit/s

Per le serie di macchine che supportano più NIC fisiche, come A3, limitazione della larghezza di banda in entrata applicabile, che si applica singolarmente a ogni NIC. Il limite è il primo dei seguenti tassi riscontrati:

  • 1.800.000 pacchetti al secondo per NIC fisico
  • 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 one-to-one su una delle interfacce di rete (NIC) dell'istanza ricevente.
  • Un indirizzo IPv6 esterno nell'intervallo di indirizzi IPv6 /96 assegnato a una vNIC di un'istanza ricevente a doppio stack quando il pacchetto in entrata viene instradato tramite all'esterno della rete VPC dell'istanza ricevente.
  • Un indirizzo IPv4 esterno di una regola di forwarding utilizzata da un protocollo esterno l'inoltro all'istanza ricevente o al bilanciatore del carico di rete passthrough esterno in cui è 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 con Latest per poter 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. Questo può accadere in genere se un'applicazione un core vCPU anch'esso collegato 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 messo nella coda TX. Il NIC quindi elabora il descrittore e trasmette il pacchetto.

Allocazione predefinita della coda

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, esiste un solo NIC, quindi la coda massima è 16.
Istanze VM che utilizzano l'interfaccia di rete gVNIC

Dividi il numero di vCPU per il numero di vNIC, quindi dividi il risultato per 2 e scarta qualsiasi resto, [number of vCPUs/number of vNICs/2].

  1. Se il numero calcolato è inferiore a 1, assegna a ogni vNIC una coda .

  2. Determina se il numero calcolato è maggiore del massimo di code per vNIC, pari a 16. Se il numero calcolato è maggiore di 16, ignora il numero calcolato, e assegnare invece a ciascuna code vNIC 16.

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].

  1. Se il numero calcolato è inferiore a 1, assegna a ogni vNIC una coda .

  2. Determina se il numero calcolato è maggiore del massimo di code per vNIC, pari a 32. Se il numero calcolato è maggiore di 32, ignora il numero calcolato e assegna ogni vNIC 32 viene messo in coda.

Gli esempi seguenti mostrano come calcolare il numero predefinito di code per di 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 numero massimo possibile di code per vNIC. Google Cloud assegna 16 code per vNIC.

Sui sistemi Linux, puoi utilizzare ethtool per configurare un vNIC con meno code rispetto al numero di code assegnate da Google Cloud per vNIC.

Allocazione di code personalizzate per le istanze VM

Al posto dell'allocazione predefinita delle code, puoi assegnare una numero di code personalizzate (totale di RX e TX) per ogni vNIC quando crei un nuovo di computing mediante l'API Compute Engine.

Il numero di code personalizzate specificato deve rispettare le seguenti regole:

  • Il numero minimo di code che puoi assegnare per ogni vNIC è uno.

  • Il numero massimo di code che puoi assegnare a ogni vNIC di un'istanza VM è inferiore del conteggio di vCPU o del numero massimo di code per vNIC, in base al tipo di driver:

    • Utilizzo di virtIO o un driver personalizzato, il numero massimo di code è 32.
    • Utilizzando gVNIC, il numero massimo di code è 16.
  • Se assegni conteggi personalizzati di code a tutte le NIC dell'istanza di computing, la somma delle assegnazioni del conteggio code deve essere minore o uguale a il numero di vCPU assegnate all'istanza.

Puoi sottoscrivere un abbonamento eccessivo del conteggio delle code personalizzate per le tue 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 il networking Tier_1.
  • Ha il networking Tier_1 abilitato.
  • Specificato un conteggio 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. 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 l'istanza è il numero di vCPU, ovvero 8. Puoi assegnare 1 coda a nic0, 4 code a nic1 e 3 code a nic2. In questo esempio, non puoi assegnare successivamente 4 code a nic2 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 entrambe le NIC fino a 32 code ciascuna quando si utilizza il driver virtIO o fino a 16 code ciascuna quando utilizzi il driver gVNIC. In questo esempio, la somma delle code assegnate è sempre inferiore al numero di vCPU.

È anche possibile assegnare un conteggio code personalizzato solo per alcune NIC, in modo che Google Cloud assegna le code alle NIC rimanenti. Il numero di code che che può assegnare per vNIC è comunque soggetto alle regole menzionate in precedenza. Puoi modellare la fattibilità della configurazione e, se la configurazione è possibile, il numero di code che Google Cloud assegna alle NIC rimanenti con questo processo:

  1. 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 che tu abbia assegnato a nic0 5 code, nic1 6 code, nic2 4 code e lascia che Google Cloud assegnare code per nic3, nic4 e nic5. In questo esempio, la somma code assegnate in modo personalizzato è 5+6+4 = 15.

  2. 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 ha 20-15 = 5 code rimanenti e assegnale alle NIC rimanenti (nic3, nic4, nic5).

  3. Dividi la differenza rispetto al passaggio precedente per il numero di NIC rimanenti ed eliminare tutto il resto: ⌊(number of vCPUs - sum of assigned queues)/(number of remaining NICs)⌋. Questo calcolo genera sempre numero intero (non una frazione) maggiore di zero a causa del del vincolo descritto nel passaggio precedente. Google Cloud assegna ogni NIC rimanente un conteggio code corrispondente al numero calcolato finché calcolato non è maggiore del numero massimo di code per vNIC. Il numero massimo di code per vNIC dipende dal tipo di driver:

    • Usando virtIO o un driver personalizzato, se viene calcolato il numero di code ogni vNIC rimanente è maggiore di 32, Google Cloud assegna ogni coda di vNIC 32 rimanente.
    • Viene utilizzato gVNIC, se il numero calcolato di code per ogni vNIC rimanente è maggiore di 16, Google Cloud assegna ogni Code vNIC 16.

Configura conteggi personalizzati delle code

Per creare un'istanza Compute che utilizza un conteggio code personalizzato per uno o più elementi. NIC o vNIC, completa i seguenti passaggi.

gcloud

  1. Se non disponi già di un Rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creale.
  2. Utilizza la Comando gcloud compute instances create per creare l'istanza Compute. Ripeti il flag --network-interface per ogni vNIC che vuoi configurare per l'istanza e includi l'opzione queue-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 Compute
  • ZONE: la zona in cui creare l'istanza
  • MACHINE_TYPE: il valore tipo di macchina in esecuzione in un'istanza Compute Engine. Per sottoscrivere un abbonamento eccessivo del conteggio delle code, il tipo di macchina specificare deve supportare il networking gVNIC e Tier_1.
  • NETWORK_NAME: nome della rete creata in precedenza
  • SUBNET_*: il nome di una delle subnet create in precedenza
  • QUEUE_SIZE: il numero di code per vNIC, alle regole illustrate Allocazione personalizzata delle code.

Terraform

  1. Se non disponi già di un Rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creale.
  2. Crea un'istanza Compute con conteggi di code specifici per vNIC utilizzando il metodo google_compute_instance risorsa. Ripeti il parametro --network-interface per ogni vNIC che vuoi configurare per l'istanza Compute e includere il parametro queue-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 name per la nuova istanza Compute
  • PROJECT_ID: ID del progetto da creare dell'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 guest
  • IMAGE_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 GiB
  • DISK_TYPE: il tipo di disco da utilizzare per l'avvio disco, ad esempio pd-standard
  • MACHINE_TYPE: il valore tipo di macchina in esecuzione in un'istanza Compute Engine. Per sottoscrivere un abbonamento eccessivo del conteggio delle code, il tipo di macchina specificare deve supportare il networking gVNIC e Tier_1.
  • ZONE: la zona in cui creare l'istanza
  • QUEUE_COUNT: il numero di code per vNIC, alle regole illustrate Allocazione personalizzata delle code.
  • SUBNET_*: il nome della subnet che la rete si connette

REST

  1. Se non disponi già di un Rete VPC con una subnet per ogni interfaccia vNIC che prevedi di configurare, creale.
  2. Crea un'istanza Compute con conteggi di code specifici per le NIC utilizzando il metodo 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: ID del progetto da creare l'istanza Compute
    • ZONE: zona in cui creare l'istanza Compute
    • VM_NAME: nome del nuova istanza Compute
    • MACHINE_TYPE: tipo di macchina, predefinita o personalizzato, per la nuova istanza Compute. Per sottoscrivere un numero eccessivo di code, il deve supportare il networking gVNIC e Tier_1.
    • SUBNET_*: il nome della subnet a cui l'interfaccia di rete si connette
    • QUEUE_COUNT: numero di code per vNIC, alle regole illustrate Allocazione personalizzata delle code.

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 che intendi passare ha un numero diverso di vCPU, il conteggio delle code predefinito per l'istanza viene ricalcolato tipo di macchina.

Se l'istanza Compute ha vNIC che utilizzano conteggi di code personalizzati non predefiniti, puoi modificare il tipo di macchina utilizzando Google Cloud CLI dall'API Compute Engine a 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