Panoramica completa delle procedure consigliate relative alla memoria dinamica Hyper-V
La memoria dinamica di Hyper-V è stata introdotta per la prima volta in Windows Server 2008 R2 con SP1. Prima del suo rilascio, le macchine virtuali ( una VM Hyper-V , VM) venivano avviate ed eseguite con l’intera quantità di RAM loro assegnata, il che comportava un utilizzo eccessivo della memoria e influiva sulle prestazioni complessive delle VM. Inoltre, la quantità di memoria disponibile per la VM poteva essere modificata solo quando la VM era spenta. È quindi logico che l’allocazione statica della memoria dovesse essere sostituita con l’allocazione dinamica e che sia stata introdotta la funzione “Hyper-V Dynamic Memory”.
Che cos’è la memoria dinamica di Hyper-V?
La memoria dinamica di Hyper-V è una funzione che consente di allocare dinamicamente risorse di memoria alle VM in esecuzione in ambienti Hyper-V. Questa funzione recupera una parte della memoria inutilizzata dalle VM che non ne hanno bisogno in quel preciso momento e la riassegna ad altre VM che ne hanno effettivamente bisogno.
Con la memoria dinamica di Hyper-V, è possibile specificare la quantità di memoria di avvio che la VM può utilizzare, impostare l’intervallo di memoria fisica disponibile per una VM specifica e determinare la priorità della VM per l’allocazione della memoria. La memoria fisica può essere assegnata in modo efficiente e dinamico alla VM in base alle necessità e con un impatto minimo sulle prestazioni. Di conseguenza, si ottiene un controllo più granulare sull’utilizzo della memoria e una maggiore ottimizzazione delle risorse.
Vantaggi e svantaggi della memoria dinamica di Hyper-V
La memoria dinamica di Hyper-V è una funzione utile che offre numerosi vantaggi, quali:
- Consumo di memoria ridotto, poiché la VM utilizza solo la quantità di memoria di cui ha effettivamente bisogno entro i limiti impostati dall’amministratore
- Distribuzione efficiente della memoria, poiché è possibile assegnare dinamicamente più o meno memoria alla VM in esecuzione
- Maggiore consolidamento grazie all’uso più efficiente delle risorse di memoria
- Maggiore affidabilità per le operazioni di riavvio grazie a Hyper-V Smart Paging
- Efficienza in termini di costi, poiché le risorse delle VM non vengono sprecate
Tuttavia, Hyper-V Dynamic Memory presenta anche una serie di svantaggi, che possono influire negativamente sulle prestazioni della memoria delle VM. Tra questi figurano:
- Rischio di sovradimensionamento della memoria fisica del computer nel caso in cui non si tenga traccia dell’allocazione della memoria all’interno dell’ambiente virtuale
- Alcune impostazioni di memoria non possono essere modificate mentre la VM è in esecuzione. Pertanto, non è possibile ridurre o aumentare la quantità massima e minima di memoria, né modificare la quantità di memoria all’avvio della VM, quando questa è ancora in esecuzione o in pausa.
- Quando la memoria dinamica di Hyper-V è abilitata, potrebbero verificarsi problemi con le applicazioni di database. Si consiglia di utilizzare applicazioni compatibili con la memoria dinamica di Hyper-V per evitare eventuali problemi di prestazioni.
Impostazioni della memoria dinamica di Hyper-V
La memoria dinamica di Hyper-V include cinque impostazioni della macchina virtuale che possono essere configurato in Hyper-V Manager. A tal fine, aprire Gestione Hyper-V, selezionare la macchina virtuale desiderata, fare clic su Settingse scegliere Memory. Verrà visualizzato quanto segue: 
Tuttavia, prima di poter iniziare a configurare le impostazioni della memoria dinamica di Hyper-V, si consiglia innanzitutto di familiarizzare con il funzionamento di questi componenti e con i vantaggi che possono offrire. Diamo un’occhiata a ciascuno di essi.
RAM di avvio
Questo valore della memoria dinamica di Hyper-V definisce la quantità minima di memoria fisica che una VM selezionata può utilizzare durante l’avvio. La RAM di avvio deve essere sufficientemente elevata da consentire alla macchina virtuale di avviarsi rapidamente e senza interruzioni. Si noti che la RAM di avvio non può essere modificata mentre la macchina virtuale è in esecuzione.

RAM minima
Questo valore della memoria dinamica di Hyper-V determina la quantità minima di RAM fisica che deve essere assegnata alla macchina virtuale dopo il suo avvio. Se altre VM richiedono RAM aggiuntiva, l’host Hyper-V può iniziare a recuperare la memoria inutilizzata da questa VM fino al raggiungimento del valore minimo di RAM. Si noti che il valore può essere impostato a un minimo di 32 MB, ma non può superare la RAM di avvio. Inoltre, non è possibile aumentare la memoria minima mentre la VM è in esecuzione o in pausa, ma è possibile ridurla (ad esempio, è possibile modificare il valore minimo della RAM da 512 MB a 64 MB).

RAM massima
Questo valore della memoria dinamica di Hyper-V specifica la quantità massima di RAM fisica che la VM può utilizzare. Si noti che questo valore non può essere inferiore alla RAM di avvio assegnata, ma può arrivare fino a 1 TB (1.048.576 MB). Inoltre, non è possibile ridurre la quantità massima di memoria mentre la VM è in esecuzione o in pausa, ma è possibile aumentarla (ad esempio, è possibile modificare il valore massimo della RAM da 512 MB a 2048 MB).
Buffer di memoria
Questo valore della memoria dinamica di Hyper-V determina la percentuale di memoria fisica che deve essere allocata alla VM come buffer. Il buffer di memoria è una porzione di memoria fisica riservata alla VM in base alle sue esigenze di memoria. Per calcolare il buffer di memoria, è necessario utilizzare la seguente formula:
Amount of memory buffer = how much memory the virtual machine actually needs / (memory buffer value / 100).
Per impostazione predefinita, il valore del buffer di memoria è pari al 20%, ma può essere impostato con un minimo del 5% e un massimo del 2000%. È possibile modificare il valore del buffer di memoria in qualsiasi momento, anche mentre la VM è in esecuzione.

Peso della memoria
Questo valore della memoria dinamica di Hyper-V specifica la priorità della VM selezionata rispetto alle altre VM presenti su questo host. In base a questo ordine di priorità, è possibile determinare come distribuire la memoria disponibile tra più VM in esecuzione sullo stesso host Hyper-V. Si noti che, se la priorità della VM è impostata su un valore troppo basso e la quantità di memoria fisica disponibile diminuisce, sussiste il rischio che tale VM non sia in grado di avviarsi. È possibile modificare il valore del peso di memoria in qualsiasi momento, anche mentre la VM è in esecuzione.

Procedure consigliate per la memoria dinamica di Hyper-V
Per ottenere prestazioni elevate e migliorare l’utilizzo della memoria negli ambienti Hyper-V, si raccomanda di attenersi alle procedure consigliate relative alla memoria dinamica di Hyper-V.
Le procedure consigliate relative alla memoria dinamica di Hyper-V elencate di seguito possono migliorare notevolmente le prestazioni della memoria delle VM e l’esperienza complessiva negli ambienti Hyper-V.
Abilitare i servizi di integrazione di Hyper-V
Servizi di integrazione Hyper-V è un insieme di utilità che consentono di migliorare le prestazioni delle VM negli ambienti Hyper-V. Ogni servizio di integrazione Hyper-V deve essere abilitato sia sull’host che sul sistema guest affinché possa funzionare correttamente e fornire i servizi richiesti. Per impostazione predefinita, tutti i servizi di integrazione Hyper-V, ad eccezione dell’Interfaccia di servizio guest Hyper-V, sono abilitati sui sistemi operativi guest.
Affinché la memoria dinamica di Hyper-V funzioni in modo efficace, assicurarsi che i servizi di integrazione Hyper-V siano aggiornati all’ultima versione e che il sistema operativo guest supporti la funzionalità di memoria dinamica. In caso contrario, Hyper-V potrebbe riscontrare problemi poiché la memoria non può essere fornita dinamicamente e le richieste di memoria non possono essere gestite correttamente.
A partire dal rilascio di Windows Server 2016, i servizi di integrazione Hyper-V e i relativi aggiornamenti possono essere installati tramite Windows Update. Pertanto, è necessario configurare le VM in modo che ricevano gli aggiornamenti, al fine di garantire che l’infrastruttura Hyper-V utilizzi la versione più recente dei servizi di integrazione Hyper-V.
Monitorare l’utilizzo della memoria e l’allocazione delle risorse
Attualmente, sul mercato sono disponibili numerosi strumenti di gestione Hyper-V che consentono di effettuare il monitoraggio dell’utilizzo della memoria e dell’allocazione delle risorse negli ambienti Hyper-V. Con la memoria dinamica Hyper-V abilitata, è possibile sovradimensionare la RAM e esaurire completamente la memoria. Pertanto, si raccomanda di tenere traccia della RAM allocata alle varie VM sull’host Hyper-V.
A tal fine, è possibile utilizzare strumenti di monitoraggio nativi oppure acquistare software di terze parti. Ad esempio, è possibile verificare lo stato della memoria della VM tramite l’host in Hyper-V Manager o tramite la VM ospite in Task Manager.


In questo modo è possibile monitorare come vengono utilizzate le risorse di memoria all’interno del sistema. Tuttavia, si noti che Hyper-V Manager e Task Manager mostrano risultati diversi per quanto riguarda l’utilizzo della memoria. Lo strumento di monitoraggio del guest non mostra i risultati effettivi perché la macchina virtuale guest ritiene che l’intera quantità di memoria assegnata alla macchina virtuale sia effettivamente in uso dal proprio driver. In realtà, l’host è generalmente più consapevole del modo in cui la memoria viene distribuita alle VM all’interno dell’infrastruttura. La memoria inutilizzata viene infatti riassegnata ad altre VM e ciò si riflette in Hyper-V Manager.
Tenere in considerazione la RAM di avvio
Impostare un valore di RAM di avvio più alto o più basso può influire notevolmente sulle prestazioni di Hyper-V. È consigliabile aumentare la RAM di avvio per garantire che il sistema operativo e le applicazioni in esecuzione su di esso si avviino come richiesto. Ciò è dovuto al fatto che Windows richiede più RAM durante l’avvio rispetto a quando il sistema operativo è inattivo.
Inoltre, durante le operazioni di installazione o upgrade, la quantità di RAM disponibile per il sistema operativo guest è pari al valore della RAM di avvio. Pertanto, prima di eseguire installazioni o upgrade, è fondamentale assicurarsi che il valore della RAM di avvio soddisfi i requisiti minimi di memoria del sistema operativo selezionato.
Si noti che se il valore della RAM di avvio è impostato su un valore troppo elevato, ciò potrebbe influire negativamente anche sulle prestazioni della memoria dinamica di Hyper-V e sull’utilizzo complessivo della memoria. Pertanto, si raccomanda di assegnare 512 MB come valore della RAM di avvio per il sistema operativo ospite, in modo che possa avviarsi senza interruzioni.
Non dimenticate le perdite di memoria
Quando si impostano i limiti della memoria dinamica di Hyper-V per una particolare VM, è fondamentale tenere presente che la vostra infrastruttura potrebbe essere soggetta a perdite di memoria. Le perdite di memoria comportano la graduale perdita di memoria disponibile a causa di un’allocazione errata della memoria. Di solito si verificano quando un’applicazione non riesce a liberare la memoria che era stata fornita solo per un uso temporaneo. Se il problema non viene rilevato prima che si verifichino danni gravi, la memoria del sistema operativo può esaurirsi e l’applicazione finirà per arrestarsi.
Per mitigare gli effetti negativi di questo problema, si consiglia di installare uno strumento di monitoraggio (ad es. RAMMap) ed eseguire una scansione dell’intera infrastruttura alla ricerca di eventuali incongruenze, individuando casi anomali di utilizzo della memoria da parte delle applicazioni in esecuzione. Inoltre, tali strumenti possono aiutare a determinare i valori minimi e massimi di RAM più appropriati per quella specifica VM.
Configurare i valori massimi e minimi di RAM
Per garantire che la memoria dinamica di Hyper-V funzioni come richiesto, si raccomanda di stabilire dei limiti che il sistema non possa superare. In questo modo, l’utilizzo della memoria all’interno dell’infrastruttura viene controllato in modo efficace, il che significa che la VM non consumerà né troppa né troppo poca memoria.
Impostare con attenzione il valore del buffer di memoria
Una procedura consigliata relativa alla memoria dinamica di Hyper-V consiste nell’assegnare il valore appropriato al buffer di memoria, che specifica quanta memoria aggiuntiva debba essere resa disponibile per una VM selezionata. Se il valore di Memory Buffer è impostato su un valore elevato, questa quantità aggiuntiva di memoria viene generalmente utilizzata per la memorizzazione nella cache dei file nelle VM di grandi dimensioni e per ottimizzare le operazioni di I/O all’interno del sistema.
Allo stesso tempo, il valore di Memory Buffer dovrebbe essere impostato su un valore basso se è in esecuzione un’applicazione che richiede una grande quantità di memoria fisica. Con un valore ridotto di Memory Buffer, si può essere certi che la memoria disponibile non venga consumata completamente da una singola VM.
Inoltre, se alla VM è già stata assegnata una grande quantità di memoria, è improbabile che ne richieda mai di aggiuntiva. Pertanto, è più sensato condividere le risorse di memoria inutilizzate con altre VM che ne hanno maggiormente bisogno.
Aggiornare gli host Hyper-V quando necessario
Per mantenere stabile e sicuro il proprio ambiente Hyper-V, assicurarsi che gli host Hyper-V installino tutti gli aggiornamenti e le patch di sicurezza quando richiesto. Lo scopo principale degli aggiornamenti e delle patch di sicurezza Microsoft è quello di risolvere i problemi individuati nel sistema. Ad esempio, in Windows Server 2012 R2 è stato rilevato un problema con la memoria dinamica di Hyper-V che impediva alle VM Hyper-V di ottenere memoria aggiuntiva. Anche se la funzione era abilitata sulle VM, continuava comunque a non funzionare correttamente. Per questo motivo, Microsoft ha rilasciato un hotfix per risolvere il problema e garantire che la funzionalità operi come previsto.
Rilevare le variazioni delle prestazioni nel corso della giornata
Il carico di lavoro di produzione aumenta notevolmente durante l’orario di lavoro, il che alla fine influisce sulle prestazioni di Hyper-V, nonché sull’allocazione delle risorse e sull’utilizzo della memoria. Come una delle procedure consigliate relative alla memoria dinamica di Hyper-V, si raccomanda di effettuare il monitoraggio delle variazioni nell’utilizzo della memoria nel corso della giornata lavorativa. Individuando quando si verificano tipicamente i cicli di utilizzo elevato e ridotto della memoria, è possibile imparare a utilizzare la memoria dinamica di Hyper-V a proprio vantaggio.
Abilitare la memoria dinamica di Hyper-V solo quando è effettivamente necessaria
Sebbene la memoria dinamica di Hyper-V sia una funzione estremamente utile che migliora l’utilizzo della memoria fisica, in alcuni casi l’allocazione statica della memoria rappresenta l’opzione preferibile. Pertanto, è opportuno valutare se sia necessario abilitare la memoria dinamica di Hyper-V su una determinata VM. Ad esempio, alcune applicazioni offrono prestazioni migliori se dispongono di una quantità predeterminata di RAM che possono utilizzare senza interruzioni. La quantità di RAM preassegnata rimane invariata nonostante le fluttuazioni nella richiesta di memoria.
Pertanto, si raccomanda di pianificare in anticipo come verrà distribuita la memoria fisica nel proprio ambiente Hyper-V, in modo da prevenire l’esaurimento della RAM ed evitare futuri malfunzionamenti delle applicazioni.
Utilizzare la memoria dinamica di Hyper-V solo con applicazioni compatibili
Prima di installare qualsiasi applicazione sull’host o sul sistema guest Hyper-V, assicurarsi che tale applicazione possa essere utilizzata insieme alla memoria dinamica di Hyper-V. Per verificare tali informazioni, si consiglia di leggere innanzitutto la documentazione di supporto del prodotto per conoscerne le funzionalità e i requisiti di sistema. Tali misure precauzionali possono aiutarvi a evitare eventuali problemi relativi all’utilizzo e all’allocazione della memoria che potrebbero verificarsi.
Conclusioni
Dopo aver appreso le procedure consigliate relative alla memoria dinamica di Hyper-V, potrete iniziare a utilizzare la memoria fisica in modo più efficiente e sicuro. Tuttavia, la vostra infrastruttura virtuale è ancora esposta a vari pericoli e minacce che possono comprometterne le prestazioni. Per garantire la sicurezza del proprio ambiente virtuale, l’utilizzo di una soluzione di protezione dei dati rappresenta l’opzione più praticabile. NAKIVO Backup & Replication è una soluzione affidabile, efficace e conveniente che offre backup delle VM, replica, backup su cloud, copia di backup, ripristino dell’ambiente e un ricco set di funzioni.