Torna al blog

Vi stiamo rubando qualcosa? Capire il CPU Steal Time nel Cloud

Vi stiamo rubando qualcosa? Capire il CPU Steal Time nel Cloud

I clienti chiedono spesso informazioni sul CPU steal time. Soprattutto coloro che utilizzano intensamente le CPU e per i quali è un criterio di performance chiave. Ci sono parecchie differenze nella configurazione e nel comportamento di CPU e core tra ambienti fisici e virtuali. Anche tra i cloud provider ci sono differenze di configurazione che rendono difficile un confronto diretto a prima vista. Per questo motivo abbiamo pensato che fosse utile fornire una breve panoramica della nostra configurazione e della logica di allocazione della CPU per i clienti, oltre a spiegare le fonti più comuni di CPU steal time.

Quindi, innanzitutto, per chi non ha familiarità con il concetto, il CPU steal time è il tempo che la CPU virtuale all’interno del cloud server deve attendere per la CPU fisica reale mentre l’hypervisor è occupato a usarla per altre cose (come altre macchine virtuali/cloud server). Questo è un ottimo articolo sul CPU steal time che vale la pena leggere.

Qualche informazione sulla nostra configurazione della CPU

La prima cosa da capire riguarda il modo in cui allochiamo i core tra le macchine virtuali su ciascun nodo di calcolo fisico che ospita le vostre elaborazioni. Le CPU e i relativi core presso CloudSigma sono condivisi. In altre parole, non vincoliamo il cloud server di un cliente a core specifici. Il tempo di CPU viene assegnato dinamicamente dallo scheduler del nodo di calcolo fisico e tutto viene condiviso. Riteniamo che questo offra una serie di vantaggi nel fornire prestazioni complessivamente più affidabili, consentendo al nodo di calcolo di apportare modifiche sensate all’allocazione al volo per bilanciare il carico.

In combinazione con questo, utilizziamo i Control Groups (in breve cgroups) per garantire un tempo di CPU sufficiente per ciascuno dei cloud server in linea con le risorse impostate tramite la dimensione del server. Alla fine, lo scheduler decide cosa fare con le risorse rimanenti e i cgroups. Vale anche la pena notare che riserviamo un set di core specifici al di fuori dell’intervallo di allocazione per i carichi di lavoro di calcolo dei clienti. Utilizziamo questi core per eseguire il sistema operativo dell’host fisico. In particolare, riserviamo core aggiuntivi per l’elaborazione delle operazioni di rete e di archiviazione. Tutto questo mira ad aumentare la stabilità della macchina nel suo complesso. Inoltre, aiuta a fornire livelli di prestazioni affidabili nel tempo, indipendentemente dal carico degli altri clienti per te in quanto cliente.

Le fonti del CPU steal time in un ambiente virtualizzato

A differenza di un ambiente fisico, ci sono molteplici fonti e situazioni in cui si può verificare il CPU steal time. Questo perché le cose sono più complesse in un ambiente virtualizzato multi-tenant. Non tutte rappresentano davvero una situazione in cui non ricevi il tempo di CPU che dovresti; infatti, in molti casi puoi spesso assorbire cicli di CPU inutilizzati oltre la dimensione allocata, ma questa non è una situazione in cui vedresti il CPU steal time. Le tre situazioni più comuni sono descritte di seguito in modo più dettagliato.

Il tuo cloud server è sovraccarico
Succede! Tutti vogliono utilizzare una capacità il più vicino possibile al massimo di ciò per cui pagano, tuttavia se la CPU allocata al cloud server virtuale non è sufficiente per elaborare il carico di lavoro, si può verificare il CPU steal time poiché i processi si accumulano e si mettono in coda all’interno della CPU virtuale. Se questa è la causa principale del CPU steal time, la soluzione è ridimensionare il cloud server. Se si tratta di un sovraccarico temporaneo, puoi tranquillamente lasciare le cose invariate. Vedrai scomparire il CPU steal time quando il carico diminuirà.

Il server fisico che ospita il tuo cloud server è sovraccarico
Se si verifica un sovraccarico dell’host, in questo caso si tratta di un problema da parte nostra. È raro ma può accadere. In questo caso utilizziamo la live migration per migrare senza interruzioni le macchine virtuali su altri nodi di calcolo fisici per riportare i livelli di carico alla normalità. In genere manteniamo gli host ben al di sotto del pieno carico. Quindi, se continui a riscontrare questo problema per un periodo prolungato, ti preghiamo di contattarci. Il nostro supporto gratuito 24/7 può controllare l’host fisico su cui ti trovi. Se non c’è sovraccarico, è improbabile che sia questa la causa principale del tuo CPU steal time.

Stai utilizzando una dimensione del core virtuale inferiore
Su CloudSigma ti offriamo la possibilità di definire la dimensione del core virtuale per sfruttare, ad esempio, un maggior numero di thread CPU di core virtuali più piccoli per qualsiasi dimensione di server cloud. Il server cloud all'interno del sistema operativo vedrà sempre la dimensione del core come la dimensione fisica completa.

Se il core fisico è da 2.6GHz ma la tua VM è da 4GHz e ha due core, ogni core virtuale sarà da 2GHz. Di conseguenza, vedrai sempre dello steal time. Infatti, questo accade perché ricevi una quota proporzionale del core totale e non la dimensione completa, a causa del fatto che il dimensionamento del core virtuale è inferiore. Pertanto, dovresti sempre adattare i calcoli dello steal time della CPU per tenere conto di un dimensionamento inferiore del core virtuale, qualora tu lo stia effettivamente utilizzando. Per evitare questo, puoi utilizzare la dimensione intera del core per ciascun core. Puoi farlo espandendo la dimensione del core virtuale alla dimensione completa del core della CPU (ad es. Intel v4 2.6GHz).

Conclusione

Lo steal time della CPU nel cloud è un po’ più complesso rispetto ai tradizionali ambienti fisici a tenant singolo. Tuttavia, esiste sicuramente ancora. La segnalazione dello steal time della CPU da parte dei sistemi operativi non si è tuttavia adeguata alle diverse condizioni. Ciò significa che si possono ottenere falsi positivi. Quando si riscontra lo steal time della CPU, di solito significa che si sta verificando un vincolo di risorse. Speriamo che questo articolo ti aiuti a identificare rapidamente la causa principale e a garantire la continuità delle operazioni.

Buon computing!

Robert

 

author

Robert Jenkin

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.