Overcommit delle CPU su VM single-tenant


L'overcommit della CPU sui nodi single-tenant ti consente di pianificare istanze che possono condividere i loro cicli di CPU di riserva. Questo consente di eseguire il provisioning eccessivo delle risorse nodo single-tenant e pianificare più CPU VM su un nodo single-tenant rispetto a quanto normalmente disponibile. L'overcommit della CPU è particolarmente utile per i carichi di lavoro sottoutilizzati, ma potrebbero riscontrare burst relativamente non correlati.

L'overcommit della CPU può aiutarti a ridurre i costi per VM, distribuendo il costo di un nodo single-tenant su più VM. Può anche ridurre i costi delle licenze per VM quando utilizza licenze per socket o per-core.

Le VM con CPU sovrautilizzate possono utilizzare risorse CPU altrimenti inutilizzate nei seguenti modi:

  • Se un nodo single-tenant non è completo, le VM sovrascritte possono utilizzare core non allocati.

  • Se un'altra VM su un nodo single-tenant non utilizza tutte le risorse CPU, ad esempio perché la CPU è inattiva, una VM sovracompresa può utilizzare tali risorse CPU.

Livello di overcommit

Puoi specificare il valore per il numero minimo di CPU assegnate a una VM quando crei una VM o dopo aver arrestato una VM. Il livello di overcommit rappresenta il numero minimo di thread CPU sottostanti la cui disponibilità è garantita per una VM. Se la VM ha più vCPU disponibili rispetto ai thread sottostanti, le VM vCPU condividono le risorse di calcolo sottostanti ed vengono eseguite con prestazioni ridotte.

Puoi impostare questo valore per ogni VM, in modo da eseguire il provisioning di VM con rapporti di overcommit della CPU diversi su un singolo nodo single-tenant. Valori più bassi riducono i requisiti di capacità a scapito della potenziale spesa in termini di prestazioni, se si verificano burst correlati. La determinazione di un valore ottimale per il numero minimo di CPU richiede una comprensione dell'utilizzo del carico di lavoro e della modifica iterativa del valore.

Quando imposti questo valore, tieni presente quanto segue:

  • Se non imposti un valore per il numero minimo di CPU o se imposti il valore per il numero minimo di CPU uguale al numero di CPU sul tipo di macchina della VM, il rapporto di overcommit consentito per la VM è 1, 0. Con un rapporto di overcommit pari a 1, 0, tutte le CPU sono accessibili solo a questa VM e non sono disponibili risorse di CPU da trasferire ad altre VM.

  • Il numero minimo di CPU non può essere maggiore del numero di CPU specificato dal tipo di macchina della VM.

  • La somma dei valori per il numero minimo di CPU per tutte le VM su un nodo single-tenant non può superare la capacità della CPU di quel tipo di nodo single-tenant, che nel tipo di nodo n1-node-96-624 è 96.

Il valore del numero di CPU specificato dal tipo di macchina VM è un valore statico e rappresenta il numero di CPU che una VM può eseguire burst dal numero minimo se tali CPU sono disponibili. Se hai bisogno di una serie di CPU diverse da quelle fornite dai tipi di macchine fisse, puoi utilizzare un tipo di macchina personalizzato.

Considerazioni

Prima di configurare i livelli di overcommit della CPU per le VM, considera la criticità del tuo carico di lavoro. I carichi di lavoro meno critici, come i carichi di lavoro di sviluppo e test, possono potenzialmente tollerare livelli di overcommit più elevati. I carichi di lavoro più critici, come un sistema di pagamento di produzione, potrebbero non tollerare lo stesso numero eccessivo o eccessivo.

Considera anche l'utilizzo del tuo carico di lavoro. I carichi di lavoro con un'utilizzo elevato della CPU non sono idonei per l'overcommit della CPU, in quanto non dispongono di cicli di utilizzo di riserva da utilizzare in altre VM sovra controllo. Inoltre, i carichi di lavoro con un utilizzo medio minimo della CPU, ma con un picco di utilizzo ridotto, potrebbero trarre vantaggio da dimensioni di tipi diversi delle macchine.

L'uso dell'overcommit della CPU comporta l'utilizzo di carichi di lavoro gravosi e non correlati che hanno un utilizzo elevato di picco e un basso utilizzo medio, in quanto è più probabile che questi carichi di lavoro abbiano risorse CPU disponibili da condividere tra le VM quando è necessario burst il loro utilizzo. Se tutte le VM su un host burst contemporaneamente, l'host non avrà risorse sufficienti per le tue VM.

Limitazioni

Limitazioni del carico di lavoro

L'overcommit della CPU è più adatto ai carichi di lavoro senza requisiti rigorosi in termini di prestazioni, ad esempio carichi di lavoro di sviluppo e test e infrastrutture desktop virtuali.

Livelli elevati di overcommit della CPU potrebbero non essere appropriati per i carichi di lavoro sensibili alle prestazioni.

Per i carichi di lavoro con un utilizzo medio e un picco costantemente bassi, Google consiglia di regolare le dimensioni. In questo modo, anziché impegnare le CPU, ti consigliamo di modificare le dimensioni dell'istanza VM in modo che corrispondano ai requisiti delle risorse di quel carico di lavoro.

Se le istanze sono troppo limitate, spostale in un altro nodo single-tenant.

Limitazioni relative al tipo di macchina

Puoi sovraccaricare la CPU solo nei seguenti casi:

Limitazioni per il superamento del livello

Puoi configurare la CPU minima su ciascun nodo single-tenant solo sulla metà delle CPU della VM, consentendo un rapporto di overcommit massimo di single-tenant pari a 2,0.

Limitazioni della pianificazione delle VM

I gruppi di nodi single-tenant basati su modelli di nodi single-tenant non configurati per l'overcommit della CPU non consentono il provisioning di VM con overcommit della CPU abilitato. Ciò significa che non puoi pianificare una VM con un numero minimo specificato di CPU su un gruppo di nodi single-tenant non configurato per l'overcommit della CPU.

Quota

La quota per CPU si basa sul numero di vCPU del tipo di nodo single-tenant, non sul potenziale massimo di vCPU disponibili per l'overcommitting.

Prezzi

Ai nodi single-tenant in cui è selezionato un overcommit della CPU sul loro modello è addebitato un ulteriore 25%. Questo addebito si aggiunge al 10% di premium per l'esecuzione di VM su nodi single-tenant. Il premium overcommit della CPU è fisso, indipendentemente dal livello di overcommit della CPU e dal numero di VM pianificate sul nodo single-tenant.

I nodi single-tenant offrono sconti per impegno di utilizzo. Sono disponibili sconti per utilizzo sostenuto per la versione premium per modalità single-tenant e il premium per overcommit della CPU.

Per una stima del costo di esecuzione delle VM sui nodi single-tenant, consulta il Calcolatore prezzi.

Configurazione di VM single-tenant per l'overcommiting

Per configurare le VM single-tenant in modo che le risorse della CPU siano disponibili per il overcommiting, segui questi passaggi:

  1. Crea un modello di nodo single-tenant in cui sia abilitato l'overcommit della CPU. Devi abilitare l'overcommit della CPU durante la creazione del modello di nodo. Non puoi abilitare l'overcommit della CPU dopo aver creato un modello di nodo.

  2. Crea un gruppo di nodi single-tenant basato sul modello di nodo single-tenant in cui è abilitato l'overcommit della CPU.

  3. Crea una VM e procedi nel seguente modo:

    1. Scegli un tipo di macchina per la VM. Il numero di CPU sul tipo di macchina rappresenta il numero massimo di CPU a cui la VM può eseguire burst dal numero minimo di CPU se il numero minimo di CPU è inferiore al numero di CPU specificato dal tipo di macchina.

      Puoi scegliere un tipo di macchina diverso per ogni VM su un nodo nodo single-tenant, a condizione che non superi la capacità di CPU e memoria del nodo single-tenant.

    2. Specifica il numero minimo di CPU da allocare a quella singola VM o utilizza un gruppo di istanze gestite per creare più VM con lo stesso livello di overcommit della CPU.

Prima di iniziare

Impostazione del livello di overcommit della CPU

Le procedure seguenti mostrano come creare una VM single-tenant con risorse CPU disponibili per overcommiting. Se devi modificare il livello di overcommit della CPU di una VM attualmente in esecuzione, devi prima arrestarla.

Console

In Google Cloud Console, crea una VM single-tenant su un gruppo di nodi single-tenant creato da un modello di nodo single-tenant in cui è abilitato l'overcommit della CPU:

  1. Vai alla pagina Nodi single-tenant.

    Vai ai nodi single-tenant

  2. Fai clic su Gruppi di nodi.

  3. Fai clic sul gruppo di nodi single-tenant su cui creare una VM.

  4. Fai clic su Crea istanza.

  5. Specifica Nome, Area geografica e Zona per la VM.

  6. In Configurazione macchina, scegli un Tipo di macchina fisso o personalizzato con almeno 4 vCPU.

  7. In CPU overcommit, seleziona Abilita overcommit della CPU.

  8. In Numero minimo di vCPU allocate, regola il dispositivo di scorrimento o inserisci manualmente il numero di vCPU per specificare il livello di overcommit per le CPU di questa VM.

  9. Fai clic su Crea per creare un'istanza VM con risorse CPU disponibili per il overcommit.

gcloud

L'esempio seguente mostra come utilizzare il comando gcloud compute instances create per creare una VM single-tenant su un tipo di macchina fisso con risorse CPU disponibili per il overcommiting.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --min-node-cpu=MIN_VCPUS \
    --node-group=GROUP_NAME

Sostituisci quanto segue:

  • VM_NAME: il nome della VM su cui eseguire il overcommit delle CPU.

  • MACHINE_TYPE: il tipo di macchina su cui eseguire il provisioning della VM single-tenant Il numero di CPU specificato per il tipo di macchina è il numero massimo di CPU che la VM può eseguire burst a partire da MIN_VCPUS.

  • MIN_VCPUS: il numero minimo di vCPU garantite per essere disponibile per questa VM.

  • GROUP_NAME: il nome del gruppo di nodi single-tenant in cui eseguire il provisioning della VM.

Impostazione del livello di overcommit su un tipo di macchina personalizzato

Per creare una VM single-tenant con risorse CPU disponibili per l'overcommiting su un tipo di macchina personalizzata, ometti il flag --machine-type e utilizza invece i flag --custom-cpu e --custom-memory per specificare il numero di CPU e la quantità di memoria, in gigabyte, per la macchina personalizzata.

API

L'esempio seguente mostra come utilizzare il comando instances.insert per creare una VM single-tenant su un tipo di macchina fisso con risorse CPU disponibili per il overcommitting.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "scheduling": {
    "minNodeCpus": MIN_VCPUS,
    "nodeAffinities": [
      {
        "key": "compute.googleapis.com/node-group-name",
        "operator": "IN",
        "values": [
          "GROUP_NAME"
        ]
      }
    ]
  },
  ...
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto.

  • ZONE: la zona per questa richiesta.

  • MACHINE_TYPE_ZONE: la zona che ospita il tipo di macchina.

  • MACHINE_TYPE: il tipo di macchina su cui eseguire il provisioning della VM single-tenant Il numero di CPU specificate dal tipo di macchina è il numero massimo di CPU che la VM può eseguire burst a partire da MIN_VCPUS.

  • VM_NAME: il nome della VM single-tenant in cui overcommitre le CPU.

  • MIN_VCPUS: il numero minimo di vCPU garantite per essere disponibile per questa VM.

  • GROUP_NAME: il nome del gruppo di nodi single-tenant in cui eseguire il provisioning della VM.

Impostazione del livello di overcommit su un tipo di macchina personalizzato

Per creare una VM single-tenant con risorse CPU disponibili per l'overcommiting su un tipo di macchina personalizzata, sostituisci il valore del campo machineType con zones/zone/machineTypes/custom-CPUS-MEMORY, sostituendo CPUS con il numero di CPU e MEMORY con la quantità di memoria, in megabyte, per il tipo di macchina personalizzata.

Visualizzazione dell'utilizzo della CPU

Controlla l'utilizzo della CPU delle VM single-tenant in un gruppo di nodi single-tenant seguendo la procedura riportata di seguito.

  1. In Google Cloud Console, vai alla pagina Nodi single-tenant.

    Vai ai nodi single-tenant

  2. Fai clic su Gruppi di nodi.

  3. Fai clic sul gruppo di nodi single-tenant contenente il nodo single-tenant che contiene la VM con CPU overcommit.

  4. Fai clic sul nodo single-tenant che ha la VM con CPU overcommit.

  5. Sotto il nome del nodo single-tenant, visualizza l'utilizzo della CPU, il tipo di overcommit della CPU e l'utilizzo minimo della CPU.

    • Utilizzo CPU mostra il totale del numero massimo di CPU per tutte le VM su questo nodo single-tenant, diviso per il numero di CPU specificato per il tipo di nodo single-tenant.

      Il numero di CPU sul nodo disponibile per il overcommit è il numeratore meno il denominatore, mentre il livello di overcommit è il quoziente del numeratore e del denominatore.

    • Utilizzo CPU minimo mostra la somma del numero minimo di CPU allocate per tutte le VM su un nodo single-tenant diviso per il numero di CPU specificate per il tipo di nodo.

Ottimizzazione dei livelli di overcommit della CPU

Per ottimizzare l'ottimizzazione dei livelli di overcommit della CPU, Compute Engine fornisce la metrica Tempo di attesa scheduler. La metrica Tempo di attesa scheduler indica il tempo di attesa aggregato per tutte le vCPU sulla VM e ti aiuta a determinare l'impatto dell'overcommit della CPU sulle prestazioni della VM.

La sensibilità del carico di lavoro varia, ma una regola generale consiste nell'utilizzare 20 millisecondi di tempo di attesa dello scheduler accumulato al secondo (20 ms/s) come tempo di attesa massimo per ogni vCPU. Ad esempio, se una VM è impostata su 8 vCPU, una soglia di regola è di 160 ms/s, il che si traduce in una tempo di attesa programmata media accettabile di 20 ms/s per vCPU. I requisiti di prestazioni del carico di lavoro determineranno le soglie accettabili.

  1. In Google Cloud Console, vai alla pagina Monitoraggio.

    Vai a Monitoring

  2. Fai clic su Metrics Explorer.

  3. Nel campo Tipo di risorsa, inserisci Istanza VM.

  4. Nel campo Metrica, inserisci Programma tempo di attesa.

  5. Se vuoi, configura gli avvisi per attivare gli avvisi per le soglie dei tempi di attesa delle VM facendo clic su Avvisi.

Passaggi successivi