Porady i narzędzia do monitorowania platformy Microsoft Hyper-V
Do głównych zalet wirtualizacji sprzętowej należą izolacja logiczna oraz racjonalne wykorzystanie zasobów. Podczas korzystania z platformy Microsoft Hyper-V ważne jest monitorowanie wykorzystania zasobów sprzętowych przez maszyny wirtualne oraz fizyczne serwery Hyper-V. Niedostateczna lub nadmierna ilość zasobów przydzielonych maszynie wirtualnej może prowadzić do spadku jej wydajności lub wpływać na wydajność innych maszyn wirtualnych oraz całego środowiska. W tym wpisie na blogu omówiono wskazówki dotyczące monitorowania platformy Hyper-V oraz natywne narzędzia do monitorowania Hyper-V, które są dostępne bezpłatnie.
Dlaczego warto monitorować wydajność Hyper-V?
Monitorowanie zasobów Hyper-V pozwala wykrywać wąskie gardła i zarządzać zasobami w celu optymalizacji wydajności. Dzięki monitorowaniu wydajności Hyper-V uzyskasz dostęp do statystyk dotyczących zasobów, które pomogą Ci podejmować decyzje w takich kwestiach, jak: przydzielenie dodatkowych zasobów na bieżącym hoście Hyper-V, zmiana konfiguracji oprogramowania na maszynie wirtualnej lub migracja maszyny wirtualnej na inny host Hyper-V. Należy pamiętać, że protokół SNMP (Simple Network Management Protocol) został wycofany z monitorowania hostów Hyper-V.
Jeśli wykryjesz niską wydajność maszyny wirtualnej, skorzystaj z poniższych pytań, aby zawęzić zakres możliwych przyczyn:
- Czy maszynie wirtualnej działającej na hoście Hyper-V przydzielono wystarczającą ilość zasobów?
- Czy na hoście Hyper-V jest wystarczająca ilość wolnych zasobów sprzętowych?
- Czy problemy z wydajnością występują na jednej maszynie wirtualnej czy na wielu?
Na szczęście Hyper-V oferuje kilka bezpłatnych natywnych narzędzi do monitorowania wydajności i zużycia zasobów, dostępnych bezpośrednio z interfejsu graficznego Menedżera Hyper-V. Jeśli chcesz zautomatyzować migrację maszyn wirtualnych między hostami Hyper-V w ramach równoważenie obciążenia, w klastrze dostępne są podstawowe funkcje umożliwiające to zadanie. Należy pamiętać, że w przypadku korzystania z klastra Hyper-V do automatycznej migracji maszyn wirtualnych w celu optymalizacji wykorzystania zasobów serwerów Hyper-V i równoważenia obciążenia potrzebne jest SCVMM (System Center Virtual Machine Manager), które jest rozwiązaniem płatnym. Monitorowanie replikacji maszyny wirtualnej Hyper-V można również przeprowadzać w SCVMM.
Nie używaj Menedżera zadań systemu Windows do monitorowania zasobów wewnątrz maszyn wirtualnych
Otwarcie Task Manager to szybka i łatwa metoda przeglądania wydajności i wykorzystania zasobów na komputerach fizycznych z systemem Windows. Nie należy jednak używać Menedżera zadań systemu Windows do monitorowania wydajności wewnątrz maszyny wirtualnej. Menedżer zadań systemu Windows nie pokazuje rzeczywistego wykorzystania procesora i pamięci przez maszynę wirtualną. Wynika to z faktu, że Task Manager nie identyfikuje maszyn jako wirtualnych i nie jest w stanie określić, w jaki sposób zasoby są przydzielane do maszyny wirtualnej. Należy używać Task Manager do monitorowania uruchomionych procesów, usług i aplikacji, ale nie do monitorowania wydajności wewnątrz maszyn wirtualnych.
Korzystanie z Monitora wydajności na hoście Hyper-V
Należy używać Performance Monitor (perfmon) na hoście Hyper-V oraz odpowiednich liczników do monitorowania wykorzystania procesora, pamięci, interfejsu, dysku fizycznego i innego sprzętu. Narzędzie perfmon jest szeroko stosowane do rozwiązywania problemów związanych z wydajnością w systemach Windows.
Uruchom perfmon w oknie dialogowym run lub znajdź Performance Monitor w oknie Computer Management , dodaj potrzebne liczniki i wykonuj monitorowanie statystyk w graficznym interfejsie użytkownika (GUI). Zebrane informacje można wyświetlać w postaci wykresów, diagramów i schematów.
Przydatne może być również otwarcie strony Resource Monitor na hoście Hyper-V (resmon.exe).
Korzystanie z liczników w Hyper-V
Monitor wydajności może dostarczać nieprawidłowych informacji dotyczących maszyn wirtualnych działających na hoście Hyper-V, ponieważ standardowe (zwykłe) liczniki nie są przystosowane do monitorowania maszyn wirtualnych. Wyobraźmy sobie, że fizyczny komputer z Hyper-V posiada procesor z czterema rdzeniami, a na hoście Hyper-V znajdują się dwie maszyny wirtualne Hyper-V. Dla pierwszej maszyny wirtualnej przydzielono cztery procesory wirtualne. Na pierwszej maszynie wirtualnej działa aplikacja, która obciąża cztery procesory wirtualne w 100% i zużywa wszystkie zasoby procesora na fizycznym hoście Hyper-V.
W tym samym czasie uruchamiasz drugą maszynę wirtualną na tym hoście Hyper-V, która ma taką samą konfigurację urządzeń wirtualnych i uruchamiasz tę samą aplikację. W obu maszynach wirtualnych widoczne są informacje, że procesory każdej maszyny wirtualnej są obciążone w 100%. Jednak aplikacje na każdej maszynie wirtualnej działają z prędkością 50% w porównaniu z pierwszym przypadkiem, gdy działała tylko jedna maszyna wirtualna (jeśli otworzysz Task Manager lub Performance Monitor w maszynach wirtualnych). Informacje o pamięci są wyświetlane podobnie, jeśli włączona jest pamięć dynamiczna.
Aby monitorować zasoby na hoście Hyper-V, należy używać liczników specyficznych dla Hyper-V w Monitorze wydajności na hoście Hyper-V. Liczniki Hyper-V wyświetlają najdokładniejsze informacje dotyczące monitorowania wydajności Hyper-V.
Wydajność procesora
Użyj tego licznika do monitorowania wydajności procesora fizycznego na hoście Hyper-V:
Hyper-V Hypervisor Logical Processor% Total Run Time
Licznik do monitorowania wydajności procesorów wirtualnych maszyny wirtualnej Hyper-V:
Hyper-V Hypervisor Virtual Processor% Guest Run Time
- Optymalna wydajność występuje, gdy licznik wyświetla wartość 75% lub mniej dla uruchomionej maszyny wirtualnej Hyper-V.
- Wartość w przedziale 75–85% stanowi ostrzeżenie.
- W przypadku wartości wyższej niż 85% zaleca się zbadanie przyczyny tak wysokiego wykorzystania Procesora.
Licznik do monitorowania wykorzystania głównego Procesora wirtualnego:
Hyper-V Hypervisor Root Virtual Processor(*)% Total Run Time
Wykorzystanie pamięci
Istnieje wiele liczników do monitorowania Hyper-V i sprawdzania, ile pamięci RAM jest używane.
Licznik MemoryAvailable Mbytes na hoście Hyper-V służy do monitorowania wykorzystania pamięci.
- Ponad 10% wolnej pamięci RAM – stan prawidłowy
- Poniżej 10% wolnej pamięci RAM – ostrzeżenie
- Poniżej 100 MB wolnej pamięci RAM – stan krytyczny
Użyj licznika MemoryCommitted Bytes , aby sprawdzić, ile pamięci używają maszyny wirtualne, i określić, ile pamięci należy przydzielić każdej z nich. Użyj licznika Hyper-V Dynamic Memory BalancerAverage Pressure do monitorowania pamięci dynamicznej.
- Poniżej 80% – Stan prawidłowy
- Powyżej 80% – Ostrzeżenie
- 100% – Stan krytyczny
Opóźnienie dysku
Użyj liczników LogicalDisk(*)Average Disk SecRead or Write do monitorowania opóźnienia dysku, które ma istotny wpływ na ogólną wydajność maszyn wirtualnych działających w środowisku Hyper-V.
- < 10 ms (0,010 s) – OK
- > 15 ms (0,015 s) – Ostrzeżenie
- > 25 ms (0,025 s) – Krytyczne
Sieć
Użyj licznika Network Interface (*)OutputQueue Length do monitorowania wykorzystania sieci, czyli liczby pakietów sieciowych w kolejce pakietów wychodzących.
- Średnio mniej niż 1 – stan prawidłowy
- Średnio powyżej 1 – ostrzeżenie
- Średnio powyżej 2 – stan krytyczny
Rozważ również użycie tych liczników:
Network Interface (network adapter name)Bytes/sec
Hyper-V Virtual Network Adapter (virtual machine name )Bytes/sec
Zapewnij wystarczającą ilość pamięci dla maszyn wirtualnych
Każda maszyna wymaga wystarczającej ilości pamięci do prawidłowej pracy, w przeciwnym razie wydajność ulega pogorszeniu, pliki wymiany są intensywnie wykorzystywane (jeśli są skonfigurowane), a dysk jest przeciążony. Ponadto pliki wymiany działają wolniej niż pamięć RAM. Jeśli system operacyjny i aplikacja zużywają około 12 GB pamięci fizycznej, zainstaluj w komputerze 16 GB pamięci RAM. Takie samo podejście zastosuj przy przydzielaniu pamięci dla maszyn wirtualnych. Na przykład, jeśli oprogramowanie działające na maszynie wirtualnej zużywa 6 GB pamięci RAM, zapewnij dla niej 8 GB pamięci RAM. Zapewnij co najmniej 20% dodatkowej pamięci, aby maszyna działała prawidłowo. Zaleca się zapewnienie dodatkowej pamięci jako bufora.
Użyj Podglądu zdarzeń do monitorowania dzienników
Użyj Event Viewer do monitorowania dzienników na hostach Hyper-V i maszynach wirtualnych gości, co jest przydatne podczas rozwiązywania problemów. Przeglądanie i analizowanie dzienników, takich jak zdarzenia systemowe i zdarzenia aplikacji, może pomóc w zidentyfikowaniu problemów i znalezieniu właściwego rozwiązania w celu ich usunięcia. Event Viewer wyświetla dzienniki błędów związane z aplikacjami i działa na poziomie systemu operacyjnego. Aby otworzyć Event Viewer, należy najpierw otworzyć Computer Management .
Logi Hyper-V znajdują się w:
Event viewer > Applications and services logs > Microsoft > Windows
Oto kategorie logów Hyper-V w Podglądzie zdarzeń:
- Hyper-V-Compute
- Hyper-V-Config
- Hyper-V-Guest-Drivers
- Hyper-V Hypervisor
- Hyper-V-StorageVSP
- Hyper-V-VID
- Hyper-V-VMMS
- Hyper-V-VmSwitch
- Hyper-V-Worker
W Computer Management można zarządzać usługami systemu Windows. Zaleca się monitorowanie następujących usług Hyper-V:
- Hyper-V Image Management Service (vhdsvc)
- Hyper-V Virtual Machine Management (vmms)
- Hyper-V Networking Management Service (nvspwmi)
Monitorowanie zasobów w PowerShell
W PowerShell można monitorować zasoby hostów Hyper-V i maszyn wirtualnych. Jest to szczególnie przydatne w przypadku systemów operacyjnych Windows bez interfejsu graficznego. Do monitorowania wydajności w PowerShell należy używać specjalnych poleceń cmdlet. Wyświetlanie dzienników operacyjnych Hyper-V za pomocą dziennika zdarzeń systemu Windows:
Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Hypervisor-Operational | select -First 1 | Format-List *
To polecenie korzysta z obiektów liczników wydajności na hoście Hyper-V lub w maszynie wirtualnej gościa i umożliwia pobieranie danych bezpośrednio ze zdalnych lub lokalnych komputerów przy użyciu funkcji monitorowania systemu Windows:
Get-Counter
Pobieranie zestawu liczników i sortowanie wyświetlanych wyników:
Get-Counter -ListSet * |
Sort-Object -Property CounterSetName |
Format-Table CounterSetName, CounterSetType -AutoSize
Monitorowanie wydajności dysków działających na wielu komputerach:
$DiskReads = "LogicalDisk(C:)Disk Reads/sec"
$DiskReads | Get-Counter -ComputerName Server01, Server02 -MaxSamples 10
W programie PowerShell można tworzyć niestandardowe skrypty do monitorowania wydajności Hyper-V.
Wniosek
Monitorowanie Hyper-V pomaga ustalić, czy problemy z wydajnością maszyn wirtualnych są związane z hostami Hyper-V, czy z maszynami wirtualnymi gości. Monitorowanie wydajności Hyper-V pozwala zoptymalizować wykorzystanie zasobów sprzętowych na hoście Hyper-V. Niektóre narzędzia, takie jak Menedżer zadań systemu Windows, używane do monitorowania hostów fizycznych, nie nadają się do monitorowania wydajności maszyn wirtualnych działających w środowisku Hyper-V. Monitor wydajności zawiera liczniki specyficzne dla Hyper-V, dostosowane do monitorowania zasobów hostów Hyper-V i maszyn wirtualnych. Można korzystać z Menedżera Hyper-V, Przeglądarki zdarzeń i Monitora zasobów, jeśli używa się interfejsu graficznego, oraz ze specjalnych poleceń w PowerShell, jeśli korzysta się z interfejsu wiersza poleceń.
Jeśli funkcja natywnych narzędzi nie jest dla Ciebie wystarczająca, spróbuj użyć innego oprogramowania do monitorowania Hyper-V. Monitorowanie może pomóc w optymalizacji wydajności Hyper-V, ale nie chroni przed utratą danych w przypadku awarii. Rozważ zakup niezawodnego oprogramowania do tworzenia kopii zapasowych Hyper-V, aby chronić swoje dane. Pobierz bezpłatną edycję NAKIVO, aby uzyskać obsługę wielu platform, odzyskiwanie danych po ataku oprogramowania wymuszającego okup i wiele więcej.




