Faktyczna ilość pamięci alokowanej dla maszyny wirtualnej w Hyper-V R2
Szukając w sieci dokumentów na temat optymalizacji Hyper-V trafiłem na dokument na MSDN. Dokument ten dotyczy ten poprzedniej wersji Hyper-V. Zainteresował mnie ten akapit, mówiący o zużyciu pamięci:
300 MB for the Hypervisor plus 32 MB for the first GB of RAM allocated to each virtual machine plus another 8 MB for every additional GB of RAM allocated to each virtual machine plus 512 MB for the host operating system running on the root partition
Czyli w przypadku maszyny z przydzielonym 2GB ramu hypervisor zużyje:
- 300 MB na hypervisor
- 2048 MB na maszynę wirtualną
- 40 MB na obsługę maszyny wirtualnej(32 MB na pierwszy GB ramu i 8 MB na kolejny)
Postanowiłem sprawdzić jak to się ma do aktualnej wersji Hyper-V przy użyciu narzędzia RAMMap.Testy odbyły się na serwerze bl460c G7 z 32GB ramu na pokładzie. Zainstalowany system to Windows Server 2008 R2 SP1 Enterprise. Poniżej zrzut okna RAMMapa przed instalacją Hyper-V: Po instalacji Hyper-V: Porównując powyższe wartości zużycia pamięci widzimy, że Drive Locked zwiększył wartość w przybliżeniu o 202M. Jest to wartość użyta przez hypervisor. Zrzut ekranu po uruchomieniu maszyny wirtualnej z przydzielonymi 2GB ramu: Tutaj widzimy, że wartość Driver Locked zwiększyła się w przybliżeniu o 2065MB ramu, czyli 2048MB przydzielone dla maszyny i 17MB na obsługę maszyny. Idą dalej sprawdziłem zużycie pamięci dla maszyn z 1GB ,4GB ,8GB, 16GB ramu.
Ilość RAMU dla VM | Ilość pamięci zużytej na obsługę maszyny |
---|---|
1GB | 15MB |
2GB | 17MB |
4GB | 21MB |
8GB | 29MB |
16GB | 45MB |
Analizując powyższe dane dla wersji Hyepr-V R2 zużycie pamięci wychodzi następująco:
- Hypervisor około 200MB
- Pierwsze 1GB ramu dla maszyny wirtualnej zużywa 15MB
- Każdy kolejny gigabajt ramu zużywa 2MB.