Przejdź do głównej treści

Wysokie użycie pamięci przez maszyny wirtualne Hyper-V

Klienci korzystający z planów WHS często pytają, dlaczego nowo zainstalowany system operacyjny bez żadnego oprogramowania używa od 80 do 90 procent pamięci RAM i gdzie ta pamięć jest wykorzystywana.

Wygląda to tak:

HyperV high memory usage 1

Nie ma procesów z wysokim użyciem pamięci:

HyperV high memory usage 2

To normalne zachowanie. Tak działa mechanizm pamięci dynamicznej Hyper-V.

https://technet.microsoft.com/en-us/library/hh831766.aspx

Jeśli maszyna wirtualna będzie potrzebować więcej pamięci RAM, pamięć zostanie przydzielona automatycznie.

Jak mogę sprawdzić, czy ilość pamięci określona w planie jest rzeczywiście zapewniana maszynie wirtualnej?

Możesz pobrać narzędzie RamMap od Sysinternals. Ta firma należy do Microsoftu, a narzędzie można uznać za zalecane oficjalne narzędzie:

https://technet.microsoft.com/en-us/sysinternals/rammap.aspx

https://download.sysinternals.com/files/RAMMap.zip

Ilość pamięci zarezerwowanej przez system wirtualizacji jest wyświetlana jako Driver Locked:

HyperV high memory usage 3

Jak mogę sprawdzić, ile pamięci łącznie używają procesy serwera?

Możesz to zrobić za pomocą następującego polecenia PowerShell (jeśli przekazywanie bufora jest włączone, możesz wkleić polecenie do konsoli PowerShell, klikając prawym przyciskiem myszy):

Get-Process | measure PM -sum

Możesz zobaczyć, że uruchomionych jest 39 procesów i używają one 358,739,968 bajtów pamięci RAM, co stanowi około 350 MB.

HyperV high memory usage 4

Aby uniknąć ręcznych obliczeń i ryzyka błędnej liczby miejsc po przecinku, możesz użyć następującego polecenia:

$mem = 0; Get-Process | %{$mem += $_.pm}; "{0:N2}MB " -f ($mem/1mb)

Wynik to 340 MB, co jest zgodne z powyższą wartością:

HyperV high memory usage 5