Compute Engine assegna le vCPU alle istanze di macchine virtuali (VM) o bare metal quando le crei. Questo documento spiega come mappare le vCPU all'hardware fisico per aiutarti a ottimizzare le prestazioni, gestire i costi e rispettare i requisiti di licenza del software.
Informazioni sulle vCPU
Una CPU virtuale (vCPU) rappresenta un'unità di potenza della CPU (Central Processing Unit) assegnata alla tua istanza di computing. A seconda dell'architettura del processore sottostante, l'esecuzione di una vCPU è pianificata su un singolo thread di esecuzione hardware o su un intero core della CPU fisica dedicato.
Le vCPU fanno parte di una piattaforma CPU. Una piattaforma CPU è una configurazione basata su CPU che include quanto segue:
- Tipo di processore CPU
- Set di istruzioni (come AVX2 e AVX-512)
- Dimensioni della cache
- Velocità di clock
- Suddivisioni NUMA
- Tempi di ricerca per l'accesso alla memoria
- Acceleratori on-chip
Allocazione di vCPU a un'istanza di computing
Per creare una VM o un'istanza bare metal (collettivamente denominate istanza di computing), utilizza un tipo di macchina. Il tipo di macchina determina le risorse
che Compute Engine alloca all'istanza. Ad esempio, il tipo di macchina c4-standard-4 crea una VM con 4 vCPU e 16 GB di memoria.
Per aiutarti a scegliere il tipo di macchina giusto per il tuo workload, Compute Engine raggruppa i tipi di macchina in famiglie di macchine e serie di macchine.
- Famiglia di macchine: un insieme selezionato di configurazioni di processori e hardware ottimizzate per workload specifici, ad esempio per uso generico, ottimizzate per l'acceleratore o ottimizzate per la memoria.
Serie di macchine: una combinazione specifica di processore CPU, hardware e funzionalità di networking all'interno di una famiglia di macchine. Ogni serie è incentrata su un aspetto diverso delle prestazioni o della potenza di calcolo. Ad esempio, la serie E offre VM efficienti a basso costo, mentre la serie C offre prestazioni migliori e più coerenti rispetto alla serie E.
- Una serie di macchine può avere più generazioni, ad esempio C3 e C4. Un numero di generazione o un numero nella serie più alto indica processori o tecnologie della CPU sottostanti più recenti. Ad esempio, la serie M4, eseguita su processori Intel Xeon di 5ª generazione (noti anche come Emerald Rapids), è di una generazione più recente rispetto alla serie di macchine M3, eseguita su processori Intel Xeon di 3ª generazione (noti anche come Ice Lake).
- L'architettura sottostante per una serie e un tipo di macchina è indicata da una lettera finale nel nome della serie di macchine. Ad esempio, la serie di macchine C di quarta generazione è disponibile come C4 (Intel), C4D (AMD), C4A (Arm) o C4N (ottimizzata per la rete).
Mappatura dei core fisici e multi-threading simultaneo
Nella maggior parte dei processori x86, ogni core della CPU fisica supporta due thread di esecuzione hardware. I processori Intel Xeon utilizzano Intel Hyper-Threading e i processori AMD EPYC utilizzano il multi-threading simultaneo (SMT). Per questi processori, Compute Engine implementa ogni vCPU come un singolo thread hardware eseguito su un core fisico. In questo modo, due vCPU condividono un singolo core della CPU fisica (un rapporto 2:1 tra vCPU e core fisici). Ad esempio, una VM con 4 vCPU utilizza 2 core della CPU fisica con SMT.
Su alcune serie di macchine e architetture di processori, Compute Engine non utilizza SMT. Al contrario, ogni vCPU viene mappata direttamente a un core della CPU fisica dedicato (un rapporto 1:1 tra vCPU e core fisici):
- Processori Arm: nelle serie di macchine basate su Arm64 come N4A, C4A o A4X, l'architettura hardware utilizza core single-threaded. Ogni vCPU rappresenta un intero core fisico.
- Serie di macchine ottimizzate per il calcolo: le serie di macchine H4D e H3 non supportano SMT. Ogni vCPU rappresenta un intero core della CPU fisica, offrendo prestazioni elevate per singolo thread ed eliminando la contesa delle risorse tra i thread.
- Serie di macchine Tau: per le serie di macchine Tau T2A (basate su processori Ampere Altra) e Tau T2D (basate su processori AMD EPYC Milan di 3ª generazione), Compute Engine disattiva SMT per impostazione predefinita. Questi tipi di istanze di computing hanno sempre una vCPU per core.
- Istanze bare metal: per le istanze bare metal, una vCPU equivale a una CPU. Il numero di vCPU disponibili per l'istanza è equivalente al numero di thread hardware sul server host. Non puoi regolare o impostare manualmente i thread per core.
Per soddisfare requisiti specifici di workload o licenze software, puoi personalizzare il modo in cui le vCPU vengono visualizzate nel sistema operativo guest. Per ulteriori informazioni, consulta Personalizza il numero di core della CPU visibili. Per un elenco delle serie di macchine e delle architetture che non utilizzano l'SMT, consulta Imposta il numero di thread per core.
vCPU dedicate e con core condivisi a confronto
Quando scegli un tipo di macchina, le vCPU vengono mappate a un thread hardware della CPU o utilizzano un modello di risorse con core condivisi:
- vCPU complete: i tipi di macchine standard, con memoria elevata, con CPU elevata e personalizzate
allocano un thread di esecuzione hardware o un core fisico per ogni vCPU.
- Per le serie di macchine N4, N4A, N4D ed E2 della famiglia di macchine per uso generico, il sistema di gestione dinamica delle risorse (DRM) garantisce che ogni vCPU attiva sia supportata da un thread di esecuzione hardware disponibile. DRM consente a Compute Engine di utilizzare meglio le CPU fisiche disponibili pianificando le istanze di computing sui server in base alla domanda di risorse e pianificando i thread vCPU sulle CPU fisiche in modo da ridurre al minimo il tempo di attesa. Le serie di macchine N1, N2 e N2D della famiglia di macchine per uso generico utilizzano la pianificazione standard dell'host.
- Per le serie di macchine C, M, G, Z e A, le risorse vCPU vengono assegnate esclusivamente alla tua istanza e non condividono mai i cicli di esecuzione con altre istanze di computing.
vCPU con core condivisi: i tipi di macchine con core condivisi sono
e2-micro,e2-small,e2-medium,f1-microeg1-small. Questi tipi di macchine condividono un core della CPU fisica utilizzando il cambio di contesto. Anziché thread hardware dedicati, queste VM con core condivisi sostengono una frazione specifica di tempo del core fisico:e2-microsupporta 2 vCPU, ognuna per il 12,5% del tempo di CPU (25% in totale).e2-smallsupporta 2 vCPU, ognuna per il 25% del tempo di CPU (50% in totale).e2-mediumsupporta 2 vCPU, ognuna per il 50% del tempo di CPU (100% in totale).f1-microsupporta 1 vCPU per un massimo del 20% del tempo di CPU.g1-smallsupporta 1 vCPU per un massimo del 50% del tempo di CPU.
Rispetto alle VM con vCPU complete, le VM con vCPU con core condivisi offrono un'opzione conveniente per l'esecuzione di piccole applicazioni, microservizi o workload di sviluppo o test che non richiedono un throughput di picco continuo della CPU.
Caratteristiche delle prestazioni delle vCPU
Le prestazioni di elaborazione di una vCPU dipendono dalla piattaforma CPU, dalla velocità di clock, dalla gerarchia della cache, dalla dinamica del multi-threading e dalla pianificazione delle risorse.
Piattaforme CPU e set di istruzioni
Compute Engine offre istanze di computing eseguite su più generazioni di processori Intel, AMD, Arm e Google personalizzati. Ogni piattaforma CPU introduce miglioramenti della microarchitettura e set di istruzioni specializzati:
- Advanced Vector Extensions (AVX-512): disponibile sulle piattaforme Intel (come Ice Lake, Emerald Rapids e Sapphire Rapids) e sulle piattaforme AMD EPYC (Genoa e Turin), AVX-512 accelera la matematica vettoriale, il computing scientifico e la compressione dei dati.
- AMX e VNNI: queste estensioni accelerano l'inferenza del deep learning e le operazioni con matrici direttamente sulla vCPU.
- Advanced Matrix Extensions (AMX) è disponibile sui processori Intel (Intel Xeon di 4ª generazione Sapphire Rapids e versioni successive).
- Vector Neural Network Instructions (VNNI) è disponibile sia sui processori Intel sia su quelli AMD EPYC (Genoa di 4ª generazione e versioni successive).
- Arm NEON e SVE: Arm NEON, disponibile sulla piattaforma CPU Ampere Altra, e Scalable Vector Extension (SVE), disponibile sulle piattaforme CPU Google Axion e NVIDIA Grace, forniscono l'esecuzione di vettori scalabili per workload web cloud-native.
Velocità di clock e frequenza turbo
Una vCPU esegue le istruzioni alla frequenza di clock di base del processore fisico sottostante. Quando i workload richiedono una potenza di elaborazione aggiuntiva e l'headroom termico lo consente, i processori aumentano automaticamente la frequenza a una frequenza turbo all-core o single-core.
Alcune serie di macchine funzionano alle velocità di clock sostenute più elevate in Compute Engine. Ad esempio, C4 in esecuzione su Granite Rapids ha una frequenza turbo all-core fino a 3,9 GHz, mentre A3 Mega o A3 High hanno una frequenza turbo all-core fino a 3,8 GHz. Scegli vCPU ad alta frequenza per applicazioni single-thread, automazione della progettazione elettronica (EDA) e server di gioco.
Per visualizzare le frequenze di ogni piattaforma CPU utilizzata da Compute Engine, consulta Piattaforme CPU.
Condivisione delle risorse di multi-threading
Sui tipi di macchine con SMT attivo (2 vCPU per core), i due thread di esecuzione hardware condividono le cache di istruzioni e dati di livello 1 (L1), la cache di livello 2 (L2), le unità di esecuzione e i buffer di ricerca della traduzione (TLB) del core fisico.
- Workload con vincoli di I/O e simultanei: per i server web, gli API Gateway e le operazioni di database con accesso frequente alla memoria, SMT aumenta il throughput complessivo dei core eseguendo istruzioni su un thread mentre l'altro thread attende il recupero della memoria.
- Workload legati al calcolo: per le applicazioni che saturano continuamente le unità in virgola mobile o le cache L1/L2, la condivisione delle unità di esecuzione tra due vCPU può causare conflitti di risorse. Se il tuo workload presenta conflitti su istanze di computing abilitate per SMT, valuta la possibilità di disattivare SMT impostando i thread per core su 1 o di eseguire la migrazione a una serie di macchine con core fisici dedicati (come C4A o H4D).
Gestione dinamica delle risorse e monitoraggio delle prestazioni
Compute Engine utilizza ottimizzazioni hardware e software specializzate per mantenere una latenza vCPU prevedibile:
- Architettura Google Titanium: le serie di macchine di nuova generazione (tra cui N4, N4D, N4A, C3, C3D e C4) utilizzano schede di offload Google Titanium, uno scheduler della CPU personalizzato e la migrazione live basata sulle prestazioni. La gestione dinamica delle risorse preserva l'affinità NUMA (Non-Uniform Memory Access) e riduce al minimo le interferenze dei vicini rumorosi.
- Gestione dinamica delle risorse per E2: per le VM E2, l'hypervisor mappa dinamicamente la CPU virtuale e la memoria alle risorse fisiche on demand. Questa mappatura dinamica aumenta l'efficienza in termini di costi ottimizzando l'utilizzo delle risorse fisiche.
- Unità di monitoraggio delle prestazioni (PMU): puoi attivare la PMU sulle serie di macchine supportate (come C4, M4 e A4X) per accedere ai contatori hardware di basso livello. Gli strumenti di profilazione utilizzano i contatori PMU per monitorare gli errori di previsione dei rami, i fallimenti della cache e le istruzioni per ciclo (IPC).
- Ops Agent: puoi installare Ops Agent sulle tue istanze di computing per monitorare l'utilizzo della CPU e raccogliere dati di telemetria a livello di sistema. Ops Agent invia questi dati a Google Cloud Observability per aiutarti ad analizzare e ottimizzare le prestazioni delle vCPU.
Considerazioni sui prezzi
Quando pianifichi il budget e la capacità per i tuoi workload, tieni conto di come Compute Engine fattura le vCPU e dei modelli di sconto disponibili.
Granularità della fatturazione delle risorse
Per la maggior parte delle serie di macchine, Compute Engine fattura le vCPU e la memoria di sistema come risorse dedicate separate. Paghi per le istanze al secondo, con una durata di fatturazione minima di 1 minuto per ogni istanza di computing che avvii. Dopo il primo minuto, paghi solo per i secondi esatti in cui l'istanza rimane in esecuzione.
Per i tipi di macchine con core condivisi (come E2 con core condivisi e N1 con core condivisi), Compute Engine raggruppa vCPU e memoria in un'unica tariffa oraria combinata, anziché fatturarle come risorse singole.
Puoi esaminare le tariffe di fatturazione delle vCPU nelle pagine dei prezzi delle istanze VM.
Ottimizzazione dei costi e sconti
Puoi ridurre i costi di fatturazione delle vCPU utilizzando le seguenti opzioni di prezzo:
- Sconti per impegno di utilizzo (CUD): se i tuoi workload hanno requisiti di vCPU prevedibili e costanti, puoi acquistare impegni di 1 o 3 anni per ricevere sconti fino al 55%-70% rispetto ai prezzi on demand. Compute Engine offre CUD basati sulle risorse per serie di macchine specifiche in una regione e CUD flessibili basati sulla spesa che si applicano a più serie di macchine e regioni. Puoi condividere i CUD tra i progetti all'interno del tuo account di fatturazione Cloud.
- Sconti per utilizzo sostenuto (SUD): per le serie di macchine idonee (come N1, N2, N2D, C2, M1 e M2), Compute Engine applica automaticamente i SUD quando le vCPU vengono eseguite per più del 25% di un mese di fatturazione. L'esecuzione continua di un'istanza VM per l'intero mese offre uno sconto fino al 20% o al 30%, a seconda della serie di macchine. Le serie di macchine con prezzi on demand ridotti (tra cui E2, N4, C3, C4, Tau T2A e A3) non offrono sconti per utilizzo sostenuto (SUD).
- VM spot: per i workload a tolleranza di errore, stateless o batch, le VM spot offrono sconti dal 60% al 91% sui prezzi delle vCPU on demand standard. Compute Engine può arrestare o recuperare le VM spot in qualsiasi momento per recuperare capacità.
- Nodi single-tenant e overcommit delle vCPU: quando esegui istanze VM su nodi single-tenant, paghi per il server host fisico dedicato anziché per le singole vCPU. Sui nodi single-tenant, puoi configurare l'overcommit della CPU (fino a un rapporto di 2:1) per pianificare più vCPU nelle istanze VM rispetto ai core dell'host fisico, riducendo i costi di computing per gli ambienti di sviluppo o di test.
- Dynamic Workload Scheduler (DWS):
per i workload AI o ML, puoi ottimizzare i costi delle vCPU e migliorare la disponibilità delle risorse utilizzando DWS.
- VM con avvio flessibile: utilizzale per una pianificazione economica e flessibile dei workload che vengono eseguiti per un massimo di 7 giorni.
- Richieste di prenotazione futura in modalità calendario: utilizzale per prenotare risorse per un massimo di 90 giorni in una data e un'ora future specifiche.
- Suggerimenti relativi al dimensionamento ottimale: Compute Engine analizza le metriche storiche di utilizzo della vCPU e fornisce suggerimenti automatici sul tipo di macchina e sull'istanza di computing inattiva. L'applicazione di questi suggerimenti ti aiuta a ridimensionare le vCPU di cui è stato eseguito l'overprovisioning o ad arrestare le istanze inattive.
Disponibilità delle serie di macchine
La tabella seguente mappa i modelli di architettura vCPU, i rapporti di multi-threading e il numero massimo di vCPU nelle serie di macchine Compute Engine. I conteggi massimi di vCPU riflettono il tipo di macchina più grande di ogni serie, incluse le istanze bare metal.
| Famiglia di macchine | Serie di macchine | Architettura del processore | Rapporto vCPU/core | vCPU massime | Opzione con core condiviso |
|---|---|---|---|---|---|
| Per uso generico | E2 |
Intel Xeon / AMD EPYC | 2 vCPU : 1 core (SMT) | 32 vCPU | Sì (e2-micro, e2-small, e2-medium) |
| Per uso generico | N1 |
Più generazioni di processori Intel Xeon | 2 vCPU : 1 core (SMT) | 96 vCPU | Sì (f1-micro, g1-small) |
| Per uso generico | N2 |
Intel Xeon (Cascade Lake / Ice Lake) | 2 vCPU : 1 core (SMT) | 128 vCPU | No |
| Per uso generico | N2D |
AMD EPYC (Rome / Milan) | 2 vCPU : 1 core (SMT) | 224 vCPU | No |
| Per uso generico | N4 |
Intel Xeon di 5ª generazione (Emerald Rapids) | 2 vCPU : 1 core (SMT) | 80 vCPU | No |
| Per uso generico | N4D |
AMD EPYC di 5ª generazione (Turin) | 2 vCPU : 1 core (SMT) | 96 vCPU | No |
| Per uso generico | N4A |
Google Axion (Arm64) | 1 vCPU : 1 core (senza SMT) | 64 vCPU | No |
| Per uso generico | C3 |
Intel Xeon di 4ª generazione (Sapphire Rapids) | 2 vCPU : 1 core (SMT) | 176 vCPU | No |
| Per uso generico | C3D |
AMD EPYC di 4ª generazione (Genoa) | 2 vCPU : 1 core (SMT) | 360 vCPU | No |
| Per uso generico | C4 |
Intel Xeon di 5ª generazione (Emerald Rapids) e Intel Xeon di 6ª generazione (Granite Rapids) | 2 vCPU : 1 core (SMT) | 288 vCPU | No |
| Per uso generico | C4A |
Google Axion (Arm64) | 1 vCPU : 1 core (senza SMT) | 96 vCPU | No |
| Per uso generico | C4D |
AMD EPYC di 5ª generazione (Turin) | 2 vCPU : 1 core (SMT) | 384 vCPU | No |
| Per uso generico | Tau T2A |
Ampere Altra (Arm64) | 1 vCPU : 1 core (senza SMT) | 48 vCPU | No |
| Per uso generico | Tau T2D |
AMD EPYC di 3ª gen (Milan) | 1 vCPU : 1 core (SMT disattivato) | 60 vCPU | No |
| Ottimizzate per il calcolo | C2 |
Intel Xeon (Cascade Lake) | 2 vCPU : 1 core (SMT) | 60 vCPU | No |
| Ottimizzato per il calcolo | C2D |
AMD EPYC (Milan) | 2 vCPU : 1 core (SMT) | 112 vCPU | No |
| Ottimizzato per il calcolo | H3 |
Intel Xeon di 4ª generazione (Sapphire Rapids) | 1 vCPU : 1 core (senza SMT) | 88 vCPU | No |
| Ottimizzato per il calcolo | H4D |
AMD EPYC di 5ª generazione (Turin) | 1 vCPU : 1 core (senza SMT) | 192 vCPU | No |
| Ottimizzate per la rete | C4N |
Intel Xeon di 5ª generazione (Emerald Rapids) | 2 vCPU : 1 core (SMT) | 192 vCPU | No |
| Ottimizzate per la memoria | X4 |
Intel Xeon di 4ª generazione (Sapphire Rapids) | 2 vCPU : 1 core (SMT) | 1920 vCPU | No |
| Ottimizzato per la memoria | M1 |
Intel Xeon (Skylake e Broadwell) | 2 vCPU : 1 core (SMT) | 160 vCPU | No |
| Ottimizzato per la memoria | M2 |
Intel Xeon di 2ª generazione (Cascade Lake) | 2 vCPU : 1 core (SMT) | 416 vCPU | No |
| Ottimizzato per la memoria | M3 |
Intel Xeon di 3ª generazione (Ice Lake) | 2 vCPU : 1 core (SMT) | 128 vCPU | No |
| Ottimizzato per la memoria | M4/M4N |
Intel Xeon di 5ª generazione (Emerald Rapids) | 2 vCPU : 1 core (SMT) | 224 vCPU | No |
| Ottimizzate per l'archiviazione | Z3 |
Intel Xeon di 4ª generazione (Sapphire Rapids) | 2 vCPU : 1 core (SMT) | 192 vCPU | No |
| Ottimizzato per l'archiviazione | Z4D |
AMD EPYC di 5ª generazione (Turin) | 2 vCPU : 1 core (SMT) | 288 vCPU | No |
| Ottimizzato per l'archiviazione | Z4M |
Intel Xeon di 5ª generazione (Emerald Rapids) | 1 vCPU : 1 core (senza SMT) | 192 vCPU | No |
| Ottimizzate per l'acceleratore | A4X Max |
NVIDIA Grace | 1 vCPU : 1 core (senza SMT) | 144 vCPU | No |
| Ottimizzate per l'acceleratore | A4X |
NVIDIA Grace | 1 vCPU : 1 core (senza SMT) | 140 vCPU | No |
| Ottimizzate per l'acceleratore | A4 |
Intel Xeon di 5ª generazione (Emerald Rapids) abbinato a GPU NVIDIA | 2 vCPU : 1 core (SMT) | 224 vCPU | No |
| Ottimizzate per l'acceleratore | A3 |
Intel Xeon (Emerald Rapids e Sapphire Rapids) abbinati a GPU NVIDIA | 2 vCPU : 1 core (SMT) | 224 vCPU | No |
| Ottimizzate per l'acceleratore | A2 |
Intel Xeon di 2ª generazione (Cascade Lake) accoppiato con GPU NVIDIA | 2 vCPU : 1 core (SMT) | 96 vCPU | No |
| Ottimizzate per l'acceleratore | G4 |
AMD EPYC di 5ª generazione (Turin) abbinato a GPU NVIDIA | 2 vCPU : 1 core (SMT) | 384 vCPU | No |
| Ottimizzate per l'acceleratore | G2 |
Intel Xeon di 2ª generazione (Cascade Lake) accoppiato con GPU NVIDIA | 2 vCPU : 1 core (SMT) | 96 vCPU | No |
Per specifiche dettagliate sulla memoria per vCPU, sulla larghezza di banda della rete e sul supporto dei dischi locali per tutte le serie, consulta la Guida alle risorse delle macchine.
Passaggi successivi
- Confronta le specifiche di vCPU e memoria nella Guida alle risorse e al confronto per le famiglie di macchine.
- Scopri le piattaforme CPU disponibili su Compute Engine.
- Consulta la sezione VM con core condivisi per scoprire di più sulle istanze con core condivisi.
- Scopri come applicare i suggerimenti sui tipi di macchine e i suggerimenti per le VM inattive per ottimizzare l'utilizzo delle vCPU.