Mit VirtualBox und möglicherweise anderer VM-Software kann der Benutzer die Anzahl der CPUs angeben, die für die VM verfügbar sind. In meinem speziellen Fall habe ich eine Dual-Core-CPU mit 64-Bit-Version von Windows 7 und 64-Bit-Version von Ubuntu 9.04 als VM.
In der Hilfedatei wird vorgeschlagen, dies nicht über die Anzahl der verfügbaren physischen Kerne zu setzen. Das macht Sinn. Weisen Sie am besten 1 oder 2 CPU-Kerne zu? Kommt es ganz auf die native CPU-Auslastung an?
Die Informationen in dieser Antwort sind nicht mehr korrekt . Es war in den Tagen der strengen Co-Planung korrekt, ist aber nicht mehr der Fall.
Ich behalte die unten stehende Antwort aus Gründen des Wohlstands, aber bitte verlassen Sie sich nicht darauf, dass sie für moderne Hypervisoren korrekt ist.
Sie sollten niemals alle Ihre Kerne als vCPUs in einer virtuellen Maschine zuweisen.
Wenn ein VM anfordert jede CPU - Zeit, VMWare hat entweder zuzuteilen all das vCPUs oder keines des vCPUs.
Dies bedeutet, dass auf einem 4-Core-System, wenn Sie alle 4 Cores zuweisen, nur dem Host oder dem Gast Prozessorzeit zugewiesen werden kann, nicht beiden gleichzeitig.
Dies wird die Leistung in beiden Umgebungen absolut beeinträchtigen.
Sie können beliebig viele Kerne zuweisen (z. B. 3). Es fühlt sich seltsam an, aber es ist eine absolut legitime Option.
Im Allgemeinen reserviere ich nie mehr als (n / 2) vCPUs (in Ihrem Fall 2) - aber normalerweise reserviere ich Kerne auf Servern mit 12 bis 32 Kernen, auf denen Sie eine große Anzahl von vCPUs ohne größere Auswirkungen zuweisen können.
quelle
Die Anzahl der Kerne, die Gast-CPUs ausgesetzt sind, wirkt sich nicht so stark auf die Leistung aus, wie Sie möchten. Es wird lediglich die Anzahl der Kerne angepasst, die die Gast-CPU "sieht".
Je nachdem, wie der Emulator eingerichtet ist, kann er die Leistung der virtuellen Maschine buchstäblich halbieren, nichts tun oder sich nur auf die Art und Weise auswirken, wie das Gastbetriebssystem / die Gastanwendungen ihre Thread-Planung aufteilen.
Es ist am besten, die Standardeinstellung beizubehalten. Wenn auf dem Host-PC Leistungsprobleme auftreten, können Sie die Prozesspriorität einfach mit dem Windows Task-Manager anpassen.
quelle
Wie Nate bereits erwähnt hat, gibt es wenig Grund, mehr als einen Kern zuzuweisen, solange Ihre VM hauptsächlich einen Single-Thread-Prozess ausführt.
Wenn Sie jedoch vorhaben, es auf eine Weise zu verwenden, die von mehr Kernen profitieren kann (Multithread-Programm, viele parallele Programme usw.), ist die Geschichte komplizierter. Ich war zuvor der Meinung, dass die Hälfte Ihrer CPUs für Ihre VM eine gute Idee ist. Es stellt sich heraus, dass dies nicht immer optimal ist.
Die einzige Möglichkeit, dies sicherzustellen, ist das Ausführen von Benchmarks. Ich weiß nicht warum, aber in meinem Core2 Quad-System (das VT-x-Unterstützung, verschachteltes Paging usw. bietet) ist die Verwendung von 1 der 4 Kerne tatsächlich besser als mit 2 oder mehr Kernen! Ich sehe das einfach in den Startzeiten der VM, aber auch bei Kompilierungsbenchmarks.
Bei anderer Hardware sind die Ergebnisse anders. Ich habe auch einen i7 mit 8 Kernen, und die Leistung scheint viel besser mit der Anzahl der Kerne dort zu skalieren (mit 4 dort glücklich).
Mein Tipp: Zuerst eine neue Hardware testen.
quelle
Ich würde dem Scheduler des Betriebssystems vertrauen und die VM einfach auf die Anzahl der physischen Kerne einstellen, sofern Sie nicht wissen, dass der Host immer einen potenziell inaktiven Kern haben soll, während Sie in der VM beschäftigt sind.
quelle
Dies hängt davon ab, was Sie sowohl auf der virtuellen als auch auf der physischen Maschine tun möchten. Wenn Sie die virtuelle Maschine verwenden müssen, während das Host-Betriebssystem für eine andere Aktivität verwendet wird, ist es möglicherweise besser, zwei Prozessorkerne für die VM zu verwenden, sodass auf dem Host zwei übrig sind, wenn die VM voll ausgelastet ist. Wenn Sie dagegen hauptsächlich an der VM arbeiten, können Sie alle Prozessorkerne verwenden.
Sofern nicht erwartet wird, dass der Gast alle vier Kerne gleichzeitig verwendet, können Sie alle ohne Bedenken verwenden, während Sie auf dem Host-Betriebssystem weiterarbeiten. Denken Sie daran, dass Sie die Priorität des VM-Prozesses jederzeit anpassen können, während er auf dem Host-Betriebssystem ausgeführt wird, und das System die Lasten entsprechend verteilt.
quelle
ja, ich würde auch sagen, dass es darauf ankommt. Aber ich sage, was ich lieber mache. Bei der Arbeit habe ich eine Quad-Core-CPU. Daher habe ich für mein virtuelles Image (win7) zwei CPUs zugewiesen. Auf diese Weise kann ich sowohl die Hostmaschine als auch die virtuelle Maschine gleichzeitig verwenden, und sie verfügen jeweils über die gleichen CPU-Ressourcen.
quelle