Personalizza il numero di core CPU visibili

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 un'istanza di macchina virtuale (VM); 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 che disponibili per una VM, Compute Engine consente di personalizzare di core 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 è pari di vCPU sul tipo di macchina diviso per il numero di thread per principale:

  • 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:

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.

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 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 utilizzi una rete legacy: compute.networks.useExternalIp nel progetto
    • 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 che la VM deve 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 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 modello di istanza: Devi disporre di tutte le autorizzazioni che useresti durante la creazione della VM e di compute.instanceTemplates.create sul 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

Traffico in uscita dal networking

  • I limiti di larghezza di banda del traffico di rete in uscita corrispondono al tipo di macchina e non sono in base al numero di core della CPU visibili. Tuttavia, le prestazioni della rete varia in base al 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 delle licenze del sistema operativo

  • Puoi ridurre i costi delle licenze per alcuni sistemi operativi riducendo di core CPU visibili. I sistemi operativi applicabili sono quelli addebitarti ogni vCPU disponibile per la VM, ad esempio e SQL Server. Per ulteriori informazioni sulle opzioni di licenza per su Compute Engine, consulta Microsoft licenze.

Costi, quota 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 CPU visibili mentre una VM è RUNNING. Per ulteriori informazioni sugli stati delle VM, consulta Istanza VM del ciclo di vita.

  • Nella console Google Cloud, quando il numero di core visibili è ridotto, la metrica di utilizzo della CPU non può fare lo scale up 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 macchina supportano la personalizzazione il numero di core della CPU visibili, Il valore relativo al conteggio dei core della CPU visibili deve essere un numero intero. Il valore massimo corrisponde al numero di vCPU o GPU per tipi di macchine ottimizzate per l'acceleratore, sul tipo di macchina diviso per di thread per core per la VM.

La tabella seguente mostra i tipi di macchina che supportano questa personalizzazione, insieme ai corrispondenti valori validi per i core della CPU visibili per la macchina tipi in quelle famiglie.

Famiglia di tipi di macchina Conteggio vCPU predefinita* Valori validi per i core della CPU visibili
Uso generico
C4 (anteprima) 4, 8, 16, 32, 48 Qualsiasi
C4 (anteprima) 96 Multipli di 2
C4 (anteprima) 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 e 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
* Il nome della maggior parte dei tipi di macchina che contengono il conteggio delle vCPU. Tuttavia, per A3 e A2 ottimizzate per l'acceleratore di macchina, il nome del tipo di macchina contiene il conteggio GPU predefinito. Per vedere il conteggio delle vCPU per i tipi di macchine ottimizzati per l'acceleratore A3 e A2, rivedi il Famiglia di macchine ottimizzate per l'acceleratore documentazione.

Personalizza il numero di core CPU visibili durante la creazione della VM

Per personalizzare il numero di core 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, procedi nel seguente modo: seguenti:

  • In Configurazione macchina > Configurazioni avanzate > Conteggio core visibili, seleziona il numero di core visibili.

gcloud

Per creare una VM SQL Server con un numero ridotto di core CPU visibili, utilizza i seguenti 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, per ad esempio c2-standard-60.

  • VISIBLE_CORE_COUNT: il numero di CPU visibili e un set di dati. Ad esempio, quando utilizzi il tipo di macchina c2-standard-60, se impostato a 20 e il numero di thread per core è 2, 40 delle 60 CPU sono visibile.

  • 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 macchina c2-standard-60, se impostato a 20 e il numero di thread per core è 2, 40 delle 60 CPU sono visibile.

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 tramite un modello di istanza.

Console

Per personalizzare il numero di core CPU visibili durante la creazione di un'istanza. modello, procedi nel seguente modo:

  • In Configurazione macchina > Configurazioni avanzate > Conteggio core visibili, seleziona il numero di core visibili.

gcloud

  1. Crea un modello di istanza per le VM SQL Server, ciascuna con un di core CPU visibili, utilizzando i seguenti 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, per ad esempio c2-standard-60.

    • VISIBLE_CORE_COUNT: il numero di elementi visibili Core della CPU. Ad esempio, quando utilizzi il tipo di macchina c2-standard-60, se impostato su 20 e il numero di thread per core è 2, 40 dei Sono visibili 60 CPU.

    • ZONE: la zona in cui creare le VM.

  2. 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 istanza

    • INSTANCE_TEMPLATE_NAME: il nome del da cui creare le VM

REST

  1. Crea un modello di istanza per le VM SQL Server, ciascuna con un numero ridotto di core CPU visibili, utilizzando i seguenti 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 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 macchina c2-standard-60, se impostato su 20 e il numero di thread per core è 2, 40 dei Sono visibili 60 CPU.

  2. 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 progetto

    • ZONE: la zona in cui creare la VM

    • INSTANCE_TEMPLATE_NAME: il nome del da cui creare le VM

    • VM_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 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'istanza di istanza, devi creare un nuovo modello di istanza delle VM di quel modello di istanza. Per saperne di più sui modelli di istanza, consulta Modelli di istanza.

Console

Per personalizzare il numero di core della CPU visibili su una VM esistente, procedi nel seguente modo: seguenti:

  1. Arresta la VM.

  2. In Configurazione macchina > Configurazioni avanzate > Conteggio core visibili, seleziona il numero di core visibili e un set di dati.

  3. 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, consulta Aggiornare un'istanza proprietà.

  1. Esporta le proprietà della VM esistenti in un file utilizzando l'API gcloud compute instances export un comando kubectl.

  2. Modifica o aggiungi il valore nel file contenente le proprietà esportate per:

    advancedMachineFeatures:
     visibleCoreCount: VISIBLE_CORE_COUNT
    
  3. Aggiorna le proprietà della VM utilizzando gcloud compute instances update-from-file comando con --most-disruptive-allowed-action=RESTART.

REST

Per aggiornare il conteggio dei core della CPU visibili della VM, usa quanto segue 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 progetto

  • ZONE: la zona che contiene la VM

  • VM_NAME: il nome della VM da cui proprietà di esportazione

  • VISIBLE_CORE_COUNT: il numero di CPU visibili core

Passaggi successivi