Hyper-V Dynamic Memory– Memory Buffer e Memory Priority

Dopo il rilascio di Windows Server 2008 R2 SP1 Beta, il mitico Ben Armstrong ne sta approfondendo le novità dal punto di vista meramente tecnico; i due post a cui mi riferisco, in particolare, sono i seguenti:

What is the memory buffer when dynamic memory is enabled?

What is "memory priority" when service pack 1 is installed?

 

Una volta installato il Service Pack 1 Beta ed aver aggiornato gli Integration Services all’interno del vostro Guest (*attenzione* in questa versione SP1 Beta, i Guest OS che supportano la Dynamic Memory sono: Windows Server 2003/2008/2008 R2 Enterprise e Datacenter 32/x64 e Windows Vista/7 Enterprise e Ultimate 32/x64) vi sarà possibile abilitare la nuova funzionalità di Dynamic Memory.

Oltre a specificare i due valori di “Startup RAM” e “Maximum RAM” (Hyper-V Dynamic Memory Evaluation Guide), potete specificare anche un valore percentuale per il Memory Buffer e per la Memory Priority.

 

Memory Buffer

Come specificato nel post di Ben, il Memory Buffer altro non è che una percentuale di memoria libera da riservare all’interno della Virtual Machine. Es: ammettendo che il valore di questo buffer sia il 10%, in una macchina che, in un dato momento, sta usando 900 MB di RAM, Hyper-V riserva 900 MB + 100 MB (il 10% di un GB che rappresenta il totale) per la VM stessa. Nel caso venga richiesta (ed accordata) RAM all’interno della VM, Hyper-V tenterà di mantenere la percentuale di Memory Buffer costante al 10% del totale.

Da notare che, di default, il Memory Buffer è impostato al 20%.

Le due domande frequenti che trovate sul blog post sono:

Sai indicarmi uno scenario in cui dovrei abbassare la percentuale di Memory Buffer?

L’esempio riportato da Ben riguarda un’applicazione che utilizza quanta più RAM trova a disposizione.

Sai indicarmi uno scenario in cui dovrei alzare la percentuale di Memory Buffer?

Nel caso ci sia un’applicazione che, ciclicamente, ha dei picchi di utilizzo di memoria.

 

Memory Priority

Un’ulteriore parametro introdotto con la feature Dynamic Memory è la Memory Priority. Come suggerisce il termine stesso, ha a che fare con la priorità data ad una specifica Virtual Machine rispetto ai parametri di memoria; in particolare, Ben menziona questi 3 effetti:

1. Le VMs con priorità maggiore ricevono più memoria in caso di disponibilità limitata della stessa.

2. In caso vi sia necessità di RAM, le VMs con priorità inferiore sono oggetto di riduzione di memoria prima delle VMs con priorità maggiore.

3. La quantità di memoria rimossa dalle Virtual Machines attive in caso in cui debba essere attivata una nuova VM dipende dalla Memory Priority di quest’ultima.

A queste considerazioni va aggiunto che, nel caso abbiate VMs con memoria statica, esse non concorrono in questi processi.

In ogni caso, vi rimando ai due post citati più volte per maggiori dettagli:

What is the memory buffer when dynamic memory is enabled?

What is "memory priority" when service pack 1 is installed?

 

Simone