Wir hatten eine VMWare-VM mit zwei zugewiesenen Kernen im Einsatz, die in IIS einen ziemlich abscheulichen Prozess ausführten. Unter Last hat der Prozess die CPU-Auslastung auf beiden Kernen maximal genutzt. Daher haben wir unsere Systemingenieure gebeten, der VM die beiden anderen Kerne des physischen Prozessors vorzustellen. Der Ingenieur sagte sofort, dass dies die Leistung überhaupt nicht verbessern würde, aber die Leistung der VM verschlechtern würde. Er wies den Grund für seine Aussage zurück, der irgendetwas mit der Kapazität des ESX-Servers oder mit Ressourcenkonflikten zu tun hatte.
Diese Aussage ergab für mich wenig Sinn und ich frage mich, wie das, was der Ingenieur sagte, wahr sein könnte. Gibt es tatsächlich Fälle, in denen vier Kerne, die einer VM präsentiert werden, eine schlechtere Leistung verursachen als zwei Kerne auf derselben physischen Hardware? Nehmen wir eine ideale Situation an, in der sich nur eine VM auf dem Hostserver befindet und nichts mit anderen Betriebssysteminstanzen geteilt wird.
Ich glaube, der physische Server hatte einen einzelnen Quad-Core-Prozessor und hostete höchstwahrscheinlich mehrere VMs. Ich weiß nicht genau, welche Version von ESX auf dem Host ausgeführt wurde, und ich weiß auch nicht mit Sicherheit, wie die Konfiguration des physischen Prozessors lautete, aber innerhalb der VM, auf die ich Zugriff hatte, sah ich zwei AMD-Prozessoren mit 3,33 GHz.
Am Ende konnte ich die Behauptung des Ingenieurs nie testen, weil wir (während wir versuchten, die VM zu aktualisieren) den Prozess optimieren und den CPU-Verbrauch reduzieren konnten und 2) wir auf eine andere VM migrierten Ein weiterer ESX-Server mit vier Kernen.
quelle
Die beste Vorgehensweise für vSphere pro VMWare besteht darin, so wenig virtuelle CPUs wie möglich zu verwenden. Wenn die Anwendungen nicht für SMP-Anwendungen erstellt wurden, kann dies negative Auswirkungen haben, wenn Sie dem Gast mehrere vCPUs zuweisen.
Wenn der Host alle physischen CPU-Zyklen maximal ausnutzt, kann dies zu anderen Leistungsproblemen führen, da der Host ins Stocken gerät, was wiederum dazu führt, dass alle Gäste ins Stocken geraten.
Bearbeiten: Ihr Ingenieur sollte zumindest bereit gewesen sein, zu testen.
Als Sie Ihren Beitrag noch einmal gelesen haben, sagten Sie, dass er nur 1 Quad-Core-CPU hat. Wenn dies der Fall ist, würde ich wahrscheinlich mit Ihrem Ingenieur gehen und sagen, dass es eine schlechte Idee ist, alle 4 physischen CPUs einem Gast zuzuweisen. Der Overhead auf dem Host für die Verwaltung aller 4 vCPUs, wenn nur 4 physische Kerne vorhanden sind, würde die Gesamtleistung beeinträchtigen.
Das Problem ist, dass Sie beim Hinzufügen von 4 vCPUs zur Böe, wenn der Host nur 4 Kerne hat, alle Ihre physischen CPU-Ressourcen einem Computer zuweisen. Der Aufwand für die Verwaltung aller 4 vCPUs durch den Hypervisor führt dazu, dass Ressourcen verbraucht werden und Ihre realisierten Gewinne höchstwahrscheinlich minimal sind
quelle
Eine Faustregel, die ich bisher aufgegriffen habe, ist, einer einzelnen VM immer weniger virtuelle CPU zuzuweisen, als physisch auf dem Host vorhanden ist.
Ein Grund dafür (vor esxi), dass die Konsole vm immer lief. Für die Planung von Resaons würden Sie nur dann CPU-Zyklen an die VM senden, wenn die Menge des virtuellen CPUs gleichzeitig inaktiv war. Andernfalls erhöht sich Ihre "CPU-Wartezeit"
Mit einer Quadcore-CPU im Host würde ich also nur max. 2 cpus zu einem vm.
quelle
Es hängt davon ab, was diese anderen Kerne sonst noch verwendet. Wenn die Kerne inaktiv sind, würde das Hinzufügen dieser Kerne zu Ihrer VM die Leistung verbessern (ich gehe davon aus, dass die auf Ihrer VM ausgeführte Anwendung über mehrere Threads verfügt und alle 4 Kerne verwenden kann). Wenn die Kerne beschäftigt sind, hilft es wahrscheinlich nicht oder zumindest nicht so viel, wie man denkt.
quelle