Czy skonfigurowanie maszyny wirtualnej z więcej niż 1 procesorem / rdzeniem rzeczywiście poprawi wydajność?


11

Kiedy korzystam ze stacji roboczej VMware, mogę ustawić maszynę wirtualną z wieloma rdzeniami. Właściwie używam go na maszynie z podwójnym rdzeniem i 4 rdzeniami logicznymi. Więc czy naprawdę poprawiłbym wydajność VMS poprzez użycie większej liczby rdzeni na maszynie wirtualnej?


3
Przy doborze wirtualnych gości warto pamiętać o jednej rzeczy: jeśli przydałaby się instalacja na prawdziwej maszynie, to przydałaby się jako maszyna wirtualna i odwrotnie. A co najważniejsze: nic magicznego nie dzieje się z wymaganiami systemowymi lub aplikacyjnymi tylko dlatego, że coś zwirtualizowałeś .
Rob Moir,

Odpowiedzi:


8

zależy to od uruchomionej maszyny wirtualnej, gość na maszynie z liczbą rdzeni n będzie działał najlepiej na przydzielonych rdzeniach n-1, o ile gość będzie w stanie efektywnie wykorzystywać wiele procesorów. Niestety najprostszym sposobem ustalenia tego jest wypróbowanie go i zobaczenie. Zwykle zaczynam od 2 i zatrzymuję się, gdy kończy mi się wzrost wydajności. Zazwyczaj widzę „rdzeń” w 2 rdzeniach. Kilka kombinacji aplikacji / systemu operacyjnego, z którymi się spotkałem, będzie skalować się lepiej.


6

Aby wyjaśnić, mówisz, że masz dwurdzeniowy procesor i przypisałeś 4 wirtualne procesory na maszynie wirtualnej?

W tym przypadku nie; jeśli przypiszesz więcej procesorów vCPU niż posiadasz fizyczne rdzenie wykonawcze, faktycznie zobaczysz nieznaczne zmniejszenie wydajności z powodu narzutu związanego z udostępnianiem 2 fizycznych rdzeni między 4 wirtualnymi rdzeniami (plus wszystko działające na fizycznym hoście).

Zobaczysz najlepszą wydajność maszyny wirtualnej, przypisując jej 2 jednostki vCPU.


Niekoniecznie - naprawdę zobaczysz lepszą wydajność tylko wtedy, gdy aplikacje uruchomione na maszynie wirtualnej będą mogły korzystać z systemów wielordzeniowych. Niestety, mimo że jest to rok 2011, wiele aplikacji tego nie robi.
EEAA

@ErikA Uczciwa kwestia - odkładając na bok wątki aplikacji, mówię tylko, że przy tylko 2 fizycznych rdzeniach, 2 vCPU na jednej maszynie wirtualnej jest zawsze lepsze niż 4 vCPU.
Shane Madden,

tak, 100% zgodziło się w tej kwestii.
EEAA

5

Jakiś czas temu eksperymentowaliśmy ( patrz moje pytanie sprzed roku ) z przypisywaniem procesorów vCPU z rdzeni fizycznych vs. rdzeni logicznych (wątków) w czterordzeniowych procesorach z hiperwątkiem (wydawało się, że dostępnych jest 8 przypisywalnych vCPU). Zgodnie z sugestiami, które wtedy otrzymałem - i nasze doświadczenie się wydało - powinieneś przydzielić minimalną liczbę rdzeni, jaką możesz dla każdego gościa, aby umożliwić mu wykonanie.

Przy przypisywaniu większej liczby procesorów wirtualnych niż rdzeni fizycznych dostępnych na hoście, jeśli goście byli pod jednoczesnym obciążeniem, hyperthreading nie zawsze był wystarczająco szybki przy przełączaniu kontekstu procesora między wątkami, aby skutecznie symulować inny procesor. Może to prowadzić do bardzo nieprzyjemnych rzeczy dla wszystkich gości, w tym do zawieszania się i przekroczenia limitu czasu, które mogą wymagać ponownego uruchomienia, fsck i jeszcze gorszych na stosie. Nawet jeśli takie rzeczy się nie zdarzają, wydajność często będzie wolniejsza dla gości niż szybsza.

Jak to napisał @Chris S w swoim komentarzu: „zawsze przydzielaj tak mało, jak tylko możesz, i unikniesz dużych bólów głowy”.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.