Wie viele virtuelle Prozessoren oder Kerne sollte ich meinem Gastbetriebssystem zuweisen? [geschlossen]

8

Ich habe gerade einen aktualisierten Host-Computer erhalten und möchte einige dieser Fortschritte auf die Gastbetriebssysteme meiner Workstations übertragen. Insbesondere hatte ich früher einen einzelnen Prozessor mit 2 Kernen, sodass mein Gastbetriebssystem nur 1/1 hatte.

Jetzt habe ich einen einzelnen Prozessor mit 8 Kernen, also bin ich gespannt, was jetzt für mein Gastbetriebssystem empfohlen wird.

  • 1 Prozessor / 4 Kerne?
  • 2 Prozessoren / 2 Kerne?
  • 4 Prozessoren / 1 Kern?

Mein Instinkt sagt, dass ich mich an die Anzahl der physischen Prozessoren (oder weniger) halten soll, aber basiert das auf der Realität? Ich habe eine Weile nach einer Antwort gesucht, aber vielleicht ist mein Google-Karma heute nicht zu meinen Gunsten.

reidLinden
quelle
Verbraucht Ihr Gast die Verarbeitungsfunktionen, die er jetzt hat?
OldWolf
Dieser Link kann hilfreich sein und darauf hinweisen, dass Sie Ihre Konfiguration an die NUMA-Konfiguration des Hosts anpassen.
Glenn

Antworten:

4

In meinen eigenen Tests mit VMWare Workstation unter Verwendung der neuesten GeekBench 3, 64-Bit-Tests, auf einem Host-Computer mit 1 CPU, 2 Kernen (mit aktiviertem HT, also 4 Kernen):

Host-System:

  • 2866 Single Core Score, 5939 Multi Core Score

Virtualisiert:

  • 1 CPU, 1 Kern: 2783 sc, 2705 mc
  • 1 CPU, 2 Kerne: 2758 sc, 4271 mc
  • 1 CPU, 3 Kerne: 2783 sc, 5234 mc
  • 1 CPU, 4 Kerne: 2769 sc, 5793 mc

Zumindest in meinen Tests sieht es so aus, als ob es von Vorteil ist, die virtuelle Anzahl der Kerne so einzustellen, dass sie mit Ihren physischen Kernen übereinstimmt. Vielleicht bin ich falsch. Ich würde gerne diskutieren.

Nikolaus
quelle
Hervorragende Forschung! Vielen Dank. Könnten Sie diese Forschung erweitern, um einige der anderen Optionen abzudecken, die ich im ursprünglichen Beitrag hervorgehoben habe? Wie ein virtuelles 2 / 2- und 4/1-System (nachdem bereits festgestellt wurde, dass ein 1/4-Ausgang 1/4-Setups ausführt)? Das ist die eigentliche Frage. Sollten Sie 1/4, 2/2 oder 4/1 gehen (vorausgesetzt, Sie gehen mit 4 virtuellen Kernen insgesamt). Ich gebe auch zu, dass ich den Unterschied zwischen "Single Core Score" und "Multi Core Score" in jedem Ihrer Beispiele nicht verstehe. Wie kann eine 1-CPU / 1-Kern-Maschine überhaupt eine Multi-Core-Punktzahl erzielen? Gleiches gilt für die 1cpu / 4core-Situation, umgekehrt ....
reidLinden
2

Ich weiß nicht, ob diese Informationen noch gültig sind, aber in der nicht allzu langen Vergangenheit skalierten zusätzliche Gast-CPUs nicht annähernd so gut wie Host-CPUs. In der Tat war beste Empfehlung mit einzelnem CPUs im Gast Konfigurationen zu bleiben , wenn Sie speziell testen / Debuggen Multithreaded Software in Ihren Gästen und benötigte eine SMP - Umgebung.

Bearbeiten: Diese Antwort bezieht sich insbesondere auf die Desktop-Virtualisierung, nicht auf die Server-Virtualisierung.

afrazier
quelle
Sie sagen also 1 Prozessor mit einem einzigen Kern?
ReidLinden
Ja. Ermöglicht die VMware-Workstation jetzt das unabhängige Festlegen dieser Werte? Ich habe es seit Version 6 nicht mehr verwendet und es war nur eine Anzahl von CPUs. Wenn Sie bei Ihren Gästen Multi-Core- / Multi-CPUs verwenden möchten, ist es meines Erachtens sehr wichtig, auf welche Weise Sie die Dinge skalieren, es sei denn, Lizenzierungsüberlegungen (Anzahl der "Sockets" vs. Anzahl der "Kerne") spielen eine Rolle. zB erlaubt XP Home nur 1 Sockel, aber bis zu 4 Kerne, während XP Pro 2 Sockel erlaubt.
Afrazier
Ja, ich habe anscheinend die Möglichkeit, "# Prozessoren" und "# Kerne" unabhängig voneinander auszuwählen ... Mein Host-Computer verfügt über 1 Prozessor mit 8 Kernen unter Windows 7 Professional, und mein (Haupt-) Gast-OS ist ein Windows Server 2003. ..
reidLinden
0

Ich gebe meinem Gast höchstens OS 2-Kerne. Es spielt keine Rolle, ob Sie jeweils 1 Prozessor 2 Kerne oder 2 Prozessor 1 Kern ausführen. Die Prozessoreinstellung erfolgt aus Kompatibilitätsgründen. Prozessor / Kerne lassen sich aufgrund der Planung von Kern- / Prozessorprozessen für Gastbetriebssysteme nicht so gut skalieren. 2 Kerne scheinen der Sweet Spot zu sein.

Metril
quelle
Sie möchten vermeiden, einen Prozessor und einen Kern für eine VM zu haben, da die gesamte VM blockiert wird, wenn ein Vorgang, von dem das Host-Betriebssystem nicht erwartet, dass er Blöcke unerwartet blockiert, blockiert wird.
David Schwartz
0

An dieser Stelle gibt es kaum einen Unterschied. In einigen Fällen kann die Softwarelizenzierung von Kernen oder CPUs abhängen.

Virtualisiert: 1 CPU, 1 Kern: 2783 sc, 2705 mc 1 CPU, 2 Kerne: 2758 sc, 4271 mc 1 CPU, 3 Kerne: 2783 mc, 5234 mc 1 CPU, 4 Kerne: 2769 sc, 5793 mc Also zumindest In meinen Tests scheint es von Vorteil zu sein, die virtuelle Anzahl der Kerne so einzustellen, dass sie mit Ihren physischen Kernen übereinstimmt. Vielleicht bin ich falsch. Ich würde gerne diskutieren.

Dies ist nur in einem Benchmark möglich, der alle Kerne verwendet. Die meisten Anwendungen skalieren die Leistung nicht linear mit der Anzahl der Kerne, da sie nur keine zusätzlichen Kerne verwenden.

Es gibt auch einen gewissen Overhead beim Hinzufügen weiterer Kerne. Fügen Sie daher kurz gesagt nur die Anzahl der Kerne hinzu, die Ihre Anwendung benötigt, um die von Ihnen benötigten Ebenen auszuführen. Nur weil Sie 4 Kerne in Ihrem Host haben, bedeutet dies nicht, dass jede VM 4 Kerne erhalten sollte.

In einigen von mir verwalteten Umgebungen verfügen wir über zwei 10-Kern-CPUs mit insgesamt 40 logischen Threads, und meine Domänencontroller erhalten immer noch nur zwei Kerne.

Curtis
quelle
-2

Ich bin ziemlich schockiert, dass diese häufig gestellten Fragen noch nicht vollständig beantwortet wurden. Ihre Host-CPU sollte einige Virtualisierungstechnologien unterstützen, z. B. Intel VTx. Auf diese Weise können Sie die gesamte Leistung der CPU in Ihr Gastbetriebssystem "tunneln". Andernfalls kommt es aufgrund der Emulation einer CPU zu einem enormen Geschwindigkeitsabfall. Wenn Sie eine CPU mit Hyperthreading haben, sollten im Geräte-Manager Ihres Host-Computers 8 Prozessoren für eine Quad-Core-CPU angezeigt werden (Hyperthreading verdoppelt die Anzahl Ihrer Kerne). In diesem Fall können Sie Ihrem Gast-Betriebssystem 1 Prozessor mit 4 Kernen zuweisen. Weisen Sie Ihrer virtuellen Maschine nicht mehr als einen Prozessor zu, solange Sie keinen anderen physischen Prozessor in Ihrem System haben. Sie können Ihrem Gast-Betriebssystem je nach Bedarf mehr oder weniger Kerne zuweisen, sollten dies jedoch nicht tun t Weisen Sie einen höheren Wert als Ihre Hyperthreading-Kerne zu. Beachten Sie jedoch, dass Ihr Host auch etwas CPU-Leistung benötigt. Normalerweise richte ich die halbe Anzahl meiner Hyperthreading-Kerne und die halbe Anzahl meines Speichers ein, z. B. 8192 MB, wenn Sie über 16 Gig RAM verfügen. Dies ist normalerweise eine gute Einstellung, aber nicht, wenn Sie mehr als eine virtuelle Maschine gleichzeitig ausführen möchten.

martinjohannes93
quelle