Parcheggio CPU ESXi e Windows Server


10

Per coloro che non lo sanno, il parcheggio della CPU è una funzionalità delle recenti versioni di Windows Server che consente a Windows di rilasciare praticamente un core della CPU a zero uso e senza averlo usato. È stato introdotto come misura di risparmio energetico. Ci sono più dettagli a riguardo qui , tra gli altri posti.

Tuttavia, ciò che mi incuriosisce è se la questione riguarda un guest virtualizzato - o se la CPU stia più di un ostacolo che di un aiuto, dato che le CPU fisiche sono gestite da ESXi, non da Windows, e che una CPU parcheggiata ha meno probabilità di gestire il traffico a meno che lo scheduler non ritenga che ci sia abbastanza lavoro per sbloccare la CPU?

Non ho trovato nulla al riguardo - sospetto che sarà molto basato su un determinato carico di lavoro, ma non ho visto alcuna discussione (a differenza, diciamo, se l'hyper-threading abbia qualche effetto, che sembra essere discusso regolarmente ). Mentre capisco il "test con il tuo carico di lavoro", mi chiedevo se ci fossero consigli / linee guida là fuori che mi sono perso.


1
Dubito che una VM possa dire ai core fisici di andare a dormire. Se ciò potesse essere fatto, sarebbe fatto dall'hypervisor indipendente dalla VM.
LatinSuD

Esatto - ecco perché sto ponendo la domanda, non riesco a vedere il punto di parcheggio in una VM, quindi il parcheggio dovrebbe essere disabilitato?
Chris J,

Quale versione di ESXi? Qual è l'utilizzo della CPU, sia sulla macchina dello sviluppatore che hai citato in uno dei commenti sia sulla VM? Quali modelli di CPU sono utilizzati nella macchina dello sviluppatore e nell'host ESXi? Non so se queste informazioni aiuteranno, ma potrebbero.
Mario Lenz,

Risposte:


11

Prova sicuramente a dimensionare correttamente le tue VM .

Se avete abbastanza CPU virtuali liberi di essere preoccupato per "il parcheggio CPU", si può avere troppi assegnato al VM.

Non è una richiesta comune, quindi farei affidamento sui tradizionali strumenti di gestione delle risorse a meno che tu non stia attualmente riscontrando un problema di prestazioni.

Modificare:

Si stanno avendo un problema di prestazioni.

  • Assicurati di aver installato gli strumenti VMware.
  • Imposta le opzioni di risparmio energia della VM di Windows su Prestazioni elevate

inserisci qui la descrizione dell'immagine


2
È qualcosa che abbiamo visto su un rig con un carico della CPU abbastanza pesante: un'app multi-thread non sembra utilizzare tutte le vCPU, con il gestore delle risorse che contrassegna una coppia come "parcheggiata" (nonostante ci siano thread più che sufficienti in coda per l'esecuzione). È la prima volta che dobbiamo ponderare se il parcheggio e le macchine virtuali sono davvero un problema: lo sviluppatore sul suo computer (fisico) vede lo stesso codice usare tutti i core (più core di quanti ne siano presenti sulla VM). Ci grattiamo un po 'la testa e volevamo solo esplorare questo aspetto particolare.
Chris J,

@ChrisJ Vedi la mia modifica sopra.
ewwhite,

Questo sembra aver fatto il trucco sul nostro banco di prova: il carico è ora distribuito su tutte le vCPU (secondo Windows) e invece di 2 thread simultanei abbiamo 4 thread simultanei. Oggi correremo sul grande impianto (si spera) quindi confermeremo allora.
Chris J,

1
Assicurati di aggiungerlo ai criteri di gruppo del server Windows. Ecco perché non finisco più per toccarlo più manualmente.
ewwhite,

Buon suggerimento - ta.
Chris J,

4

Non avrebbe importanza. Se si desidera risparmiare energia, assegnare meno core al guest VM. Windows proverà a gestire i suoi core "virtuali", ma non ha alcun controllo sull'hypervisor in modo da non influire sulle CPU fisiche effettive sul sistema.


Per me questo non è un problema di risparmio energetico in quanto l'host è virtulizzato, quindi è ESXi che devo guardare. È più o meno se influisce / interferisce con lo scheduler dell'hypervisor stesso, poiché alla fine il tempo fisico della CPU è allocato da quello e non dallo scheduler di Windows. La mia impressione è che il parcheggio dovrebbe probabilmente essere disabilitato, quindi lo scheduler di Windows non deve "parcheggiare" una CPU che in realtà non esiste, e questo potrebbe fare un uso migliore delle CPU fisiche sottostanti consentendo a ESX di allocare tempo di conseguenza. Mi chiedevo solo se il mio istinto è corretto :-)
Chris J

Non influenzerà lo scheduler. In condizioni limitate, ESXi potrebbe "rubare" tempo di CPU inutilizzato dai propri ospiti, ma in caso contrario il core rimarrà inattivo a meno che non lo utilizzi anche un altro guest.
Nathan C

@ChrisJ Non è necessario disabilitarlo. Non tentare di superare in
astuzia

Non sto cercando di superare in astuzia VMWare, sto provando a indovinare Windows (poiché non sembra che stia pianificando un'app su tutti i vCPU) :-) Non pensavo che avremmo dovuto farlo, principalmente a causa della mancanza di informazioni al riguardo online (implicando che la maggior parte / tutti lo lasciano così com'è), ma volevo solo esplorare questo aspetto.
Chris J,

@ChrisJ Non penso che la gente tocchi direttamente questa impostazione. Di solito fa parte della politica di alimentazione del sistema.
ewwhite,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.