Ile wirtualnych procesorów lub rdzeni powinienem przypisać do mojego systemu operacyjnego gościa? [Zamknięte]

8

Właśnie otrzymałem zaktualizowaną maszynę hosta i zamierzam przekazać niektóre z tych postępów moim systemom operacyjnym gościa. W szczególności miałem jeden procesor z 2 rdzeniami, więc mój system operacyjny gościa miał tylko 1/1.

Teraz mam pojedynczy procesor z 8 rdzeniami, więc jestem ciekawy, co byłoby teraz zalecane dla mojego systemu operacyjnego gościa?

  • 1 procesor / 4 rdzenie?
  • 2 procesory / 2 rdzenie?
  • 4 procesory / 1 rdzeń?

Mój instynkt mówi, by trzymać się liczby procesorów fizycznych (lub mniej), ale czy jest to oparte na rzeczywistości? Sporo szukałem odpowiedzi na to pytanie, ale być może moja karma google nie jest dziś na moją korzyść.

reidLinden
źródło
Czy gość korzysta z możliwości przetwarzania, jakie ma obecnie?
OldWolf,
Ten link może być pomocny, sugerując dopasowanie konfiguracji do konfiguracji NUMA hosta.
Glenn,

Odpowiedzi:

4

W moich własnych testach z VMWare Workstation, przy użyciu najnowszych GeekBench 3, 64-bitowych testów, na maszynie hosta z 1 jednostką centralną, 2 rdzeniami (przy włączonym HT, więc 4 rdzenie):

System hosta:

  • 2866 Single Core Score, 5939 Multi-Core Score

Zwirtualizowane:

  • 1 procesor, 1 rdzeń: 2783 sc, 2705 mc
  • 1 procesor, 2 rdzenie: 2758 sc, 4271 mc
  • 1 procesor, 3 rdzenie: 2783 sc, 5234 mc
  • 1 procesor, 4 rdzenie: 2769 sc, 5793 mc

Tak więc, przynajmniej w moich testach, wygląda na to, że ustawianie wirtualnej liczby rdzeni jest zgodne z fizycznymi. Może się mylę. Chciałbym omówić.

Mikołaj
źródło
Doskonałe badania! Dzięki. Czy mógłbyś rozszerzyć te badania o inne opcje, które podkreśliłem w oryginalnym poście? Podobnie jak w przypadku wirtualnego systemu 2/2 i 4/1 (po ustaleniu, że wyjście 1/4 wykonuje ustawienia 1/4)? To jest prawdziwe pytanie. Powinieneś wybrać 1/4, 2/2 lub 4/1 (przy założeniu, że ogólnie masz 4 wirtualne rdzenie). Przyznaję też, że nie rozumiem różnicy w „wyniku jednordzeniowym” i „wyniku wielordzeniowym” w każdym z twoich przykładów. W jaki sposób maszyna 1cpu / 1core może w ogóle uzyskać wynik wielordzeniowy? To samo dotyczy sytuacji 1cpu / 4core, na odwrót ....
reidLinden
2

Nie wiem, czy ta informacja jest nadal aktualna, ale jeszcze nie tak dawno temu dodatkowe procesory gościnne nie skalowały się tak dobrze jak procesory hosta. W rzeczywistości, najlepszą rekomendacją było zatrzymać się z pojedynczych procesorów w swoich konfiguracjach gości, chyba że zostały specjalnie testowania / debugowania wielowątkowe oprogramowanie w swoich gości i wymaga środowiska SMP.

Edycja: Ta odpowiedź dotyczy w szczególności wirtualizacji komputerów stacjonarnych, a nie wirtualizacji serwerów.

afrazier
źródło
więc mówisz 1 procesor z jednym rdzeniem?
reidLinden
Tak. Czy stacja robocza VMware pozwala teraz ustawić te wartości niezależnie? Nie korzystałem z niego od wersji 6, a była to tylko liczba procesorów. Jeśli masz zamiar wykonywać procesory wielordzeniowe / wieloprocesorowe u swoich gości, wątpię, czy ma to duże znaczenie, w jaki sposób skalujesz rzeczy, chyba że w grę wchodzą względy licencjonowania (liczba „gniazd” vs. liczba „rdzeni”). np. XP Home dopuszcza tylko 1 gniazdo, ale maksymalnie 4 rdzenie, podczas gdy XP Pro pozwala na 2 gniazda.
afrazier
tak, wydaje się, że mam opcję niezależnego wybierania „# procesorów” i „# rdzeni” ... Moja maszyna hosta ma 1 procesor z 8 rdzeniami na Windows7 Professional, a moim (głównym) gościem jest Windows Server 2003. ..
reidLinden
0

Co najwyżej daję moim rdzeniom OS 2. Nie ma znaczenia, czy wykonasz 1 procesor 2 rdzenie lub 2 procesory 1 rdzeń każdy. Ustawienie procesora ma na celu zapewnienie kompatybilności. Procesor / rdzenie nie skalują się tak dobrze w systemie operacyjnym gościa ze względu na harmonogram procesów rdzenia / procesora. 2 rdzenie wydają się być najsłodszym miejscem.

Metril
źródło
Chcesz uniknąć posiadania jednego procesora i jednego rdzenia dla maszyny wirtualnej, ponieważ jeśli jakakolwiek operacja, której system operacyjny hosta nie spodziewa się niespodziewanie zablokować na hoście, cała maszyna wirtualna jest blokowana.
David Schwartz
0

W tym momencie jest niewielka różnica. W niektórych przypadkach licencjonowanie oprogramowania może zależeć od rdzeni lub procesorów.

Zwirtualizowane: 1 procesor, 1 rdzeń: 2783 sc, 2705 mc 1 procesor, 2 rdzenie: 2758 sc, 4271 mc 1 procesor, 3 rdzenie: 2783 sc, 5234 mc 1 procesor, 4 rdzenie: 2769 sc, 5793 mc Tak więc przynajmniej w moich testach wygląda na to, że ustawienie wirtualnej liczby rdzeni jest zgodne z fizycznymi rdzeniami. Może się mylę. Chciałbym omówić.

Jest to tylko punkt odniesienia, który wykorzystuje wszystkie rdzenie. Większość aplikacji nie skaluje wydajności liniowo z liczbą rdzeni, ponieważ po prostu nie używają dodatkowych rdzeni.

Istnieje również pewien poziom narzutu związany z dodawaniem większej liczby rdzeni. Krótko mówiąc, dodaj tylko liczbę rdzeni, które Twoja aplikacja musi wykonać na wymaganych poziomach. To, że masz 4 rdzenie w hoście, nie oznacza, że ​​każda maszyna wirtualna powinna otrzymać 4 rdzenie.

W wielu środowiskach, którymi zarządzam, mamy dwa 10-rdzeniowe procesory z łącznie 40 logicznymi wątkami, a moje kontrolery domeny nadal mają tylko dwa rdzenie.

Curtis
źródło
-2

Jestem zszokowany, że na te często zadawane pytania nie ma jeszcze pełnej odpowiedzi. Procesor hosta powinien obsługiwać niektóre technologie wirtualizacji, np. Intel VTx. To pozwala „tunelować” całą moc procesora do systemu operacyjnego gościa. W przeciwnym razie nastąpi ogromny spadek prędkości z powodu emulacji procesora. Jeśli masz procesor z hyperthreadingiem, powinieneś zobaczyć 8 procesorów czterordzeniowego procesora w menedżerze urządzeń na twoim hoście (hyperthreading podwaja liczbę rdzeni). W takim przypadku możesz przypisać 1 procesor z 4 rdzeniami dla swojego systemu operacyjnego. Dopóki nie masz żadnego innego procesora fizycznego w systemie, nie przypisuj więcej niż 1 procesorowi do maszyny wirtualnej. W zależności od potrzeb możesz przypisać więcej lub mniej rdzeni do swojego systemu operacyjnego, ale nie powinieneś przypisać wartość wyższą niż rdzenie hiperwątkowości. Pamiętaj jednak, że twój host potrzebuje również trochę mocy procesora. Zwykle ustawiam połowę moich rdzeni hipertekstowych i połowę mojej pamięci, np. 8192 MB, kiedy masz 16 gigabajtów pamięci RAM. Zazwyczaj jest to dobre ustawienie, ale nie, jeśli chcesz uruchomić więcej niż jedną maszynę wirtualną na raz.

martinjohannes93
źródło