Niedawno kupiliśmy serwer, na którym działa Hyper-V 2008 R2 bez systemu operacyjnego. Serwer ma dwa czterordzeniowe procesory Intel Xeon z hyperthreading, więc jeśli dobrze rozumiem, daje nam to 16 rdzeni. W ramach Hyper-V stworzyliśmy maszynę wirtualną z systemem Windows Server 2008 R2 z 4 wirtualnymi procesorami. Ekran ustawień procesora mówi mi, że stanowi to 25% całkowitej mocy obliczeniowej systemu. Czy to oznacza, że wirtualny system operacyjny nie może wykorzystać pozostałych 75%? Będziemy uruchamiać kilka innych maszyn wirtualnych, ale ta jest przeznaczona dla programu SQL Server i chcielibyśmy uzyskać jak najwięcej mocy.
14
Odpowiedzi:
VCPU można zmapować tylko na pojedynczy fizyczny procesor. Nie możesz wziąć 4 fizycznych procesorów i stworzyć pojedynczego vCPU, który jest 4x szybszy; po prostu nie tak to działa.
Funkcja Hyper-V ogranicza się do przypisywania 4 maszyn wirtualnych do maszyny wirtualnej (ostatnio sprawdziłem). Jeśli potrzebujesz znacznej mocy procesora, fizycznie, nie ma sensu dodawać narzutów związanych z wirtualizacją do czegoś , co intensywnie i równolegle wymaga CPU .
Ponadto, jak zauważa Holocryptic, jeśli przypiszesz 4 maszyny wirtualne do maszyny wirtualnej, ta maszyna wirtualna nie będzie mogła działać, dopóki Hyper-V nie pozyska 4 fizycznych rdzeni procesora. W zależności od konfiguracji może to być poważny problem (np. Jeśli masz 6-rdzeniową maszynę z grupą 4 maszyn wirtualnych vCPU, tylko jedna będzie działać jednocześnie, pozostałe dwa rdzenie zawsze pozostaną zasadniczo nieużywane).Według Jake'a Oshinsa nie było to prawdą w przypadku żadnej wersji Hyper-V. Twierdzi, że Hyper-V nie używa planowania gangów dla procesora; jak prawie każdy inny hiperwizor. W związku z tym, jeśli dostępny jest jeden fistyczny rdzeń procesora, Hyper-V może go użyć do uruchomienia wieloprocesorowej maszyny wirtualnej. (Wspomniano również, że Hyper-V może nie używać wszystkich fizycznych rdzeni dostępnych w tym czasie z powodu partycjonowania NUMA)Uwaga dodatkowa: SQL niekoniecznie wykorzystuje wszystkie rdzenie, które możesz w niego rzucić. To naprawdę zależy od tego, do czego go używasz i od stopnia obciążenia równoległego.
źródło
Tak, co powiedział Chris. Jeśli potrzebujesz więcej niż 4 procesorów na maszynie wirtualnej Hyper-V, utwórz dwa serwery SQL w trybie wirtualnym i rozłóż bazy danych lub fizycznie. W zależności od licencji na serwer SQL możesz być w stanie dodać więcej serwerów SQL w trybie wirtualnym (na tym samym fizycznym hoście) bez ponoszenia dodatkowych kosztów licencyjnych, ale przeczytaj dokument oficjalny dotyczący licencjonowania wirtualnego SQL, aby uzyskać więcej informacji.
Zgadzam się również, że jeśli w SQL brakuje mocy procesora z 4 wirtualnymi procesorami, to masz poważne wykorzystanie aplikacji lub źle napisane polecenia SQL.
źródło
Około 4 rdzeń limit:
W sekcji pliku konfiguracyjnego maszyny wirtualnej:
[procesory] [count type = ”integer”] 16 [/ count]
Teraz masz 16-rdzeniowy procesor.
AKTUALIZACJA: Wydaje się potrzebny zrzut ekranu
źródło
postępuj zgodnie z tym przewodnikiem
http://surminski.eu/2012/04/17/hyper-v-how-to-add-more-than-4-cores-to-a-virtual-machine/
możesz znaleźć plik konfiguracyjny vm xml w katalogu „Virtual Machines” katalogu VHD maszyny wirtualnej, plik konfiguracyjny zostanie nazwany pod identyfikatorem maszyny wirtualnej. Pod linkiem znajduje się odniesienie.
odwołanie: plik konfiguracyjny xml VM
upewnij się, że edytujesz plik konfiguracyjny VM xml przy pomocy notatnika / notatnika ++ otwartego z uprawnieniami administratora
źródło