Wszystko
Wystąpił problem na moim serwerze od czasu migracji jednej maszyny wirtualnej z systemu Windows 2008 Server do systemu Windows 7 (wersja ostateczna): chociaż przypisałem cztery rdzenie do maszyny wirtualnej i wydaje się, że je widzi, wydaje się, że tak ma dwa rdzenie!
Czy ktoś może mi powiedzieć, co się tutaj dzieje? Myślałem, że może to być jakaś niezgodność między KVM i Windows 7, ale ponieważ widzi wirtualne procesory, zaczynam myśleć, że nie ... żadnych wskazówek?
Oto zrzut ekranu menedżera procesów pokazującego tylko dwa rdzenie na tym samym pudełku:
Odpowiedzi:
Podejrzewam, że procesory są prezentowane jako procesory jednordzeniowe w osobnych gniazdach. Windows 7 Ultimate obsługuje do 2 systemów gniazd, więc będzie korzystał z 2 procesorów.
Nie wiem, czy możesz skonfigurować KVM tak, aby przedstawiał procesory jako jedno- lub czterordzeniowy procesor, czy też dwa dwurdzeniowe procesory, co powinno rozwiązać problem.
źródło
W libvirt 0.8.3, jeśli wpiszesz:
wyświetli listę topologii hosta:
Liczby odnoszą się do gniazd, rdzeni na gniazdo i wątków na rdzeń. Dodaj ten wiersz do wpisu procesora w pliku xml, aby umożliwić systemowi Windows korzystanie z wszystkich 4 rdzeni, np .:
źródło
<topology sockets='1' cores='4' threads='1'/>
do mojego xml.virsh capabilities | grep topology
pokazuje<topology sockets='1' cores='6' threads='2'/>
. KRYTYCZNE:kill -HUP nnnnn
wykonałem gdzie nnnnn jest PID mojego procesu libvirtd. Uruchomiłem maszynę wirtualną. Zadziałało. +1! Dzięki! ... Ale nie zapomnij wykopać libvirtd z sygnałem HUP lub restartem!Ustawienia topologii są w pełni obsługiwane w virt-manager od Ubuntu 15.04.
Z virt-manager> Procesory> Topologia:
Poniższe ustawienia są tworzone z powyższych ustawień w virt-manager. Nie musisz wprowadzać ich przy pomocy edycji virsh.
Topologia przestała być rozpoznawana przez system Windows po aktualizacji i ponownie ogranicza wirtualny procesor do 2 gniazd.
Aby to naprawić, użyj „edycji virsh”, aby ukryć funkcję kvm i dodać funkcje hyperv. Po całkowitym zamknięciu i ponownym uruchomieniu maszyna wirtualna systemu Windows ponownie rozpozna wiele procesorów.
Dlaczego moja maszyna wirtualna z systemem Windows 7 działająca pod Linuksem KVM nie używa wszystkich procesorów wirtualnych?
źródło
W RHEL / CentOS 5.5 (kvm> = 83-164.el5) plik binarny kvm obsługuje również opcję „-smp N, cores = N” (w pakiecie znajdują się łaty backport); jednak wersja libvirt nie obsługuje elementu <topology> w pliku XML domeny. Obejściem tego problemu jest utworzenie skryptu opakowania dla / usr / libexec / kvm, który doda odpowiednią opcję i określi ten skrypt w elemencie <emulator> zamiast domyślnej ścieżki.
źródło
Warto zauważyć, że Ubuntu 10.4 (Lucid) ma wersję 0.7.5 libvirt, podczas gdy wsparcie dla topologii zostało dodane do libvirt w wersji 0.7.6. Ubuntu 10.10 (Maverick) ma bibliotekę libvirt w wersji 0.8.3, więc powinna być w stanie bezpośrednio obsługiwać specyfikację topologii w XML bez opakowania.
źródło