Udostępnij przez


Hyper-V Zarządzanie zasobami CPU hosta

Hyper-V Narzędzia kontroli zasobów CPU hosta wprowadzone w systemie Windows Server 2016 lub nowszym umożliwiają administratorom Hyper-V lepsze zarządzanie i przydzielanie zasobów CPU serwera hosta między "root" lub partycją zarządzania a maszynami wirtualnymi gości. Za pomocą tych kontrolek administratorzy mogą przypisać podzestaw procesorów systemu głównego do partycji root. Może to rozdzielić pracę wykonaną na hoście Hyper-V z obciążeń uruchomionych na maszynach wirtualnych gościa, uruchamiając je w oddzielnych podzestawach procesorów systemowych.

Aby uzyskać szczegółowe informacje na temat sprzętu dla hostów Hyper-V, zobacz Wymagania systemowe systemu Windows 10 Hyper-V.

Background

Przed ustawieniem ustawień zasobów CPU hosta Hyper-V warto najpierw zapoznać się z podstawami architektury Hyper-V. Ogólne podsumowanie można znaleźć w sekcji ArchitekturaHyper-V . Są to ważne pojęcia dotyczące tego artykułu:

  • Hyper-V tworzy partycje maszyn wirtualnych i zarządza nimi, w których zasoby obliczeniowe są przydzielane i współużytkowane, pod kontrolą funkcji hypervisor. Partycje zapewniają silne granice izolacji między wszystkimi maszynami wirtualnymi gościa i między maszynami wirtualnymi gościa a partycją główną.

  • Partycja główna jest samą partycją maszyny wirtualnej, chociaż ma unikatowe właściwości i znacznie większe uprawnienia niż maszyny wirtualne gościa. Partycja główna zapewnia usługi zarządzania, które kontrolują wszystkie maszyny wirtualne gościa, zapewniają obsługę urządzeń wirtualnych dla gości i zarządzają wszystkimi we/wy urządzeniami dla maszyn wirtualnych gościa. Firma Microsoft zdecydowanie zaleca, aby nie uruchamiać żadnych obciążeń aplikacji w partycji hosta.

  • Każdy procesor wirtualny (VP) partycji głównej jest przypisywany 1:1 do podstawowego procesora logicznego (LP). VP hosta zawsze działa na tej samej podstawowej LP — nie ma migracji VP partycji głównej.

  • Domyślnie LPs, na których działają hostujące VPs, mogą również uruchamiać gościnne VPs.

  • VP gościa może zostać zaplanowany przez hiperwizora do działania na dowolnym dostępnym procesorze logicznym. Podczas gdy harmonogram hypervisora uwzględnia lokalność pamięci tymczasowej, topologię NUMA i wiele innych czynników podczas planowania gościnnego VP, ostatecznie VP może być zaplanowany na dowolnym hoście LP.

Minimalna konfiguracja Root, lub "Minroot"

Wczesne wersje Hyper-V miały maksymalny limit architektury wynoszący 64 VPs na partycję. Dotyczy to zarówno partycji głównych, jak i partycji gościa. Ponieważ systemy z ponad 64 procesorami logicznymi pojawiły się na serwerach wysokiej klasy, Hyper-V również zaktualizowało limit skalowania hostów, aby obsługiwać te większe systemy, w pewnym momencie umożliwiając obsługę hostów z maksymalnie 320 procesorami logicznymi. Jednak pokonanie limitu 64 VP na partycję w tamtym czasie wiązało się z wieloma wyzwaniami i prowadziło do komplikacji, które sprawiły, że obsługa więcej niż 64 VP na partycję była problematyczna. Aby rozwiązać ten problem, Hyper-V ograniczyło liczbę wirtualnych procesorów przydzielonych partycji głównej do 64, nawet jeśli maszyna bazowa ma o wiele więcej dostępnych procesorów logicznych. Hiperwizor nadal wykorzystywałby wszystkie dostępne procesory logiczne do uruchamiania maszyn wirtualnych gości, ale sztucznie ograniczał partycję główną do 64. Ta konfiguracja stała się nazywana konfiguracją "minimum root" lub "minroot". Testy wydajnościowe potwierdziły, że nawet w systemach na dużą skalę z ponad 64 LP root nie potrzebował więcej niż 64 głównych VP, aby zapewnić wystarczającą obsługę dużej liczby maszyn wirtualnych gościa i głównych VP — w rzeczywistości znacznie mniej niż 64 główne VP były często odpowiednie, w zależności od liczby i rozmiaru maszyn wirtualnych gościa, specyficzne obciążenia robocze, które są uruchamiane itp.

Koncepcja "minroot" jest nadal używana dzisiaj. W rzeczywistości, nawet jeśli system Windows Server 2016 Hyper-V zwiększył maksymalny limit wsparcia architektury dla procesorów logicznych do 512 PL, partycja główna będzie nadal ograniczona do maksymalnie 320 PL.

Używanie Minroot do ograniczania i izolowania zasobów obliczeniowych hosta

Przy wysokim domyślnym progu 320 LPs w systemie Windows Server 2016 Hyper-V konfiguracja minroot będzie używana tylko w największych systemach serwerów. Jednak tę funkcję można skonfigurować do znacznie niższego progu przez administratora hosta Hyper-V, a tym samym wykorzystać w celu znacznego ograniczenia ilości zasobów procesora CPU hosta dostępnych dla partycji głównej. Określoną liczbę głównych LPs do wykorzystania należy oczywiście starannie wybrać, aby zapewnić obsługę maksymalnych wymagań maszyn wirtualnych i obciążeń przypisanych hostowi. Jednak rozsądne wartości dla liczby hostów LP można określić poprzez staranną ocenę i monitorowanie obciążeń produkcyjnych oraz weryfikować je w środowiskach nieprodukcyjnych przed szerokim wdrożeniem.

Włączanie i konfigurowanie minroot

Konfiguracja minroot jest kontrolowana za pośrednictwem wpisów BCD hiperwizora. Aby włączyć minroot, w wierszu polecenia z uprawnieniami administratora:

     bcdedit /set hypervisorrootproc n

Gdzie n jest liczbą bazowych procesorów wirtualnych.

System musi zostać uruchomiony ponownie, a nowa liczba procesorów głównych będzie utrzymywana przez okres istnienia rozruchu systemu operacyjnego. Nie można dynamicznie zmieniać konfiguracji minroot w czasie wykonywania.

Jeśli istnieje wiele węzłów NUMA, każdy węzeł otrzyma n/NumaNodeCount procesorów.

Należy pamiętać, że w przypadku wielu węzłów NUMA trzeba upewnić się, że topologia maszyny wirtualnej pozwala na wystarczającą ilość wolnych LP (tj. LP bez root VPs) na każdym węźle NUMA, aby obsłużyć odpowiednie VPs węzła NUMA maszyny wirtualnej.

Weryfikowanie konfiguracji minroot

Konfigurację minroot hosta można sprawdzić przy użyciu Menedżera zadań, jak pokazano poniżej.

Konfiguracja minroot hosta wyświetlana w Menedżerze zadań

Gdy element Minroot jest aktywny, Menedżer zadań wyświetli liczbę procesorów logicznych przydzielonych obecnie do hosta, oprócz całkowitej liczby procesorów logicznych w systemie.