La personalizzazione del numero di core della CPU visibili può offrire un controllo granulare sui costi di licenza, mantenendo al contempo le prestazioni di networking e dei dischi permanenti. Questa personalizzazione riduce il numero di vCPU disponibili per l'istanza di macchina virtuale (VM), ma non apporta alcuna modifica al tipo di macchina o al prezzo.
Compute Engine implementa ogni CPU virtuale (vCPU) come un singolo multithread hardware che viene eseguito su un core della CPU fisica. 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 vengono utilizzati dalle VM. Per impostazione predefinita, il numero di core della CPU visibili a una VM corrisponde al 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. Nel caso di
un valore predefinito di 2 thread per core, il numero di core della CPU visibili è 30. Se
riduci il numero di core visibili da 30 a 20, il numero di vCPU funzionali
passa da 60 a 40.
Valuta la possibilità di personalizzare il numero di core della CPU visibili se si applicano entrambe le seguenti condizioni:
Esegui un software, come Windows Server o SQL Server, concesso in licenza in base al numero di vCPU disponibili.
Utilizza tipi di macchina predefinita, che non ti 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 della CPU visibili,
chiedi all'amministratore di concederti
il ruolo IAM Compute Instance Admin (v1) (roles/compute.instanceAdmin.v1
) sul progetto.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene le autorizzazioni necessarie per personalizzare il numero di core della CPU visibili. Per vedere quali sono esattamente le autorizzazioni richieste, 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 della CPU visibili durante la creazione della VM:
compute.instances.create
sul 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
sullo snapshot - Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnly
sul template di istanza - Per assegnare una rete legacy alla VM:
compute.networks.use
sul progetto - Per specificare un indirizzo IP statico per la VM:
compute.addresses.use
sul progetto - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy:
compute.networks.useExternalIp
sul progetto - Per specificare una subnet per la VM:
compute.subnetworks.use
sul progetto o sulla subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete VPC:
compute.subnetworks.useExternalIp
sul progetto o sulla subnet scelta - Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadata
sul 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 service account che utilizzabile dalla VM:
compute.instances.setServiceAccount
sulla VM - Per creare un nuovo disco per la VM:
compute.disks.create
sul progetto - Per collegare un disco esistente in modalità di sola lettura o lettura/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 su un gruppo di VM utilizzando un template di istanza:
Devi disporre di tutte le autorizzazioni che utilizzeresti durante la creazione della VM e di
compute.instanceTemplates.create
sul progetto
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
vCPU e numero di thread per core
Le vCPU totali su un tipo di macchina corrispondono al numero di core della CPU visibili moltiplicato per il numero di thread per core. Per la maggior parte delle serie di macchine, il numero di thread per core è 2, ma puoi impostare manualmente questo valore su 1.
La tabella seguente mostra la relazione tra i core della CPU visibili, il numero di thread per core e
le vCPU totali disponibili utilizzando il 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 e non sono interessati dal numero di core della CPU visibili. Per ulteriori informazioni, vedi Prestazioni dell'archiviazione a blocchi.
Traffico di rete in uscita
- I limiti di larghezza di banda per il traffico di rete in uscita corrispondono al tipo di macchina e
non sono influenzati dal numero di core della CPU visibili. Tuttavia, le prestazioni di rete
variano a seconda del numero di vCPU accessibili alla VM. Per
esempio, un tipo di macchina
n2-standard-16
con un core della CPU visibile potrebbe non essere in grado di utilizzare completamente 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 diminuire i costi di licenza di 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 Window Server e SQL Server. Per ulteriori informazioni sulle opzioni di licenza per questi sistemi operativi su Compute Engine, vedi Licenze Microsoft.
Costi, quote e capacità delle VM
- Quando personalizzi il numero di core della CPU visibili, i costi, le quote e la capacità delle VM rimangono invariati perché Compute Engine applica addebiti, monitora le quote e alloca spazio sui tipi di macchina per le VM come se queste utilizzassero il numero di core della CPU del tipo di macchina. Per ulteriori informazioni su come Compute Engine addebita costi per le VM, vedi Prezzi delle istanze VM.
Limitazioni
Non puoi personalizzare il numero di core della CPU visibili mentre una VM si trova nello stato
RUNNING
. Per ulteriori informazioni sugli stati delle VM, vedi Ciclo di vita dell'istanza VM.Nella console Trusted Cloud , quando il numero di core visibili è ridotto, la metrica di utilizzo della CPU non può scalare al 100%. Questa è limitata al numero di core della CPU visibili diviso per il numero massimo di core della CPU.
Tipi di macchina supportati e valori validi corrispondenti
Molti tipi di macchina supportano la personalizzazione del numero di core della CPU visibili. Il valore per il numero di core della CPU visibili deve essere un numero intero. Il valore massimo corrisponde al numero di vCPU o GPU per i tipi di macchina ottimizzati per l'acceleratore sul tipo di macchina diviso il numero di thread per core per la VM.
La tabella seguente mostra i tipi di macchina che supportano questa personalizzazione, insieme ai valori validi corrispondenti per i core della CPU visibili per i tipi di macchina in queste famiglie.
Famiglia di tipi di macchina | Numero di vCPU predefinite* | Valori validi per i core della CPU visibili |
---|---|---|
Uso generico | ||
C4D (anteprima) | Tutti i tipi di macchina | Multipli di 2 |
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 supportato |
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 (ottimizzato per TPU) | 48 | Qualsiasi |
N1 (ottimizzato per TPU) | 96 | Multipli di 2 |
Ottimizzato per l'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 | ||
M4 | 28, 56 | Qualsiasi |
M4 | 112 | Multipli di 2 |
M4 | 224 | Multipli di 4 |
M3 | 128 | Multipli di 2 |
M3 | 32, 64 | Qualsiasi |
M2 | 208 | Multipli di 4 |
M2 | 416 | Multipli di 8 |
M1 | 40 | Qualsiasi |
M1 | 80, 96 | Multipli di 2 |
M1 | 160 | Multipli di 4 |
Ottimizzato per l'acceleratore | ||
A4 | 224 | Multipli di 2 |
A3 | 26, 52, 104, 208, 224 | Multipli di 2 |
A2 | ≤ 48 | Qualsiasi |
A2 | 96 | Multipli di 2 |
G2 | ≤ 48 | Qualsiasi |
G2 | 96 | Multipli di 2 |
Personalizza il numero di core della 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 consoleTrusted Cloud , gcloud CLI o l'API Compute Engine.
L'esempio seguente mostra come creare una VM SQL Server con un numero ridotto di core della CPU visibili.
Console
Per personalizzare il numero di core della CPU visibili durante la creazione di una VM, procedi come segue:
- 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 della CPU visibili, utilizza il seguente comando
gcloud compute instances create
:
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 VMMACHINE_TYPE
: un tipo di macchina supportato, ad esempioc2-standard-60
VISIBLE_CORE_COUNT
: il numero di core della CPU visibili. 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 della CPU visibili, utilizza
il seguente metodo
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 progettoZONE
: la zona in cui creare la VMVM_NAME
: il nome della VMVISIBLE_CORE_COUNT
: il numero di core della CPU visibili. 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 della CPU visibili su un gruppo di VM utilizzando un template di istanza
Per personalizzare il numero di core della CPU visibili durante la creazione di una VM mediante un template di istanza, utilizza la console Trusted Cloud , gcloud CLI o l'API Compute Engine.
Il seguente esempio mostra come creare un gruppo di VM SQL Server identiche con un numero ridotto di core della CPU visibili utilizzando un template di istanza.
Console
Per personalizzare il numero di core della CPU visibili durante la creazione di un template di istanza, segui questi passaggi:
- In Configurazione macchina > Configurazioni avanzate > Numero di core visibili, seleziona il numero di core visibili.
gcloud
Crea un template di istanza per le VM SQL Server, ciascuna con un numero ridotto di core della CPU visibili, utilizzando il seguente comando
gcloud compute instance-templates create
: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 template di istanzaMACHINE_TYPE
: un tipo di macchina supportato, ad esempioc2-standard-60
VISIBLE_CORE_COUNT
: il numero di core della CPU visibili. Ad esempio, quando utilizzi il tipo di macchinac2-standard-60
, se questo è impostato su20
e il numero di thread per core è2
, sono visibili 40 delle 60 CPU.ZONE
: la zona in cui creare le VM
Crea le VM SQL Server, ciascuna con un numero ridotto di core della CPU visibili, utilizzando il seguente comando
gcloud compute instances create
:gcloud compute instances create INSTANCE_NAMES \ --source-instance-template=INSTANCE_TEMPLATE_NAME
Sostituisci quanto segue:
INSTANCE_NAMES
: i nomi delle VM, separati da spazi, da creare a partire dal template di istanzaINSTANCE_TEMPLATE_NAME
: il nome del template di istanza da cui creare le VM
REST
Crea un template di istanza per le VM SQL Server, ciascuna con un numero ridotto di core della CPU visibili, utilizzando il seguente metodo
instanceTemplates.insert
: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 progettoINSTANCE_TEMPLATE_NAME
: il nome del template di istanzaVISIBLE_CORE_COUNT
: il numero di core della CPU visibili. Ad esempio, quando utilizzi il tipo di macchinac2-standard-60
, se questo è 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 core della CPU visibili, utilizzando il seguente metodo
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 progettoZONE
: la zona in cui creare la VMINSTANCE_TEMPLATE_NAME
: il nome del template di istanza da cui creare le VMVM_NAME
: il nome della VM da creare a partire dal template di istanza
Personalizza il numero di core della CPU visibili
Per personalizzare il numero di core della CPU visibili su una VM esistente, utilizza la consoleTrusted 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 template di istanza, devi creare un nuovo template e, a partire da quest'ultimo, nuove VM. Per ulteriori informazioni sui template di istanza, vedi Template di istanza.
Console
Per personalizzare il numero di core della CPU visibili su una VM esistente, segui questi passaggi:
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, segui questi passaggi. Per ulteriori informazioni, vedi Aggiorna le proprietà dell'istanza.
Esporta le proprietà VM esistenti in un file utilizzando il comando
gcloud compute instances export
.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 progettoZONE
: la zona che contiene la VMVM_NAME
: il nome della VM da cui esportare le proprietàVISIBLE_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.