Kompleksowy przegląd najlepszych rozwiązań dotyczących pamięci dynamicznej Hyper-V
Funkcja Hyper-V Dynamic Memory została po raz pierwszy wydana w systemie Windows Server 2008 R2 z dodatkiem SP1. Przed jej wydaniem maszyny wirtualne ( maszyna wirtualna Hyper-V , VM) uruchamiały się i działały z pełną ilością przydzielonej im pamięci RAM, co powodowało nadmierne zużycie pamięci i negatywnie wpływało na ogólną wydajność maszyn wirtualnych. Ponadto ilość dostępnej pamięci maszyny wirtualnej można było zmienić tylko wtedy, gdy maszyna wirtualna była wyłączona. Dlatego uzasadnione było zastąpienie statycznego przydzielania pamięci przydzielaniem dynamicznym i wprowadzono funkcję pamięci dynamicznej Hyper-V.
Czym jest pamięć dynamiczna Hyper-V?
Pamięć dynamiczna Hyper-V to funkcja umożliwiająca dynamiczne przydzielanie zasobów pamięci maszynom wirtualnym działającym w środowiskach Hyper-V. Funkcja ta odzyskuje część niewykorzystanej pamięci z maszyn wirtualnych, które w danym momencie jej nie potrzebują, a następnie przydziela odzyskaną pamięć innym maszynom wirtualnym, które faktycznie jej potrzebują.
Dzięki funkcji Hyper-V Dynamic Memory można określić ilość pamięci startowej, z której może korzystać maszyna wirtualna, ustawić zakres dostępnej pamięci fizycznej dla konkretnej maszyny wirtualnej oraz określić priorytet maszyny wirtualnej w zakresie przydzielania pamięci. Pamięć fizyczna może być efektywnie i dynamicznie przydzielana do maszyny wirtualnej Hyper-V w miarę potrzeb, przy minimalnym wpływie na wydajność. W rezultacie zyskujesz bardziej szczegółową kontrolę nad wykorzystaniem pamięci i lepszą optymalizację zasobów.
Zalety i wady funkcji Hyper-V Dynamic Memory
Funkcja Hyper-V Dynamic Memory to przydatna funkcja, która oferuje wiele zalet, takich jak:
- Zmniejszone zużycie pamięci, ponieważ maszyna wirtualna wykorzystuje tylko tyle pamięci, ile faktycznie potrzebuje, w granicach ustalonych przez administratora
- Efektywny podział pamięci, ponieważ można dynamicznie przydzielać więcej lub mniej pamięci do uruchomionej maszyny wirtualnej
- Wyższe wskaźniki konsolidacji dzięki bardziej efektywnemu wykorzystaniu zasobów pamięci
- Zwiększona niezawodność operacji ponownego uruchamiania dzięki funkcji Hyper-V Smart Paging
- Oszczędność kosztów, ponieważ zasoby maszyn wirtualnych nie są marnowane
Jednak funkcja Hyper-V Dynamic Memory ma również szereg wad, które mogą negatywnie wpływać na wydajność pamięci maszyny wirtualnej. Obejmują one:
- Ryzyko nadmiernego przydzielenia pamięci fizycznej komputera w przypadku braku monitorowania alokacji pamięci w środowisku wirtualnym
- Niektórych ustawień pamięci nie można zmienić podczas działania maszyny wirtualnej. W związku z tym nie można zmniejszyć ani zwiększyć maksymalnej i minimalnej ilości pamięci, a także zmodyfikować ilości pamięci startowej maszyny wirtualnej, gdy maszyna wirtualna nadal działa lub jest wstrzymana.
- Gdy funkcja Hyper-V Dynamic Memory jest włączona, mogą wystąpić problemy z aplikacjami bazodanowymi. Zaleca się korzystanie z aplikacji zgodnych z Hyper-V Dynamic Memory, aby uniknąć problemów z wydajnością.
Ustawienia Hyper-V Dynamic Memory
Hyper-V Dynamic Memory obejmuje pięć ustawień maszyny wirtualnej, które można skonfigurowane w Menedżerze Hyper-V. W tym celu otwórz Menedżera Hyper-V, wybierz żądaną maszynę wirtualną, kliknij Settingsi wybierz Memory. Zobaczysz następujące okno: 
Zanim jednak zaczniesz konfigurować ustawienia pamięci dynamicznej Hyper-V, warto najpierw zapoznać się z działaniem tych komponentów i korzyściami, jakie oferują. Przyjrzyjmy się każdemu z nich.
Pamięć RAM uruchamiania
Ta wartość pamięci dynamicznej Hyper-V określa minimalną ilość pamięci fizycznej, jaką wybrana maszyna wirtualna Hyper-V może wykorzystać podczas uruchamiania. Pamięć RAM przy uruchomieniu powinna być wystarczająco duża, aby umożliwić szybkie i nieprzerwane uruchomienie maszyny wirtualnej. Należy pamiętać, że pamięci RAM przy uruchomieniu nie można zmienić, gdy maszyna wirtualna jest uruchomiona.

Minimalna pamięć RAM
Ta wartość pamięci dynamicznej Hyper-V określa minimalną ilość pamięci fizycznej, która powinna zostać przydzielona maszynie wirtualnej po jej uruchomieniu. Jeśli inne maszyny wirtualne wymagają dodatkowej pamięci RAM, host Hyper-V może zacząć odzyskiwać nieużywaną pamięć z tej maszyny wirtualnej, aż do osiągnięcia minimalnej wartości pamięci RAM. Należy pamiętać, że wartość ta może wynosić co najmniej 32 MB, ale nie może być wyższa niż pamięć RAM przy uruchomieniu. Ponadto nie można zwiększyć minimalnej pamięci, gdy maszyna wirtualna działa lub jest wstrzymana, ale można ją zmniejszyć (np. można zmienić minimalną wartość pamięci RAM z 512 MB na 64 MB).

Maksymalna pamięć RAM
Ta wartość pamięci dynamicznej Hyper-V określa maksymalną ilość pamięci fizycznej, z której może korzystać maszyna wirtualna Hyper-V. Należy pamiętać, że wartość ta nie może być niższa niż przypisana pamięć RAM uruchomieniowa, ale może wynosić nawet 1 TB (1 048 576 MB). Ponadto nie można zmniejszyć maksymalnej ilości pamięci, gdy maszyna wirtualna jest uruchomiona lub wstrzymana, ale można ją zwiększyć (np. można zmienić maksymalną wartość pamięci RAM z 512 MB na 2048 MB).
Bufor pamięci
Ta wartość pamięci dynamicznej Hyper-V określa procent pamięci fizycznej, który powinien zostać przydzielony maszynie wirtualnej jako bufor. Bufor pamięci to część pamięci fizycznej, która jest zarezerwowana dla maszyny wirtualnej w oparciu o jej potrzeby pamięciowe. Aby obliczyć bufor pamięci, należy użyć następującego wzoru:
Amount of memory buffer = how much memory the virtual machine actually needs / (memory buffer value / 100).
Domyślnie wartość bufora pamięci wynosi 20%, ale można ją ustawić w zakresie od 5% do 2000%. Wartość bufora pamięci można zmienić w dowolnym momencie, nawet podczas działania maszyny wirtualnej Hyper-V.

Waga pamięci
Ta wartość pamięci dynamicznej Hyper-V określa priorytet wybranej maszyny wirtualnej Hyper-V w porównaniu z innymi maszynami wirtualnymi na tym hoście. Na podstawie tej kolejności priorytetów można określić sposób rozdzielenia dostępnej pamięci między wiele maszyn wirtualnych działających na tym samym hoście Hyper-V. Należy pamiętać, że jeśli priorytet maszyny wirtualnej zostanie ustawiony na zbyt niskim poziomie, a ilość dostępnej pamięci fizycznej zmniejszy się, istnieje ryzyko, że ta maszyna wirtualna nie będzie mogła się uruchomić. Wartość wagi pamięci można zmienić w dowolnym momencie, nawet podczas działania maszyny wirtualnej.

Najlepsze rozwiązania dotyczące pamięci dynamicznej Hyper-V
Aby osiągnąć wysoką wydajność i poprawić wykorzystanie pamięci w środowiskach Hyper-V, zaleca się stosowanie najlepszych rozwiązań dotyczących pamięci dynamicznej Hyper-V.
Wymienione poniżej najlepsze rozwiązania dotyczące pamięci dynamicznej Hyper-V mogą znacznie poprawić wydajność pamięci maszyn wirtualnych oraz ogólne wrażenia z użytkowania w środowiskach Hyper-V.
Włącz usługi integracji Hyper-V
Usługi integracji Hyper-V to zestaw narzędzi, które pozwalają poprawić wydajność maszyn wirtualnych w środowiskach Hyper-V. Każda usługa integracji Hyper-V musi być włączona zarówno na hoście, jak i w systemie gościa, aby mogła prawidłowo funkcjonować i świadczyć usługi zgodnie z wymaganiami. Domyślnie wszystkie usługi integracji Hyper-V, z wyjątkiem interfejsu usług gościa Hyper-V, są włączone w systemach operacyjnych gościa.
Aby pamięć dynamiczna Hyper-V działała skutecznie, upewnij się, że usługi integracji Hyper-V zostały zaktualizowane do najnowszej wersji oraz że system operacyjny gościa obsługuje funkcję pamięci dynamicznej. W przeciwnym razie w Hyper-V mogą wystąpić problemy, ponieważ pamięć nie może być przydzielana dynamicznie, a zapotrzebowanie na pamięć nie może być prawidłowo zaspokojone.
Od czasu wydania systemu Windows Server 2016 usługi integracji Hyper-V i odpowiadające im aktualizacje można instalować za pośrednictwem usługi Windows Update. Dlatego należy skonfigurować maszyny wirtualne tak, aby otrzymywały aktualizacje, co zapewni, że infrastruktura Hyper-V korzysta z najnowszej wersji usług integracji Hyper-V.
Monitoruj wykorzystanie pamięci i alokację zasobów
Obecnie na rynku dostępnych jest wiele narzędzi do zarządzania Hyper-V, które pozwalają na monitorowanie wykorzystania pamięci i alokację zasobów w środowiskach Hyper-V. Przy włączonej funkcji Hyper-V Dynamic Memory możliwe jest nadmierne przydzielenie pamięci RAM i całkowite wyczerpanie pamięci. Dlatego zaleca się śledzenie ilości pamięci RAM przydzielonej do różnych maszyn wirtualnych na hoście Hyper-V.
W tym celu można użyć natywnych narzędzi do monitorowania lub zakupić oprogramowanie innych firm. Na przykład można sprawdzić stan pamięci maszyny wirtualnej Hyper-V za pośrednictwem hosta w Menedżerze Hyper-V lub gościa w Menedżerze zadań.


W ten sposób możemy monitorować, w jaki sposób zasoby pamięci są wykorzystywane w systemie. Należy jednak pamiętać, że Menedżer Hyper-V i Menedżer zadań pokazują różne wyniki dotyczące wykorzystania pamięci. Narzędzie do monitorowania maszyn-gości nie pokazuje rzeczywistych wyników, ponieważ maszyna-gość uznaje, że cała pamięć przydzielona jej jest faktycznie wykorzystywana przez jej sterownik. W rzeczywistości to host zazwyczaj ma lepszy wgląd w sposób, w jaki pamięć jest rozdzielana między maszyny-gości w ramach infrastruktury. Niewykorzystana pamięć jest w rzeczywistości przydzielana innym maszynom-gościom, co znajduje odzwierciedlenie w Menedżerze Hyper-V.
Weź pod uwagę pamięć RAM uruchomienia
Ustawienie wyższej lub niższej wartości pamięci RAM uruchomienia może znacząco wpłynąć na wydajność Hyper-V. Należy zwiększyć pamięć RAM uruchomienia, aby zapewnić prawidłowe uruchomienie systemu operacyjnego i aplikacji na nim działających. Wynika to z faktu, że system Windows ma wyższe wymagania dotyczące pamięci RAM podczas uruchamiania niż w stanie bezczynności.
Ponadto podczas operacji instalacji lub aktualizacji ilość pamięci RAM dostępnej dla systemu operacyjnego gościa jest równa wartości pamięci RAM uruchomienia. Dlatego przed przeprowadzeniem instalacji lub aktualizacji należy koniecznie upewnić się, że wartość pamięci RAM przy uruchomieniu spełnia minimalne wymagania pamięciowe wybranego systemu operacyjnego.
Należy pamiętać, że zbyt wysokie ustawienie wartości pamięci RAM przy uruchomieniu może również negatywnie wpłynąć na wydajność pamięci dynamicznej Hyper-V oraz ogólne zużycie pamięci. Dlatego zaleca się przypisanie 512 MB jako wartości pamięci RAM przy uruchomieniu dla systemu operacyjnego gościa, aby mógł on uruchamiać się bez zakłóceń.
Nie zapomnij o wyciekach pamięci
Podczas ustawiania limitów pamięci dynamicznej Hyper-V dla konkretnej maszyny wirtualnej należy pamiętać, że infrastruktura może być narażona na wycieki pamięci. Wycieki pamięci oznaczają stopniową utratę dostępnej pamięci w wyniku nieprawidłowego przydziału pamięci. Zazwyczaj występują one, gdy aplikacja nie wydaje pamięci, która została przydzielona wyłącznie do użytku tymczasowego. Jeśli problem nie zostanie wykryty przed wystąpieniem poważnych szkód, pamięć systemu operacyjnego może się wyczerpać, a aplikacja ostatecznie ulegnie awarii.
Aby złagodzić negatywne skutki tego problemu, zaleca się zainstalowanie narzędzia do monitorowania (np. RAMMap) i przeskanowanie całej infrastruktury w poszukiwaniu wszelkich niespójności oraz wykrycie nietypowych przypadków wykorzystania pamięci przez uruchomione aplikacje. Ponadto takie narzędzia mogą pomóc w określeniu minimalnych i maksymalnych wartości pamięci RAM, które byłyby najbardziej odpowiednie dla tej konkretnej maszyny wirtualnej.
Skonfiguruj maksymalne i minimalne wartości pamięci RAM
Aby zapewnić prawidłowe działanie funkcji pamięci dynamicznej Hyper-V, zaleca się określenie limitów, których system nie może przekroczyć. W ten sposób można skutecznie kontrolować wykorzystanie pamięci w infrastrukturze, co oznacza, że maszyna wirtualna Hyper-V nie będzie zużywać ani zbyt dużo, ani zbyt mało pamięci.
Należy starannie ustawić wartość bufora pamięci
Jednym z najlepszych rozwiązań dotyczących pamięci dynamicznej Hyper-V jest przypisanie odpowiedniej wartości bufora pamięci, która określa, ile dodatkowej pamięci powinno być udostępnione dla wybranej maszyny wirtualnej. Jeśli wartość bufora pamięci jest wysoka, ta dodatkowa ilość pamięci jest zazwyczaj wykorzystywana do buforowania plików w maszynach wirtualnych o dużej skali oraz usprawniania operacji wejścia/wyjścia w systemie.
Jednocześnie wartość bufora pamięci powinna być niska, jeśli działa aplikacja wymagająca dużej ilości pamięci fizycznej. Dzięki zmniejszonej wartości bufora pamięci można mieć pewność, że dostępna pamięć nie zostanie całkowicie zużyta przez jedną maszynę wirtualną.
Ponadto, jeśli maszynie wirtualnej Hyper-V przydzielono już dużą ilość pamięci, jest mało prawdopodobne, że kiedykolwiek będzie ona potrzebowała dodatkowej pamięci. Dlatego bardziej sensowne jest udostępnienie niewykorzystanych zasobów pamięci innym maszynom wirtualnym, które bardziej jej potrzebują.
Aktualizuj hosty Hyper-V w razie potrzeby
Aby zapewnić stabilność i bezpieczeństwo środowiska Hyper-V, upewnij się, że hosty Hyper-V instalują wszystkie aktualizacje i poprawki zabezpieczeń, gdy jest to wymagane. Głównym celem aktualizacji i poprawek zabezpieczeń firmy Microsoft jest rozwiązanie problemów, które zostały zidentyfikowane w systemie. Na przykład w systemie Windows Server 2012 R2 wykryto problem z funkcją Hyper-V Dynamic Memory, który uniemożliwiał maszynom wirtualnym Hyper-V uzyskanie dodatkowej pamięci. Mimo że funkcja była włączona na maszynach wirtualnych, nadal nie działała prawidłowo. W związku z tym firma Microsoft wydała poprawkę, aby usunąć ten problem i zapewnić, że funkcja działa zgodnie z wymaganiami.
Wykrywanie zmian wydajności w ciągu dnia
Obciążenie produkcyjne znacznie wzrasta w godzinach pracy, co ostatecznie wpływa na wydajność Hyper-V, a także na alokację zasobów i wykorzystanie pamięci. Jednym z najlepszych rozwiązań dotyczących funkcji Hyper-V Dynamic Memory jest monitorowanie zmian w wykorzystaniu pamięci w ciągu dnia pracy. Wykrywając, kiedy zazwyczaj występują cykle wysokiego i niskiego wykorzystania pamięci, można dowiedzieć się, jak wykorzystać funkcję Hyper-V Dynamic Memory na swoją korzyść.
Włącz pamięć dynamiczną Hyper-V, gdy jest to faktycznie wymagane
Mimo że pamięć dynamiczna Hyper-V jest niezwykle pomocną funkcją, która poprawia wykorzystanie pamięci fizycznej, w niektórych przypadkach preferowaną opcją jest statyczny przydział pamięci. W związku z tym należy rozważyć, czy w danej maszynie wirtualnej Hyper-V należy włączyć funkcję Dynamic Memory. Na przykład niektóre aplikacje mają wyższą wydajność, jeśli mają do dyspozycji z góry określoną ilość pamięci RAM, z której mogą korzystać bez zakłóceń. Ilość wstępnie przydzielonej pamięci RAM pozostaje taka sama pomimo wahań zapotrzebowania na pamięć.
Dlatego zaleca się wcześniejsze zaplanowanie sposobu rozdzielenia pamięci fizycznej w środowisku Hyper-V, aby zapobiec niedoborom pamięci RAM i uniknąć awarii aplikacji w przyszłości.
Używaj funkcji Hyper-V Dynamic Memory wyłącznie z kompatybilnymi aplikacjami
Przed zainstalowaniem jakiejkolwiek aplikacji na hoście lub w systemie-gościu Hyper-V upewnij się, że aplikacja ta może być używana wraz z funkcją Hyper-V Dynamic Memory. Aby sprawdzić te informacje, zaleca się najpierw zapoznać się z dokumentacją pomocy technicznej produktu, aby poznać jego funkcje i wymagania systemowe. Takie środki ostrożności mogą pomóc w uniknięciu ewentualnych problemów z wykorzystaniem i alokacją pamięci.
Podsumowanie
Po zapoznaniu się z najlepszymi rozwiązaniami dotyczącymi pamięci dynamicznej Hyper-V można zacząć efektywniej i bezpieczniej wykorzystywać pamięć fizyczną. Jednak infrastruktura wirtualna nadal narażona jest na różne zagrożenia, które mogą osłabiać jej wydajność. Aby zapewnić bezpieczeństwo środowiska wirtualnego, najbardziej realnym rozwiązaniem jest wdrożenie rozwiązania do ochrony danych. NAKIVO Backup & Replication to niezawodne, skuteczne i przystępne cenowo rozwiązanie, które zapewnia tworzenie kopii zapasowych maszyn wirtualnych, replikację, tworzenie kopii zapasowych w chmurze, kopie zapasowe, odzyskiwanie lokacji oraz bogaty zestaw funkcji.