Hyper-V: Dimensione del Page File nella Root/Parent Partition

Il page file ha due ruoli primari:

  1. Consentire alla memoria virtuale di operare meglio permettendo quindi al computer di gestire più dati
  2. Permettere investigazione in caso di crash in quanto viene inserito nei dumps

In un sistema basato su Windows Server 2008 R2 con il solo ruolo Hyper-V installato come consigliano le best practies Microsoft (Hyper-V: Hyper-V should be the only enabled role) di fatto non necessita di un page file di grandi dimensioni in quanto la maggior parte della RAM viene dedicata alle VM ed è quindi sotto il controllo dell’hypervisor (a riguardo di veda Monitoring Hyper-V Performance.

image Per quanto riguarda i requisiti di memoria nella parent/root patition è possibile basarsi sul documento Performance Tuning Guidelines for Windows Server 2008 R2 in cui si danno le seguenti linee guida:

The root partition must have sufficient memory to provide services such as I/O virtualization, snapshot, and management to support the child partitions. The root partition should have at least 512 MB available.

A good standard for the memory overhead of each VM is 32 MB for the first 1 GB of virtual RAM plus another 8 MB for each additional GB of virtual RAM. This should be factored in the calculations of how many VMs to host on a physical server. The memory overhead varies depending on the actual load and amount of memory that is assigned to each VM.

Quindi ipotizzando di avere VM con 2 GB che implicano un overhead di 32+8=40 MB potremmo utilizzare la regola conservativa che un Hyper-V server che esegui fino a 10 VM necessita di 1020 MB di RAM mentre oltre 10 VM occorre dedicare alla root/parent partition 2048 MB di RAM.

Per quanto riguarda la gestione dei dumps in relazione al page file si noti che:

  1. Un Complete memory dump richiede un page file sul volume di boot di dimensioni pari alla RAM più 1 MB.
  2. Un Kernel memory dump richiede un page file sul volume d boot di dimensione pari a 1.5 volte la dimensione della RAM fisica per sistemi con meno di 1373 MB. Con sistemi con più di 1373 MB di RAM occorre un page file di 2 GB più 16 MB per sistemi a 32 bit e pari alla RAM più 128 MB su sistemi a 64 bit.

Tenendo conto che in circa il 95% dei casi il Kernel dump risulta sufficiente, in un ambiente Windows 2008 R2 (che può essere eseguito solo su architettura a 64 bit) con 1024 MB di RAM sarà necessario un page file di almeno 1536 MB, mentre con 2048 MB la dimensione del page file dovrà essere almeno di 2176 MB.

Per ulteriori informazioni sulla gestione dei dump si vedano i seguenti:

Conclusioni

Tenendo conto di quanto detto precedentemente e che normalmente viene suggerito di impostare il page file a 1.5 volte la dimensione della RAM, in un Hyper-V server con Windows 2008 R2 si può fare riferimento alla seguente tabella:

Numero VM a 2GB RAM RAM per Parent/Root partion Dimensione Page File minima

<10

1024 MB

1536 MB

>=10

2048 MB

3072 MB

 

Quindi in via cautelativa se non vi sono problemi di spazio si potrebbe pensare di impostare un page file a dimensione fissa di 4096 MB sul volume di boot come viene anche consigliato da Janssen Jones (Virtual Machine MVP) nelle slide della sessione VIR403: Virtualization Frequently Asked Questions, Tips, and Tricks:

image

In Microsoft Hyper-V Server 2008 R2 è possibile controllare le impostazioni del page file nei seguenti modi:

  1. Tramite il comando wmic pagefile get /format:list
  2. Tramite la chiave di registro HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management

Per impostare un page file fisso di 4096 MB è possibile utilizzare i seguenti comandi:

wmic computersystem set AutomaticManagedPagefile=False
wmic pagefileset where name=”c:\\pagefile.sys” set InitialSize=4096,MaximumSize=4096