Gestione dinamica delle risorse di nuova generazione


VM N4, basate sulla quinta processori Intel Xeon di nuova generazione Titanium, usa creatività dinamiche di nuova generazione la gestione delle risorse per aumentare l'efficienza in termini di costi sfruttando al meglio risorse fisiche disponibili sulle macchine host, e utilizza inoltre una CPU scheduler e migrazione live sensibile alle prestazioni per bilanciare le esigenze di prestazioni dei carichi di lavoro con le risorse disponibili. Si tratta delle stesse tecnologie Ricerca Google, Google Ads, Google Maps e YouTube per eseguire in modo efficiente i carichi di lavoro sensibili alla latenza.

La gestione dinamica delle risorse di nuova generazione ha anche una migliore affinità NUMA, una previsione più accurata dei requisiti delle risorse e un ribilanciamento più rapido mediante una migrazione live sensibile alle prestazioni.

Come funziona la gestione dinamica delle risorse

Le CPU virtuali (vCPU) sono implementate come thread pianificati per l'esecuzione on demand come qualsiasi altro thread su un host. Quando la vCPU deve svolgere del lavoro, il lavoro viene assegnato a una CPU fisica disponibile su cui eseguire va di nuovo a dormire. Allo stesso modo, la RAM virtuale è mappata alle pagine host fisiche utilizzando le tabelle di pagina che vengono compilate al primo accesso a una pagina fisica guest. Questo mapping rimane fisso finché la VM indica che una pagina fisica guest è non serve più.

La gestione dinamica delle risorse consente a Compute Engine di usare al meglio le CPU fisiche disponibili pianificando le VM sui server in base della domanda e la pianificazione di thread vCPU su CPU fisiche in modo che il tempo di attesa ridotto a icona. Nella maggior parte dei casi, possiamo farlo senza problemi, in modo che Google Cloud possa per eseguire le VM in modo più efficiente su meno server.

Componenti della gestione dinamica delle risorse

Compute Engine utilizza le seguenti tecnologie per le risorse dinamiche gestione dei dispositivi:

Server fisici più grandi ed efficienti

Il numero dei core e la densità della RAM sono aumentati costantemente, tanto che ora e i server hanno molte più risorse di qualsiasi singola VM. Google continuamente confronta il nuovo hardware e cerca piattaforme convenienti e funzionino bene per la più ampia varietà di carichi di lavoro e servizi cloud, consentendo per sfruttare le tecnologie più recenti, non appena saranno disponibili.

Posizionamento VM intelligente

Il sistema di gestione dei cluster di Google osserva la CPU, la RAM, la larghezza di banda della memoria da parte delle VM in esecuzione su un server fisico. Utilizza questo parametro e informazioni per prevedere le prestazioni di una VM appena aggiunta su quel server. Poi effettua ricerche su migliaia di server per trovare la posizione migliore in cui aggiungere una VM. Queste osservazioni assicurano che, quando viene posizionata una nuova VM, sia compatibile con con i suoi vicini e probabilmente non subiscono interferenze da parte di queste istanze.

Migrazione live sensibile alle prestazioni

Quando le VM vengono posizionate su un host, Compute Engine monitora continuamente le prestazioni delle VM e i tempi di attesa. Se la richiesta di risorse delle VM aumenta, Compute Engine può utilizzare migrazione live per spostare i carichi di lavoro sugli altri host nel data center in modo trasparente. Il criterio di migrazione live è guidato da un approccio predittivo che offre Tempo per spostare il carico di Compute Engine, spesso prima che sia trascorso il tempo di attesa delle VM.

Scheduler CPU Hypervisor

Lo scheduler di CPU hypervisor mappa dinamicamente CPU virtuale e memoria alla CPU fisica e alla memoria del server host on demand. Questa dinamica migliora l'efficienza dei costi nelle VM sfruttando al meglio risorse fisiche. Un uso efficiente delle risorse significa Compute Engine possono eseguire VM in modo più efficiente su meno server, consentendo a Google Cloud di passare di risparmio per gli utenti.

Gestione dinamica delle risorse di prima generazione

E2 è stata la prima serie di VM a offrire la gestione dinamica delle risorse tramite un dispositivo a palloncino con memoria Virtio.

Fumetto in memoria Virtio con VM E2

Il fumetto della memoria è un meccanismo di interfaccia tra host e guest per regolare dinamicamente le dimensioni della memoria riservata per l'ospite. E2 utilizza un palloncino con memoria virtio per implementare il fumetto della memoria. Attraverso il palloncino Virtio Memory dispositivo, un organizzatore può chiedere esplicitamente a un ospite di offrire una le pagine dei ricordi (detto anche gonfiaggio dei palloncini di memoria) e recuperare il ricordo in modo in modo che l'host possa utilizzare la memoria libera per altre VM. Allo stesso modo, la memoria virtio il palloncino può restituire le pagine dei ricordi all'ospite sgonfiando il palloncino con i ricordi. Le VM E2 sono l'unica famiglia di macchine che utilizza la memoria dispositivo a palloncino.

Le istanze VM E2 di Compute Engine basate su un immagine pubblica hanno un dispositivo con palloncino Virtio Memory , che monitora l'utilizzo della memoria del sistema operativo guest. L'ospite del sistema operativo comunica la sua memoria disponibile al sistema host. L'organizzatore rialloca la memoria inutilizzata ad altri processi on demand, utilizzando così in modo più efficace. Compute Engine raccoglie e utilizza questi dati per fornire consigli relativi al dimensionamento ottimale più accurati.

Verifica dell'installazione del driver in corso...

Per verificare se nell'immagine è installato il driver per il fumetto con memoria virtio e caricato, esegui questo comando.

Linux

La maggior parte delle distribuzioni Linux include il driver del dispositivo fumetto virtio. Per verificare che il driver dell'immagine sia installato e caricato, esegui:

sudo modinfo virtio_balloon > /dev/null && echo Balloon driver is \
installed || echo Balloon driver is not installed; sudo lsmod | grep \
virtio_balloon > /dev/null && echo Balloon driver is loaded || echo \
Balloon driver is not loaded

In Keler Linux prima della 5.2, a volte il sistema di memoria Linux ha erroneamente consente di evitare allocazioni di grandi dimensioni quando è presente il palloncino. Questo è raramente un problema nella pratica, ma consigliamo di modificare dell'impostazione della memoria virtuale overcommit_memory su 1 per evitare il problema che si verifichino. Questa modifica è già stata apportata per impostazione predefinita in tutti Immagini fornite da Google pubblicate dal 9 febbraio 2021.

Per correggere l'impostazione, utilizza il seguente comando per modificare il valore da Da 0 a 1:

sudo /sbin/sysctl -w vm.overcommit_memory=1

Per mantenere questa modifica tra i riavvii, aggiungi quanto segue al tuo File /etc/sysctl.conf:

vm.overcommit_memory=1

Windows

Immagini Windows di Compute Engine includi il palloncino virtio. al contrario delle immagini Windows personalizzate. A verifica se nell'immagine Windows è installato il driver, esegui:

googet verify google-compute-engine-driver-balloon

Disattivazione del fumetto con memoria Virtio

L'utilizzo del palloncino con memoria virtio consente a Compute Engine di a utilizzare le risorse di memoria in modo più efficace in modo che Google Cloud possa offrire VM E2 prezzi più bassi. Puoi disattivare il fumetto con memoria Virtio disattivando il driver del dispositivo. Dopo aver disattivato il fumetto con memoria virtio, potrai continuare a ricevere consigli sul dimensionamento ottimale; ma potrebbero non essere così precise.

Linux

Per disabilitare il dispositivo in Linux, esegui questo comando:

sudo rmmod virtio_balloon

Puoi aggiungere questo comando script di avvio per disabilitare automaticamente dispositivo all'avvio della VM.

Windows

Per disabilitare il dispositivo su Windows, esegui questo comando:

googet -noconfirm remove google-compute-engine-driver-balloon

Puoi inserire questo comando script di avvio per disabilitare automaticamente il dispositivo all'avvio della VM.

Passaggi successivi