Overcommit delle CPU sulle VM single-tenant


L'overcommit della CPU sui nodi single-tenant ti consente di pianificare che possono condividere tra loro i cicli di CPU di riserva. Questo consente di eseguire l'overprovisioning delle risorse dei nodi single-tenant e pianificare più CPU VM su un rispetto a quelle normalmente disponibili. L'overcommit della CPU è prezioso per carichi di lavoro sottoutilizzati, ma che potrebbero presentare serie di foto a raffica non correlate.

L'overcommit della CPU può aiutarti a ridurre i costi per VM distribuendo il costo di un tenant su più VM. Inoltre, può ridurre i costi delle licenze per VM utilizzando licenze per socket o per core.

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

  • Se un nodo single-tenant non è pieno, le VM con overcommit possono utilizzare i core non allocati.

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

Livello di overcommit

Puoi specificare il valore per il numero minimo di CPU allocate a un durante la creazione o l'arresto di una VM. Il livello di overcommit rappresenta il numero minimo di thread della CPU sottostanti che è garantito essere disponibile per una VM. Se la VM ha più vCPU dei thread sottostanti disponibili, Le vCPU condividono le risorse di computing sottostanti e vengono eseguite con prestazioni ridotte.

Puoi impostare questo valore per ogni VM, in modo da eseguire il provisioning di VM con diverse rapporto di overcommit della CPU su un singolo nodo single-tenant. I valori più bassi riducono i requisiti di capacità a scapito delle prestazioni se si verificano picchi correlati. Determinare un valore ottimale per il numero minimo di CPU richiede una comprensione dell'utilizzo del carico di lavoro e dei modifica del valore.

Quando imposti questo valore, tieni presente quanto segue:

  • Se non imposti il valore per il numero minimo di CPU oppure imposti per il numero minimo di CPU uguale al numero di CPU sul di tipo di macchina, il rapporto di overcommit consentito della VM è 1,0. Con overcommit di 1, 0, tutte le CPU sono accessibili solo a questa VM e non sono disponibili risorse della CPU per l'overcommit di altre VM.

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

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

Il valore del numero di CPU specificato dal tipo di macchina della VM è un valore statico e rappresenta il numero di CPU che una VM può utilizzare in burst rispetto al numero minimo, se queste CPU sono disponibili. Se hai bisogno di più CPU diversi da quelli forniti dalla macchina fissa standard, puoi utilizzare uno strumento personalizzato tipo di macchina.

Considerazioni

Prima di configurare i livelli di overcommit della CPU per le VM, considera la criticità del carico di lavoro. Carichi di lavoro meno critici, come sviluppo e test carichi di lavoro standard, sono in grado di tollerare livelli di overcommit più elevati. Più critici come un sistema di pagamento in produzione, potrebbero non tollerare così tanto overcommit o nessun altro.

Considera anche l'utilizzo del carico di lavoro. Carichi di lavoro con CPU elevata di utilizzo non sono buoni candidati per l'overcommit della CPU perché dispongono di cicli di utilizzo di riserva da utilizzare per altre VM con overcommit. Inoltre, i carichi di lavoro con un utilizzo medio ridotto della CPU, ma un utilizzo ridotto potrebbero trarre vantaggio da diverse dimensioni di tipi di macchine.

L'utilizzo dell'overcommit della CPU è vantaggioso per i carichi di lavoro intermittenti non correlati che hanno un picco di utilizzo elevato e un utilizzo medio ridotto, in quanto è più probabile che questi carichi di lavoro abbiano risorse CPU disponibili da condividere tra le VM quando alcune VM devono aumentare il loro utilizzo. Se tutte le VM su un host eseguono burst contemporaneamente, l'host di avere risorse sufficienti per le tue VM.

Limitazioni

Limitazioni del carico di lavoro

L'overcommit della CPU è più adatto per carichi di lavoro senza prestazioni rigorose requisiti, come i carichi di lavoro di sviluppo e test e i carichi di lavoro per l'infrastruttura desktop.

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

Per i carichi di lavoro con utilizzo medio e picco costantemente basso, Google consiglia il dimensionamento ottimale. In altre parole, anziché eseguire l'overcommit delle CPU, consigliamo di modificare le dimensioni dell'istanza VM in modo che corrispondano ai requisiti di risorse del carico di lavoro.

Se le istanze sono sovracommittate, spostale su un altro node monoproprietario.

Limitazioni del tipo di macchina

Puoi eseguire l'overcommit delle CPU solo su questi elementi:

Limitazioni del livello di overcommit

Puoi configurare il numero minimo di CPU su ciascun nodo single-tenant solo sulla metà del CPU delle VM, consentendo un rapporto massimo di overcommit dei nodi 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 l'overcommit della CPU abilitato. Ciò significa che non puoi pianificare una VM con un valore minimo specificato numero di CPU su un gruppo di nodi single-tenant non configurato per la CPU l'overcommit.

Quota

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

Costi

I nodi single-tenant per i quali è selezionato l'overcommit della CPU nel modello di nodo addebitato un ulteriore 25%. Questo addebito si aggiunge alla maggiorazione del 10% per VM in esecuzione su nodi single-tenant. Il premium per l'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 un impegno di utilizzo sconti. Sono disponibili sconti per utilizzo sostenuto per il premium single-tenancy e per l'overcommit della CPU.

Per stimare il costo dell'esecuzione delle VM sui nodi single-tenant, consulta la sezione Prezzi Calcolatrice.

Configura VM single-tenant per l'overcommitting

Per configurare VM single-tenant in modo che abbiano risorse della CPU disponibili per l'overcommitting, segui questi passaggi:

  1. Crea un modello di nodo single-tenant con l'overcommit della CPU abilitato. Devi attivare 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 che con l'overcommit della CPU abilitato.

  3. Crea una VM e segui questi passaggi:

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

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

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

Prima di iniziare

  • Crea un nodo single-tenant modello e specifica --cpu-overcommit-type=enabled.
  • Crea un gruppo di nodi single-tenant basato sul modello di nodo single-tenant con overcommit della CPU abilitato.
  • Se non l'hai già fatto, configura l'autenticazione. Autenticazione è Il processo di verifica dell'identità per l'accesso ai servizi e alle API di Google Cloud. Per eseguire codice o esempi da un ambiente di sviluppo locale, puoi eseguire l'autenticazione Compute Engine come segue.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Per ulteriori informazioni, vedi Esegui l'autenticazione per l'utilizzo di REST nella documentazione sull'autenticazione di Google Cloud.

Imposta il livello di overcommit della CPU

Le seguenti procedure mostrano come creare una VM single-tenant con CPU disponibili per l'overcommitting. Se devi modificare l'overcommit della CPU di una VM in esecuzione, devi prima arrestarla.

Console

Nella console Google Cloud, crea una VM single-tenant su un gruppo di nodi single-tenant creato da un modello di nodo single-tenant con overcommit della CPU attivato:

  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 il nome, la regione e la zona per la VM.

  6. In Configurazione macchina, scegli una Macchina fissa o personalizzata. standard con almeno 4 vCPU.

  7. In Overcommit della CPU, seleziona Attiva overcommit della CPU.

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

  9. Fai clic su Crea per creare un'istanza VM con risorse della CPU disponibili per l'overcommitting.

gcloud

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

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 l'overcommit delle CPU.

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

  • MIN_VCPUS: il numero minimo di vCPU garantito sia disponibile per questa VM.

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

Impostazione del livello di overcommit su un tipo di macchina personalizzata

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

REST

L'esempio seguente mostra come utilizzare il parametro instances.insert per creare una VM single-tenant su un tipo di macchina fisso con CPU disponibili per l'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 la macchina di testo.

  • MACHINE_TYPE: la macchina su cui eseguire il provisioning della VM single-tenant. La di CPU specificato dal tipo di macchina è il numero massimo di CPU la VM può eseguire burst fino a MIN_VCPUS.

  • VM_NAME: il nome della VM single-tenant da l'overcommit delle CPU.

  • MIN_VCPUS: il numero minimo di vCPU garantito sia disponibile per questa VM.

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

Impostare il livello di overcommit su un tipo di macchina personalizzata

Creare una VM single-tenant con risorse della CPU disponibili per l'overcommitting. 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.

Aggiorna il livello di overcommit della CPU

Le procedure riportate di seguito mostrano come aggiornare il livello di overcommit della CPU di una VM monoutente.

gcloud

  1. Per modificare il livello di overcommit della CPU di una VM in esecuzione, la VM deve prima arrestarla. Per arrestare una VM, utilizza Comando gcloud compute instances stop come segue:

    gcloud compute instances stop VM_NAME
    

    Sostituisci VM_NAME con il nome dell'istanza che vuoi interrompere.

  2. Per aggiornare il livello di overcommit della CPU di una VM single-tenant, utilizza il comando gcloud compute instances set-scheduling come segue:

    gcloud compute instances set-scheduling VM_NAME \
      --min-node-cpu=MIN_VCPUS

    Sostituisci quanto segue:

    • VM_NAME: il nome della VM single-tenant da modificare il livello di overcommit della CPU.

    • MIN_VCPUS: il numero minimo di vCPU garantito sia disponibile per questa VM.

REST

  1. Per modificare il livello di overcommit della CPU di una VM in esecuzione, la VM deve prima arrestarla. Per arrestare una VM, crea una richiesta POST utilizzando Metodo instances.stop come segue:

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

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto.

    • ZONE: la zona per questa richiesta.

    • VM_NAME: il nome della VM single-tenant da modificare il livello di overcommit della CPU.

  2. Per aggiornare il livello di overcommit della CPU di una VM single-tenant, utilizza la classe Metodo instances.setScheduling come segue:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    {
    "minNodeCpus":MIN_VCPUS
    }
    

    Sostituisci quanto segue:

    • PROJECT_ID: l'ID del progetto.

    • ZONE: la zona per questa richiesta.

    • VM_NAME: il nome della VM single-tenant da modificare il livello di overcommit della CPU.

    • MIN_VCPUS: il numero minimo di vCPU garantito sia disponibile per questa VM.

Disabilita l'overcommitment della CPU per le VM single-tenant

Le seguenti procedure mostrano come disabilitare l'overcommit della CPU di un di una VM single-tenant.

gcloud

L'esempio seguente mostra come utilizzare il comando gcloud compute instances set-scheduling per disabilitare l'overcommitment della CPU di una VM single-tenant.

gcloud compute instances set-scheduling VM_NAME \
  --clear-min-node-cpu

Sostituisci quanto segue:

  • VM_NAME: il nome della VM single-tenant da disabilitare Overcommitment della CPU.

REST

L'esempio seguente mostra come utilizzare il comando instances.setScheduling per disabilitare l'overcommitment della CPU di una VM single-tenant.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
{
  "minNodeCpus":null
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del tuo progetto.

  • ZONE: la zona per questa richiesta.

  • VM_NAME: il nome della VM single-tenant da disabilita l'overcommitment della CPU.

Visualizza utilizzo CPU

Per verificare l'utilizzo della CPU delle VM single-tenant in un gruppo di nodi single-tenant, procedi nel seguente modo: seguenti:

  1. Nella console Google Cloud, 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 con sulla VM con CPU con overcommit.

  4. Fai clic sul nodo single-tenant contenente la VM con CPU in overcommit.

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

    • CPU utilizzata mostra il totale del numero massimo di CPU per tutte le il numero di VM su questo nodo single-tenant diviso per il numero di CPU specificate dal tipo di nodo single-tenant.

      Il numero di CPU sul nodo disponibili per l'overcommitting è la numeratore meno il denominatore e il livello di overcommit è il quoziente del numeratore e del denominatore.

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

Ottimizza i livelli di overcommit della CPU

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

La sensibilità del carico di lavoro varia, ma una regola generale prevede l'utilizzo di 20 millisecondi di tempo di attesa dello scheduler accumulato al secondo (20 ms/s) come tempo di attesa massimo per ciascuna vCPU. Ad esempio, se una VM è impostata su 8 vCPU, viene utilizzata è 160 ms/s, il che genera una media accettabile dello strumento Scheduler Tempo di attesa di 20 ms/s per vCPU. I requisiti di prestazioni del il carico di lavoro determinerà soglie accettabili.

  1. Nella console Google Cloud, vai alla pagina Monitoring.

    Vai a Monitoring

  2. Fai clic su Metrics Explorer.

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

  4. Nel campo Metrica, inserisci Tempo di attesa pianificatore.

  5. Facoltativamente, configura gli avvisi per attivare avvisi per le soglie di tempo di attesa delle VM facendo clic su Avvisi.

Passaggi successivi