Kompleksowy przegląd problemów związanych z wydajnością maszyn wirtualnych VMware
Problemy sprzętowe i programowe mogą czasami powodować spadek wydajności maszyn wirtualnych. Może to negatywnie wpłynąć na wygodę użytkowania i elastyczność środowiska wirtualnego. Zapoznaj się z tym wpisem na blogu, aby dowiedzieć się, jak poprawić wydajność maszyn wirtualnych VMware w przypadku ich spowolnienia. Poznaj najczęstsze przyczyny spadku wydajności maszyn wirtualnych oraz zapoznaj się z możliwymi rozwiązaniami.
Powody, dla których warto poprawić wydajność maszyn wirtualnych
Przyjrzyjmy się głównym powodom, dla których warto przeprowadzić diagnostykę i poprawić wydajność maszyn wirtualnych:
- Wydajność maszyny wirtualnej jest niższa niż w przypadku identycznej maszyny wirtualnej na innym hoście.
- Aplikacje działają wolniej niż powinny. Jednak po przeniesieniu maszyny wirtualnej na inny host wydajność aplikacji wraca do normy.
- Uruchamianie aplikacji zajmuje dużo czasu.
- Uruchomione aplikacje nie odpowiadają.
- Wykorzystanie procesora, pamięci lub dysku wynosi 100%.
Procesor i pamięć
Niewystarczające zasoby sprzętowe to jedna z najczęstszych przyczyn niskiej wydajności maszyn wirtualnych. Jeśli nie zapewnisz maszynie wirtualnej wystarczających zasobów procesora, oprogramowanie w niej działające może działać wolno i z opóźnieniami. Aby to naprawić, ustaw maszynę wirtualną tak, aby korzystała z większej liczby rdzeni procesora lub dodaj więcej procesorów wirtualnych. Rozważ również modernizację sprzętu komputera hosta, jeśli masz stary procesor o małej liczbie rdzeni, małej pamięci podręcznej i niskiej częstotliwości.
Ustawiając ilość pamięci RAM dla maszyny wirtualnej, upewnij się, że ta ilość pamięci RAM jest wystarczająca dla maszyny wirtualnej. Jednocześnie musi być wystarczająca ilość pamięci RAM dla komputera hosta. Jeśli nie zapewnisz wystarczającej ilości pamięci dla maszyny wirtualnej, system operacyjny gościa (OS) intensywnie korzysta z plików wymiany, a ogólna wydajność maszyny wirtualnej jest niska. Jeśli zapewnisz dużą ilość pamięci dla maszyny wirtualnej i nie pozostawisz wystarczającej ilości pamięci dla systemu operacyjnego hosta, wówczas system operacyjny hosta korzysta z plików wymiany. Prowadzi to do pogorszenia wydajności systemu operacyjnego i aplikacji. Co więcej, w tym przypadku pogarsza się również wydajność maszyny wirtualnej. Nie przydzielaj maszynie wirtualnej zbyt dużej ilości pamięci, a jednocześnie zostaw trochę dla hosta. Zawsze zapewnij hostowi wystarczającą ilość pamięci.
Zapoznaj się z wymaganiami systemowymi dla swojego systemu operacyjnego i aplikacji. Rozważmy przykład. Maszyna hosta ma 8 GB pamięci i działa pod kontrolą ESXi 7.0 lub Windows 10 z VMware Workstation. Na tej maszynie hosta działa maszyna wirtualna z systemem Windows Server 2019. Jeśli przydzielisz 4 GB pamięci RAM dla maszyny wirtualnej z systemem Windows Server 2019, dla systemu operacyjnego hosta pozostaje 4 GB pamięci RAM. To wystarczy do prawidłowej pracy zarówno systemu operacyjnego hosta, jak i systemu operacyjnego gościa (bez uruchamiania dodatkowych aplikacji, które zużywają zasoby). Stosunek wynosi 1:2 (4 GB/8 GB), a 1/2-1=-0,5 to aktualna średnia wartość nadmiernego przydziału pamięci . Jeśli przydzielisz 2 GB pamięci RAM dla maszyny wirtualnej z systemem Windows Server 2019, w tym przypadku wydajność maszyny wirtualnej będzie niska. Jeśli przydzielisz 6 GB pamięci RAM maszynie wirtualnej z systemem Windows Server 2019, ilość pamięci dla komputera hosta będzie niewystarczająca, co spowoduje spowolnienie działania zarówno maszyn fizycznych, jak i wirtualnych.
Jeśli na maszynach wirtualnych uruchamiasz wymagające aplikacje, takie jak bazy danych, dostosuj konfigurację maszyn wirtualnych i odpowiednio zwiększ zasoby procesora oraz pamięci.
Nadmierne przydzielenie pamięci to sytuacja, w której łączny przydział zasobów przekracza ich pojemność. Jeśli masz host z 8 GB pamięci RAM i uruchamiasz pięć maszyn wirtualnych skonfigurowanych do korzystania z 2 GB pamięci RAM każda, wszystkie maszyny wirtualne i maszyna hosta mogą wykazywać niską wydajność, ponieważ pamięć jest nadmiernie przydzielona (jeśli wszystkie maszyny wirtualne intensywnie korzystają z pamięci). Jeśli niektóre maszyny wirtualne działają, ale są lekko obciążone, pamięć jest wykorzystywana głównie przez maszyny wirtualne, które są mocno obciążone, ponieważ ESXi poprawia wykorzystanie pamięci. Nadmierne przydzielanie pamięci ma sens w środowiskach testowych.
Sprawdź również funkcję memory ballooning i jej konfigurację, aby odzyskać nieużywaną pamięć z maszyn wirtualnych w celu efektywnego wykorzystania pamięci fizycznej. Czasami ta funkcja może wpływać na wydajność maszyny wirtualnej, gdy maszyna wirtualna musi używać dysku do wymiany.
Przeładowanie procesora . VMware udostępnia techniki racjonalnego wykorzystania zasobów, umożliwiające przydzielenie maszynom wirtualnym większej liczby procesorów wirtualnych niż jest fizycznych rdzeni procesora na hoście. Parametr nadmiernego przydziału procesora to stosunek liczby procesorów wirtualnych przypisanych do maszyn wirtualnych do liczby fizycznych rdzeni procesora na hoście. Jeśli wartość wynosi 3:1 – nie ma powodu do obaw. Jeśli wartość wynosi 5:1, wydajność maszyn wirtualnych spada. Jeśli wartość nadmiernego przydziału procesora wynosi 6:1 lub więcej, maszyny wirtualne działają wolno, co może powodować wiele problemów.
Jak rozwiązać problemy z procesorem i pamięcią?
Rozważ modernizację sprzętu i dodanie większej ilości pamięci RAM do maszyna fizyczna , na którym uruchamiane są maszyny wirtualne. Postaraj się zapewnić wystarczającą ilość pamięci, aby zapobiec korzystaniu z plików wymiany przez systemy operacyjne hosta i gości. Unikaj nadmiernego przydziału pamięci.
Czasami funkcje zarządzania energią procesora mogą powodować niską wydajność maszyn wirtualnych. Spróbuj je wyłączyć.
Sprawdź wolne zasoby procesora i pamięci na hoście.
W systemie ESXi uruchom to polecenie w wiersz poleceń , aby sprawdzić, czy serwer jest przeciążony:
esxtop
Sprawdź parametr średniego obciążenia .
1,0 – oznacza, że procesor jest w pełni wykorzystany
0,5 – oznacza, że procesor jest wykorzystany w połowie (50%)
2,0 – oznacza, że procesor jest dwukrotnie przeciążony i należy podjąć odpowiednie działania
Naciśnij te klawisze, aby zmienić widok: c – wskaźniki Procesora (wyświetlane domyślnie), m – pamięć, n – sieć, d – dysk. Naciśnij spację, aby zaktualizować wyświetlane wartości (wartości są aktualizowane automatycznie co 5 sekund). Naciśnij h , aby wyświetlić pomoc, oraz q , aby zakończyć.
Sprawdź parametr MEM overcommit avg , aby sprawdzić wykorzystanie pamięci w ESXi. Wartość MEM overcommit avg jest następująca: stosunek żądanej pamięci do dostępnej pamięci minus 1. Zalecana wartość tego parametru to 0 lub mniej.
Jeśli do uruchamiania maszyn wirtualnych używasz stacji roboczej VMware zainstalowanej w systemie Linux lub Windows, skorzystaj ze standardowych narzędzi do monitorowania systemu dostępnych w Twoim systemie operacyjnym.
Sprawdź wykorzystanie procesora i pamięci w systemie operacyjnym gościa. Niektóre aplikacje mogą nie działać poprawnie i zużywać wszystkie zasoby procesora (rdzeni procesora). Sprawdź uruchomione procesy i znajdź ten, który obciąża procesor. Sprawdź temperaturę fizycznych procesorów na hoście, ponieważ zbyt wysoka temperatura (ponad 80 °C) powoduje problemy z wydajnością i stanowi zagrożenie dla procesora (procesor może ulec uszkodzeniu).
Zmodernizuj sprzęt – zainstaluj w hoście wydajniejszy Procesor lub więcej procesorów. Sprawdź konfigurację maszyn wirtualnych. Jeśli liczba wirtualnych procesorów dla maszyn wirtualnych jest większa niż to konieczne, zmniejsz liczbę wirtualnych procesorów dla maszyn wirtualnych, aby zwolnić zasoby dla hosta.
W VMware vSphere możesz użyć klastra DRS (System planowania zasobów rozproszonych) do migracji maszyn wirtualnych z przeciążonego hosta ESXi na hosta ESXi, który ma wolne zasoby sprzętowe.
Problemy z dyskami
Niska wydajność systemu magazynowego powoduje niską wydajność maszyn wirtualnych, które przechowują dyski wirtualne w tym systemie. Opóźnienia w magazynie mają kluczowe znaczenie dla wydajności maszyn wirtualnych. Należy spróbować używać dysków SSD (Solid State Drive) do przechowywania maszyn wirtualnych. Jeśli nie można używać dysków SSD, należy używać dysków HDD (Hard Disk Drive) o prędkości obrotowej 7200 obr./min lub 10000 obr./min. Dyski twarde o prędkości obrotowej 5400 obr./min zapewniają wyjątkowo niską wydajność. Zaleca się stosowanie dysków z interfejsem SAS.
Jeśli korzystasz z stacji roboczej VMware Workstation, możesz przechowywać maszyny wirtualne na zewnętrznych dyskach SATA (eSATA) lub USB 3.0, uwzględniając powyższe zalecenia. Nie odłączaj dysku zewnętrznego przed wyłączeniem maszyny wirtualnej.
W środowiskach produkcyjnych używaj dysków typu thick, których rozmiar nie może być zwiększany, lub dysków wstępnie przydzielonych. Dyski z zerowaniem typu eager z dużym zapasem są szybsze podczas pierwszych operacji zapisu.
Jeśli używasz dysku HDD do przechowywania maszyn wirtualnych, przeprowadź defragmentację tego fizycznego dysku twardego lub macierzy oraz defragmentację dysku wirtualnego w ustawieniach maszyny wirtualnej. Używaj partycji, aby zmniejszyć fragmentację dysku. Zainstaluj system operacyjny na jednej partycji, a pliki używane przez aplikacje (na przykład bazę danych) przechowuj na innej partycji.
Sprawdź, czy oprogramowanie układowe karty HBA (Host Bus Adapter) jest aktualne. Zaktualizuj oprogramowanie układowe karty HBA na serwerze.
Sprawdź stan dysku. Przeprowadź diagnostykę dysku i systemu plików. Jeśli dysk jest uszkodzony, natychmiast go wymień.
Sprawdź kable interfejsów (SAS, SATA).
Szyfrowanie dysku obniża wydajność z powodu obciążenia. Przenieś pliki maszyny wirtualnej do niezaszyfrowanego magazynu, jeśli szyfrowanie nie jest krytyczne dla maszyny wirtualnej, lub wyłącz szyfrowanie dysku.
Używaj niezależnych (sprzętowych) kontrolerów RAID, które zapewniają wyższą wydajność i niezawodność.
Upewnij się, że na dysku wewnątrz maszyny wirtualnej jest wolne miejsce. Niewystarczająca ilość miejsca na dysku powoduje spadek wydajności, ponieważ system operacyjny i aplikacje nie mogą zapisywać plików tymczasowych.
Możesz przenieść maszynę wirtualną na inny dysk lub macierz dyskową, która nie jest przeciążona. W VMware vSphere rozważ użycie DRS i Storage DRS. Zmniejsz liczbę uruchomionych maszyn wirtualnych na tym samym LUN lub magazynie danych.
Migawki
Migawki dysków wirtualnych obniżają wydajność dysku wirtualnego. Każda migawka generuje dodatkowy plik delta VMDK dysku wirtualnego. Wykorzystywany jest mechanizm kopiowania przy zapisie. Każdy plik delta VMDK zawiera różnice danych (dziennik zmian) w porównaniu z nadrzędnym plikiem VMDK, a maszyna wirtualna odczytuje wszystkie te dane podczas interakcji z dyskiem maszyny wirtualnej. W rezultacie dane są odczytywane z wielu plików dysków wirtualnych na tym samym dysku fizycznym, co obniża wydajność maszyny wirtualnej. Z tego samego powodu nie należy używać podzielonych plików VMDK dla maszyn wirtualnych w VMware Workstation (opcja ta została stworzona dla starych systemów plików, które nie obsługują plików większych niż 4 GB). Obciążenie dysku rośnie wraz ze wzrostem liczby migawek. Migawki są zazwyczaj używane do celów tymczasowych (na przykład podczas kopiowania danych w trakcie zadania wykonania kopii zapasowej lub podczas instalacji lub testowania aplikacji wewnątrz maszyny wirtualnej). Usuń lub zatwierdź migawki jak najszybciej.
W VMware Workstation należy wyłączyć maszynę wirtualną, zamknąć VMware Workstation i uruchomić polecenie, w którym określisz ścieżkę do istniejącego głównego pliku VMDK oraz ścieżkę do nowego pliku dysku wirtualnego:
"C:Program Files (x86)usernameVMware Workstationvmware-vdiskmanager.exe" -r
"D:VMsVM-foldervm-name.vmdk" -t 0 "D:VMsVM-folderNewDisk.vmdk"
Następnie skonfiguruj ponownie maszynę wirtualną, aby korzystała z nowego dysku wirtualnego, lub utwórz nową maszynę wirtualną i ustaw ją tak, aby korzystała z nowego skonsolidowanego dysku wirtualnego.
W systemie ESXi uruchom to polecenie, aby usunąć migawki:
vmware-cmd path_to_vmx_file removesnapshots
lub
vim-cmd vmsvc/snapshot.removeall VMID
Możesz wyświetlić identyfikator VMID za pomocą tego polecenia:
vim-cmd vmsvc/getallvms
Połącz podzielone pliki VMDK, jeśli są używane. Wykonaj tę czynność na komputerze z systemem Windows, na którym zainstalowano program VMware Workstation, za pomocą polecenia:
"C:Program Files (x86)VMwareVMware Workstationvmware-vdiskmanager.exe" -r splitdisk.vmdk -t 0 mergeddisk.vmdk
Przechowuj dane wrażliwe pod względem wydajności na szybszym dysku.
VMware Tools
Upewnij się, że w systemie operacyjnym gościa zainstalowano VMware Tools. Narzędzia VMware to zestaw sterowników i narzędzi służących do poprawy wydajności maszyny wirtualnej oraz komfortu użytkowania. Po zainstalowaniu VMware Tools wzrasta wydajność grafiki. Działanie myszy jest zsynchronizowane i przebiega bez opóźnień. Dzięki VMware Tools można korzystać z maszyny wirtualnej w trybie pełnoekranowym z większą wydajnością. Sprawdź, czy zainstalowano VMware Tools.
W systemie Windows kliknij ikonę VMware Tools na pasku zadań obok zegara lub przejdź do C:Program FilesVMwareVMware Tools (jest to domyślny katalog) i uruchom polecenie:
VMwareToolboxCmd.exe -v
W systemie Linux uruchom polecenie w konsoli:
vmware-toolbox-cmd -v
Sprawdź wersję VMware Tools na maszynach wirtualnych gości, przeglądając logi maszyn wirtualnych w wierszu poleceń ESXi:
grep toolbox /vmfs/volumes/datastore/vm_name/vmware.log
lub
grep build- /vmfs/volumes/datastore/vm_name/vmware.log
W VMware vSphere Client sprawdź, czy na systemie operacyjnym gościa działającym na maszynie wirtualnej zainstalowano VMware Tools. Informacje o VMware Tools są wyświetlane w zakładce Summary dla maszyny wirtualnej (status i wersja).
Problemy z siecią
Jeśli host ESXi jest podłączony do pamięci masowej, takiej jak SAN (Storage Area Network) lub NAS (Network Attached Storage), upewnij się, że prędkość sieci jest wystarczająca, a sieć nie jest przeciążona.
Aby uzyskać wysoką wydajność, w vSphere należy używać oddzielnej sieci do zarządzania ESXi sieć, Sieć vMotionoraz sieci pamięci masowej.
Skonfiguruj łączenie kart sieciowych (agregację łączy) na hostach ESXi korzystających z przełączniki wirtualne.
Jeśli istniejąca przepustowość sieci nie jest wystarczająca do spełnienia wymagań, rozważ modernizację sieci. Na przykład zainstaluj karty sieciowe 5 Gb/s lub 10 Gb/s, przełączniki i routery zamiast dotychczasowego sprzętu 1 Gb/s.
Oprogramowanie antywirusowe
Upewnij się, że oprogramowanie antywirusowe na hoście nie skanuje plików dysków wirtualnych, ponieważ skanowanie tych plików może obniżyć wydajność maszyn wirtualnych. Możesz wykluczyć pliki VMDK w katalogach maszyn wirtualnych ze skanowania antywirusowego.
Sprawdź stan systemu operacyjnego działającego na hoście i systemie gościa. Upewnij się, że nie ma wirusów ani innego złośliwego oprogramowania lub oprogramowanie wymuszające okup.
Rozważ użycie specjalnych rozwiązań antywirusowych, które współpracują z VMware vShield na hostach ESXi zamiast instalowania oprogramowania antywirusowego na każdym systemie gościa maszyn wirtualnych. Takie podejście pozwala osiągnąć lepszą wydajność i jest racjonalne w przypadku dużych środowisk wirtualnych. Jeśli korzystasz z vShield, skonfiguruj to oprogramowanie prawidłowo, ponieważ nieprawidłowa konfiguracja może obniżyć wydajność maszyn wirtualnych.
Problemy związane z Hyper-V
Jeśli korzystasz z programu VMware Workstation w wersji 15.5 lub nowszej, który obsługuje uruchamianie maszyn wirtualnych VMware przy zainstalowanej roli funkcja Hyper-V na hoście z systemem Windows, wydajność maszyn wirtualnych VMware może być niższa. Po zainstalowaniu roli Hyper-V, Hyper-V korzysta bezpośrednio z funkcji wirtualizacji procesora, takich jak Intel VT-x lub AMD-V, które nie są dostępne dla programu VMware Workstation z monitorem maszyn wirtualnych (VMM), który musi działać w trybie uprzywilejowanym. VMM programu VMware Workstation działa w trybie użytkownika lub trybie ULM (zamiast trybu uprzywilejowanego) ze względu na kompatybilność, ponieważ VMM nie ma dostępu do funkcji wirtualizacji sprzętowej Procesora, gdy są one używane przez Hyper-V. W tym przypadku VMM korzysta z interfejsów API WHP firmy Microsoft, które działają jako dodatkowa warstwa między VMM a Procesorem i obniżają wydajność maszyn wirtualnych VMware.
Odinstaluj Hyper-V i powiązane funkcje, takie jak Virtualization Based Security, z hosta z systemem Windows. Następnie VMM programu VMware Workstation będzie działać w trybie uprzywilejowanym i bezpośrednio korzystać z funkcji wirtualizacji Procesora, zapewniając wysoką wydajność. To rozwiązanie pomoże rozwiązać problem niskiej wydajności maszyn wirtualnych VMware.
Monitorowanie wydajności maszyn wirtualnych
Monitorowanie wydajności maszyn wirtualnych jest powszechnie stosowaną metodą wykrywania przeciążeń i powiązanych problemów z wydajnością. Monitorowanie wydajności maszyn wirtualnych pomaga zidentyfikować przyczynę. Pamiętaj, aby monitorować wydajność maszyn wirtualnych na poziomie hosta, a nie wewnątrz systemu operacyjnego gościa. System operacyjny gościa nie rozpoznaje funkcji wirtualizacji, takich jak dynamiczna alokacja zasobów, i może wyświetlać nieprawidłowe dane. VMware udostępnia liczniki na poziomie hosta. Liczniki te dostarczają prawidłowych informacji i są wykorzystywane do monitorowania wydajności maszyn wirtualnych. Wiedząc, w jaki sposób informacje o wydajności są gromadzone wewnątrz maszyn wirtualnych, firma VMware opracowała biblioteki liczników specyficzne dla maszyn wirtualnych, które pozwalają uzyskać prawidłowe informacje o wydajności maszyn wirtualnych przy użyciu narzędzia Perfmon w systemach gościnnych Windows. Aby monitorować wydajność maszyn wirtualnych, w systemie operacyjnym gościa muszą być zainstalowane narzędzia VMware Tools.
Aby sprawdzić zużycie zasobów sprzętowych w kliencie VMware vSphere, wybierz maszynę wirtualną, otwórz kartę Monitor, a następnie wybierz opcję Performance > Overview or Performance > Advanced , aby wyświetlić wykresy i inne informacje. Na stronie Overview można wyświetlić wykorzystanie Procesora, pamięci, sieci i magazynu (wolne miejsce, miejsce zajęte oraz wydajność operacji wejścia/wyjścia) w czasie rzeczywistym oraz dla poprzedniego dnia, tygodnia, miesiąca, roku lub niestandardowego przedziału czasowego. Opcje te można wybrać w dwóch menu rozwijanych na tej stronie ( Period oraz View ). 
Kliknij Utilization w zakładce Monitor , aby wyświetlić dodatkowe informacje na temat wykorzystania Procesora maszyny wirtualnej, pamięci maszyny wirtualnej oraz pamięci gościa.
Podobnie możesz wybrać host ESXi lub klaster w kliencie vSphere i przeprowadzać monitorowanie wykorzystanych oraz dostępnych zasobów w czasie rzeczywistym oraz dla wybranego okresu.
Podsumowanie
W tym wpisie na blogu omówiono główne kwestie, na które należy zwrócić uwagę w kontekście problemów z wydajnością maszyn wirtualnych, a także zalecenia pomagające poprawić wydajność maszyn wirtualnych. Powinieneś dysponować sprzętem zapewniającym wystarczającą wydajność, unikać nadmiernego przydzielania pamięci oraz prawidłowo skonfigurować oprogramowanie. Wykorzystaj monitorowanie wydajności maszyn wirtualnych, aby wykryć przyczyny ich spowolnienia.
Uszkodzenie dysku jest najpoważniejszym problemem powodującym spowolnienie maszyn wirtualnych, ponieważ oprócz słabej wydajności maszyn wirtualnych może również dojść do utraty danych. Aby uniknąć utraty danych, regularnie wykonuj kopie zapasowe danych VMware. Wykorzystaj NAKIVO Backup & Replication do Tworzenie kopii zapasowej VMware — uniwersalne rozwiązanie do ochrony danych, które obsługuje VMware vSphere 7.0 i zapewnia wiele przydatnych funkcji zwiększających szybkość i niezawodność wykonywania kopii zapasowych.


