La personalizzazione del numero di core CPU visibili può fornire un controllo granulare i costi di licenza, mantenendo le prestazioni del networking i dischi permanenti. Questa personalizzazione riduce il numero di vCPU disponibili per l'istanza della macchina virtuale (VM); non cambia il tipo di macchina o il prezzo.
Compute Engine implementa ogni CPU virtuale (vCPU) come un singolo hardware multithread in esecuzione su un core CPU fisico. Per ridurre il numero di vCPU disponibili per una VM, Compute Engine ti consente di personalizzare il numero di core della CPU visibili.
I core visibili sono i core della CPU nell'hardware sottostante che le tue VM consumare. Per impostazione predefinita, il numero di core della CPU visibili a una VM è il numero di vCPU sul tipo di macchina diviso per il numero di thread per core:
- Core della CPU visibili = vCPU sul tipo di macchina / thread per core
Ad esempio, il tipo di macchina c2-standard-60
specifica 60 vCPU. Supponendo che
Per impostazione predefinita, è di 2 thread per core, il numero di core della CPU visibili è 30. Se
riduce il numero di core visibili da 30 a 20, il numero di vCPU
è ridotta da 60 a 40.
Valuta la possibilità di personalizzare il numero di core della CPU visibili se entrambi i seguenti casi applica:
Esegui software, ad esempio Windows Server o SQL Server, concesso in licenza in base al numero di vCPU disponibili.
Utilizzi tipi di macchine predefinite, che non consentono di modificare il numero di vCPU o la quantità di RAM.
Prima di personalizzare il numero di vCPU disponibili per una VM, valuta la possibilità di utilizzare un tipo di macchina personalizzata.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per personalizzare il numero di core CPU visibili,
chiedi all'amministratore di concederti
Ruolo IAM Amministratore istanze Compute (v1) (roles/compute.instanceAdmin.v1
) nel progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per personalizzare il numero di core CPU visibili. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per personalizzare il numero di core della CPU visibili sono necessarie le seguenti autorizzazioni:
-
Per personalizzare il numero di core CPU visibili durante la creazione della VM:
compute.instances.create
nel progetto- Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnly
sull'immagine - Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnly
nello snapshot - Per utilizzare un modello di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
nel modello di istanza - Per assegnare una rete legacy alla VM,:
compute.networks.use
nel progetto - Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
nel progetto - Per assegnare un indirizzo IP esterno alla VM quando nel progetto viene utilizzata una rete precedente:
compute.networks.useExternalIp
- Per specificare una subnet per la VM:
compute.subnetworks.use
nel progetto o nella subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando utilizzi una rete VPC:
compute.subnetworks.useExternalIp
nel progetto o nella subnet scelta - Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
nel progetto - Per impostare i tag per la VM:
compute.instances.setTags
sulla VM - Per impostare le etichette per la VM:
compute.instances.setLabels
sulla VM - Per impostare un account di servizio per consentire alla VM di utilizzare:
compute.instances.setServiceAccount
sulla VM - Per creare un nuovo disco per la VM:
compute.disks.create
nel progetto - Per collegare un disco esistente in modalità di sola lettura o di lettura e scrittura:
compute.disks.use
sul disco - Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnly
sul disco
-
Per personalizzare il numero di core della CPU visibili in un gruppo di VM utilizzando un modello di istanza:
Devi disporre di tutte le autorizzazioni che utilizzeresti durante la creazione della VM e del ruolo
compute.instanceTemplates.create
nel progetto
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati altri ruoli predefiniti.
vCPU e il numero di thread per core
Il numero totale di vCPU su un tipo di macchina equivale al numero di core CPU visibili moltiplicato in base al numero di thread per core. Per la maggior parte delle serie di macchine, il numero thread per core è di 2, ma puoi impostare manualmente il numero di thread per core su 1.
La tabella seguente mostra come sono visibili i core della CPU, il numero di thread per core e
le vCPU totali disponibili sono correlate all'uso del tipo di macchina c2-standard-60
come
esempio.
Tipo di macchina | Core della CPU visibili | Thread per core | vCPU disponibili |
---|---|---|---|
c2-standard-60 |
30 (valore predefinito) |
2 (valore predefinito) |
60 |
c2-standard-60 |
30 (valore predefinito) |
1 |
30 |
c2-standard-60 |
20 |
2 (valore predefinito) |
40 |
c2-standard-60 |
20 |
1 |
20 |
Considerazioni sulle prestazioni
La riduzione del numero di core visibili può influire sulle prestazioni della VM.
Disco permanente
- I limiti delle prestazioni dei dischi permanenti dipendono dal tipo di macchina non sono interessati dal numero di core della CPU visibili. Per ulteriori informazioni, consulta Rendimento dello spazio di archiviazione blocchi.
Traffico in uscita dalla rete
- I limiti di larghezza di banda per l'uscita di rete corrispondono al tipo di macchina e non sono influenzati dal numero di core della CPU visibili. Tuttavia, le prestazioni di rete
variare a seconda del numero di vCPU accessibili alla VM. Per
Ad esempio, un tipo di macchina
n2-standard-16
con un core CPU visibile potrebbe non essere in grado di utilizzare appieno una connessione a 32 Gbps.
Prezzi
La riduzione del numero di core visibili può influire sul costo delle VM.
Costi di licenza del sistema operativo
- Puoi ridurre i costi delle licenze per alcuni sistemi operativi riducendo il numero di core della CPU visibili. I sistemi operativi applicabili sono quelli per i quali ti viene addebitato un costo per ogni vCPU disponibile per la VM, ad esempio Windows Server e SQL Server. Per ulteriori informazioni sulle opzioni di licenza per questi sistemi operativi su Compute Engine, consulta Licenze Microsoft.
Costi, quote e capacità delle VM
- I costi, la quota e la capacità delle VM rimangono invariati quando personalizzi il numero CPU visibili perché Compute Engine addebita costi, tiene traccia della quota alloca lo spazio sui tipi di macchina per le VM come se stessero utilizzando il numero Core della CPU del tipo di macchina. Per ulteriori informazioni Compute Engine fattura le VM, consulta i prezzi delle istanze VM.
Limitazioni
Non puoi personalizzare il numero di core della CPU visibili mentre una VM è nello stato
RUNNING
. Per ulteriori informazioni sugli stati delle VM, consulta Ciclo di vita dell'istanza VM.Nella console Google Cloud, quando il numero di core visibili è ridotto, la metrica di utilizzo della CPU non può essere scalata fino al 100%. È limitato ai numero di core della CPU visibili diviso per il numero massimo di core della CPU.
Tipi di macchine supportati e valori validi per ciascuno
Molti tipi di macchine supportano la personalizzazione del numero di core della CPU visibili. Il valore relativo al conteggio dei core della CPU visibili deve essere un numero intero. Il valore massimo è il numero di vCPU o GPU per i tipi di macchina ottimizzati per l'acceleratore diviso per il numero di thread per core per la VM.
La tabella seguente mostra i tipi di macchine che supportano questa personalizzazione, insieme ai valori validi corrispondenti per i core della CPU visibili per i tipi di macchine in queste famiglie.
Famiglia di tipi di macchina | Numero di vCPU predefinite* | Valori validi per i core della CPU visibili |
---|---|---|
Uso generico | ||
C4 | 4, 8, 16, 32, 48 | Qualsiasi |
C4 | 96 | Multipli di 2 |
C4 | 192 | Multipli di 4 |
C3D | ≤ 180 | Qualsiasi |
C3D | 360 | Multipli di 2 |
C3 | 4, 8, 22, 44 | Multipli di 1 |
C3 | 88 | Multipli di 2 |
C3 | 176 | Multipli di 4 |
c3-*-metal |
192 | Non supportata |
E2 | ≤ 32 | Qualsiasi |
N2 | ≤ 32 | Qualsiasi |
N2 | > 32 | Multipli di 2 |
N2D | ≤ 24 | Qualsiasi |
N2D | > 24 | Multipli di 2 |
N4 | ≤ 80 | Qualsiasi |
N1 | ≤ 64 | Qualsiasi |
N1 | > 64 | Multipli di 2 |
N1 (ottimizzata per TPU) | 48 | Qualsiasi |
N1 (ottimizzata per TPU) | 96 | Multipli di 2 |
Ottimizzato per lo spazio di archiviazione | ||
Z3 | 88 | Multipli di 2 |
Z3 | 176 | Multipli di 4 |
Ottimizzato per il calcolo | ||
H3 | 88 | Multipli di 4 |
C2 | 4, 8, 16, 30 | Qualsiasi |
C2 | 60 | Multipli di 2 |
Ottimizzato per la memoria | ||
M3 | 128 | Multipli di 2 |
M3 | 32, 64 | Qualsiasi |
M2 | 208 | Multipli di 4 |
M2 | 416 | Multipli di 8 |
M1 | 40 | Qualsiasi |
M1 | 80 e 96 | Multipli di 2 |
M1 | 160 | Multipli di 4 |
Ottimizzate per l'acceleratore | ||
A3 | 208 | Multipli di 2 |
A2 | ≤ 48 | Qualsiasi |
A2 | 96 | Multipli di 2 |
G2 | ≤ 48 | Qualsiasi |
G2 | 96 | Multipli di 2 |
Personalizza il numero di core CPU visibili durante la creazione della VM
Per personalizzare il numero di core della CPU visibili durante la creazione di una singola VM, utilizza la console Google Cloud, gcloud CLI o l'API Compute Engine.
L'esempio seguente mostra come creare una VM SQL Server con un numero ridotto di core CPU visibili.
Console
Per personalizzare il numero di core della CPU visibili durante la creazione di una VM:
- In Configurazione macchina > Configurazioni avanzate > Numero di core visibili, seleziona il numero di core visibili.
gcloud
Per creare una VM SQL Server con un numero ridotto di core CPU visibili, utilizza il seguente gcloud compute instances create
comando:
gcloud compute instances create VM_NAME \ --image-project=windows-sql-cloud \ --image-family=sql-ent-2019-win-2019 \ --machine-type=MACHINE_TYPE \ --visible-core-count=VISIBLE_CORE_COUNT \ --zone=ZONE
Sostituisci quanto segue:
VM_NAME
: il nome della VM.MACHINE_TYPE
: un tipo di macchina supportato, ad esempioc2-standard-60
.VISIBLE_CORE_COUNT
: il numero di CPU visibili e un set di dati. Ad esempio, quando utilizzi il tipo di macchinac2-standard-60
, se impostato su20
e il numero di thread per core è2
, sono visibili 40 delle 60 CPU.ZONE
: la zona in cui creare la VM.
REST
Per creare una VM SQL Server con un numero ridotto di core CPU visibili, utilizza
i seguenti instances.insert
:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances { "name": "VM_NAME", ... "advanced_machine_features": { ... "visibleCoreCount": "VISIBLE_CORE_COUNT" }, ... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.ZONE
: la zona in cui creare la VM.VM_NAME
: il nome della VM.VISIBLE_CORE_COUNT
: il numero di CPU visibili e un set di dati. Ad esempio, quando utilizzi il tipo di macchinac2-standard-60
, se impostato su20
e il numero di thread per core è2
, sono visibili 40 delle 60 CPU.
Personalizza il numero di core CPU visibili su un gruppo di VM utilizzando un modello di istanza
Per personalizzare il numero di core CPU visibili durante la creazione di una VM mediante un'istanza utilizzare la console Google Cloud, gcloud CLI l'API Compute Engine.
L'esempio seguente mostra come creare un gruppo di VM SQL Server identiche con un numero ridotto di core della CPU visibili utilizzando un modello di istanza.
Console
Per personalizzare il numero di core della CPU visibili durante la creazione di un modello di istanza:
- In Configurazione macchina > Configurazioni avanzate > Numero di core visibili, seleziona il numero di core visibili.
gcloud
Crea un modello di istanza per le VM SQL Server, ciascuna con un numero ridotto di core CPU visibili, utilizzando il seguente
gcloud compute instance-templates create
comando:gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \ --image-project=windows-sql-cloud \ --image-family=sql-ent-2019-win-2019 \ --machine-type=MACHINE_TYPE \ --visible-core-count=VISIBLE_CORE_COUNT \ --zone=ZONE
Sostituisci quanto segue:
INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza.MACHINE_TYPE
: un tipo di macchina supportato, ad esempioc2-standard-60
.VISIBLE_CORE_COUNT
: il numero di elementi visibili Core della CPU. Ad esempio, quando utilizzi il tipo di macchinac2-standard-60
, se impostato su20
e il numero di thread per core è2
, 40 dei Sono visibili 60 CPU.ZONE
: la zona in cui creare le VM.
Crea le VM SQL Server, ciascuna con un numero ridotto di CPU visibili utilizzando i seguenti
gcloud compute instances create
comando:gcloud compute instances create INSTANCE_NAMES \ --source-instance-template=INSTANCE_TEMPLATE_NAME
Sostituisci quanto segue:
INSTANCE_NAMES
: i nomi delle VM, separate da spazi, per crearle dal modello di istanzaINSTANCE_TEMPLATE_NAME
: il nome del da cui creare le VM
REST
Crea un modello di istanza per le VM SQL Server, ciascuna con un numero ridotto di core della CPU visibili, utilizzando il seguente
instanceTemplates.insert
metodo:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", ... "advanced_machine_features": { ... "visible_core_count": "VISIBLE_CORE_COUNT" }, ... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progetto.INSTANCE_TEMPLATE_NAME
: il nome del modello di istanza.VISIBLE_CORE_COUNT
: il numero di elementi visibili Core della CPU. Ad esempio, quando utilizzi il tipo di macchinac2-standard-60
, se è impostato su20
e il numero di thread per core è2
, sono visibili 40 delle 60 CPU.
Crea le VM SQL Server, ciascuna con un numero ridotto di CPU visibili utilizzando i seguenti
instances.insert
:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances?sourceInstanceTemplate=INSTANCE_TEMPLATE_NAME { "name": "VM_NAME", ... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progettoZONE
: la zona in cui creare la VMINSTANCE_TEMPLATE_NAME
: il nome del da cui creare le VMVM_NAME
: il nome della VM da cui creare il modello di istanza
Personalizza il numero di core CPU visibili
Per personalizzare il numero di core della CPU visibili su una VM esistente, utilizza la console Google Cloud, gcloud CLI o l'API Compute Engine.
Se hai personalizzato il numero di core della CPU visibili su un gruppo di VM utilizzando un modello di istanza, devi creare un nuovo modello di istanza e poi nuove VM da quel modello. Per saperne di più sui modelli di istanza, consulta Modelli di istanza.
Console
Per personalizzare il numero di core CPU visibili su una VM esistente, procedi nel seguente modo:
Arresta la VM.
In Configurazione macchina > Configurazioni avanzate > Numero di core visibili, seleziona il numero di core visibili.
Riavvia la VM.
gcloud
Per aggiornare il valore del numero di core della CPU visibili su una VM esistente, procedi nel seguente modo. Per ulteriori informazioni, consulta Aggiornare le proprietà dell'istanza.
Esporta le proprietà della VM esistenti in un file utilizzando l'API
gcloud compute instances export
un comando kubectl.Nel file contenente le proprietà esportate, modifica o aggiungi il valore per quanto segue:
advancedMachineFeatures: visibleCoreCount: VISIBLE_CORE_COUNT
Aggiorna le proprietà della VM utilizzando il comando
gcloud compute instances update-from-file
con--most-disruptive-allowed-action=RESTART
.
REST
Per aggiornare il numero di core della CPU visibili della VM, utilizza il seguente
metodo instances.update
:
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME?most_disruptive_allowed_action=RESTART { ... "advanced_machine_features": { ... "visible_core_count": "VISIBLE_CORE_COUNT" }, ... }
Sostituisci quanto segue:
PROJECT_ID
: l'ID del progettoZONE
: la zona che contiene la VMVM_NAME
: il nome della VM da cui proprietà di esportazioneVISIBLE_CORE_COUNT
: il numero di core della CPU visibili
Passaggi successivi
Scopri come visualizzare il numero di core della CPU visibili.
Scopri le opzioni di licenza per il software Microsoft.
Scopri come impostare il numero di thread per core.
Scopri i sistemi operativi che puoi eseguire sulle VM di Compute Engine.