none
Eine VM mehrere phys. Prozessoren RRS feed

  • Frage

  • Hallo,

    angenommen, ich wäre in der glücklichen Lage, einen Win2k8 R2 Hyper-V auf einer Hardware mit 8 phyischen Prozessorkernen laufen zu lassen und ich hätte nur eine VM mit 4 virtuellen Prozessoren (ist das das Maximum bei Hyper-V?).

    Würde die VM dann trotzdem die volle Kapazität aller 8 phyischen Prozessorkerne nutzen können, oder nur die Kapazität von 4 phyischen Prozessorkernen?

    Danke!

    Alex

    Mittwoch, 10. November 2010 09:43

Antworten

  • Hi,

    wie bereits geschrieben werden alle 8 Kerne in einem "Cycle" verwendet - du nutzt also die volle Power der Hardware. Die virtuellen Prozessoren musst du dir als zugewiesene CPU Zeiten vorstellen. Ein sehr gutes Video welches dies beschreibt hat mein MVP Kollege Brian Ehlert auf Youtube hochgestellt: http://www.youtube.com/user/BrianEhlert#p/u/1/Qfy8lE9pzAY


    Peter Forster | MVP Virtual Machine | Austria | http://www.base-it.at
    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Donnerstag, 11. November 2010 15:16
  • Hi,

    zu a/b) Nicht ganz, der eine virtuelle Prozessor hat natürlich einen Bus zum physischen Prozessor. Wenn dieser Bus (vorstellbar als Straße) voll ist, staut sich der Traffic. Dies kann nur durch mehrere Straßen umgangen werden. 4 Straßen ist das maximum. Somit ist eine VM mit einem Prozessor nicht gleich schnell als mit 4 Prozessoren.

    zu c) Die VM weiß nicht, dass außen in der parent Partition mehrere Prozessoren vorhanden sind. Das mit den 8 Prozessoren stimmt so nicht, da wieder "nur" ein Weg hin ist. Stell dir den virtuellen Prozessor als reine Zuweisung von CPU Zeit vor, nicht als eigenen Core


    Peter Forster | MVP Virtual Machine | Austria | http://www.base-it.at

    • Bearbeitet Peter Forster Freitag, 12. November 2010 09:41 Formatierung
    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Freitag, 12. November 2010 09:40
  • Hi,

    die Straße wird, wenn die App die Straße beansprucht, nicht leerer. Die App wird nicht schneller, weil physisch mehrere Kerne vorhanden sind. Der Weg zur App führt ja weiterhin nur über eine Straße, egal wie viele physische Prozessoren vorhanden sind. Die Runde der pysischen Kerne ist ja so zu sehen, dass bei der Anfrage nach einer neuen CPU Zeit ein anderer Kern des physischen Prozessors verwendet wird, aber nicht mehrere physische Kerne gleichzeitig.

    Daraus ergibt sich, dass die VM trotzdem "nur" einen physischen Kern pro CPU-Zeit nutz, die Anfragen aus der VM aber in einem Rad auf andere Kerne aufgeteilt werden.

    Stell dir vor zu Klopfst jemand anderem auf die Schulter, egal welche Schulter du nimmst, es wird sich nur eine zu dir drehen, nicht beide. Genauso ist es mit den Kernen. Wenn die VM CPU Zeit benötigt wird der Hypervisor dafür sorgen, dass ein Kern die Zeit bereitstellt, bei der nächsten Anfrage wird nur ein anderer Kern verwendet, aber eben nicht gleichzeitig.


    Peter Forster | MVP Virtual Machine | Austria | http://www.base-it.at
    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Samstag, 13. November 2010 07:52
  • Ja,

    4 Virtuelle prozessoren sind das maximun für einen gast. Die 4 virtuelle prozessoren nutzen die volle Leistung aller 8 Prozessoren, bzw. ihnen wurde eine bestimmte Ressourcenmenge zugewiesen. Siehst du beim erstellen des virtuellen Computers. Bedenke, wenn dein Gast nicht die volle Kapazität seiner Prozessoren brauch, ist das ein Mehraufwand für den Host durch Syncrinisation etc.

    Grüße

    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Donnerstag, 11. November 2010 14:46

Alle Antworten

  • Ja,

    4 Virtuelle prozessoren sind das maximun für einen gast. Die 4 virtuelle prozessoren nutzen die volle Leistung aller 8 Prozessoren, bzw. ihnen wurde eine bestimmte Ressourcenmenge zugewiesen. Siehst du beim erstellen des virtuellen Computers. Bedenke, wenn dein Gast nicht die volle Kapazität seiner Prozessoren brauch, ist das ein Mehraufwand für den Host durch Syncrinisation etc.

    Grüße

    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Donnerstag, 11. November 2010 14:46
  • Hi,

    wie bereits geschrieben werden alle 8 Kerne in einem "Cycle" verwendet - du nutzt also die volle Power der Hardware. Die virtuellen Prozessoren musst du dir als zugewiesene CPU Zeiten vorstellen. Ein sehr gutes Video welches dies beschreibt hat mein MVP Kollege Brian Ehlert auf Youtube hochgestellt: http://www.youtube.com/user/BrianEhlert#p/u/1/Qfy8lE9pzAY


    Peter Forster | MVP Virtual Machine | Austria | http://www.base-it.at
    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Donnerstag, 11. November 2010 15:16
  • Ich danke euch für die Antworten.

    Das Video kenne ich, aber meine Fragestellung wird darin nicht ganz klar beantwortet.

    Das würde also bedeuten, wenn ich auf dem oben beschriebenen System eine VM mit einem virtuellen Prozessor aufsetze, hätte es den Power von (ca. wg. Overhead) 8 Prozessoren.
    (a) Habe ich das so verstanden?

    (b) Bedeutet das letztendlich nicht auch, dass es in der VM nahezu keinen Unterschied macht, ob ich einen oder mehrere virtuelle Prozessoren verwende, weil immer alle 8 phys. Prozessoren des Hosts verwendet werden?

    (c) Wenn ich also eine Software habe, die nur einen Kern benutzt bzw. aus Lizenzgründen nur auf einem Einprozessorsystem installiert werden darf (müßte natürlich im Vertrag geprüft werden, wie das bei einer virtuellen Installation ist), wäre es dann ja auch besser, ich lasse sie auf solch einer VM mit einem virtuellen Prozessor rennen, weil dann letztendlich 8 Prozessoren arbeiten, oder?

    Freitag, 12. November 2010 06:12
  • Hi,

    zu a/b) Nicht ganz, der eine virtuelle Prozessor hat natürlich einen Bus zum physischen Prozessor. Wenn dieser Bus (vorstellbar als Straße) voll ist, staut sich der Traffic. Dies kann nur durch mehrere Straßen umgangen werden. 4 Straßen ist das maximum. Somit ist eine VM mit einem Prozessor nicht gleich schnell als mit 4 Prozessoren.

    zu c) Die VM weiß nicht, dass außen in der parent Partition mehrere Prozessoren vorhanden sind. Das mit den 8 Prozessoren stimmt so nicht, da wieder "nur" ein Weg hin ist. Stell dir den virtuellen Prozessor als reine Zuweisung von CPU Zeit vor, nicht als eigenen Core


    Peter Forster | MVP Virtual Machine | Austria | http://www.base-it.at

    • Bearbeitet Peter Forster Freitag, 12. November 2010 09:41 Formatierung
    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Freitag, 12. November 2010 09:40

  • Hi,

    zu a/b) Nicht ganz, der eine virtuelle Prozessor hat natürlich einen Bus zum physischen Prozessor. Wenn dieser Bus (vorstellbar als Straße) voll ist, staut sich der Traffic. Dies kann nur durch mehrere Straßen umgangen werden. 4 Straßen ist das maximum. Somit ist eine VM mit einem Prozessor nicht gleich schnell als mit 4 Prozessoren.

    zu c) Die VM weiß nicht, dass außen in der parent Partition mehrere Prozessoren vorhanden sind. Das mit den 8 Prozessoren stimmt so nicht, da wieder "nur" ein Weg hin ist. Stell dir den virtuellen Prozessor als reine Zuweisung von CPU Zeit vor, nicht als eigenen Core

     


     

    Peter Forster | MVP Virtual Machine | Austria | http://www.base-it.at


    Hi, das mit der Straße war mir so schon klar, meine Frage geht eher in die Richtung, wer sorgt dafür dass die Straße wieder leerer wird?
    Die Straße ist ja kein direkter Pfad von einem VM-Kern zu einem Host-Kern, sondern ein Fahrzeug auf der Straße wird auf irgendeinem der Host-Kerne abgefertigt, sobald die VM wieder einen Slot im Scheduler der Virtualisierungsschicht/des Hyper-Visor zugewiesen kriegt.

    Nehmen wir also an, ich hätte auf einem Host nur eine VM mit einem virt. Prozessor.
    Die VM läuft einmal auf einem HostSystem mit einem Prozessor X und einmal auf einem System mit 8 Prozessoren X (also gleicher Prozessor nur eben mehrere davon). Die VM ist haargenau gleich auf beiden Systemen.
    Profitiert dann eine Anwendung ggf. mit mehreren Diensten in der VM von den zus. Prozessoren des Host oder nicht?

    Freitag, 12. November 2010 10:03
  • Hi,

    die Straße wird, wenn die App die Straße beansprucht, nicht leerer. Die App wird nicht schneller, weil physisch mehrere Kerne vorhanden sind. Der Weg zur App führt ja weiterhin nur über eine Straße, egal wie viele physische Prozessoren vorhanden sind. Die Runde der pysischen Kerne ist ja so zu sehen, dass bei der Anfrage nach einer neuen CPU Zeit ein anderer Kern des physischen Prozessors verwendet wird, aber nicht mehrere physische Kerne gleichzeitig.

    Daraus ergibt sich, dass die VM trotzdem "nur" einen physischen Kern pro CPU-Zeit nutz, die Anfragen aus der VM aber in einem Rad auf andere Kerne aufgeteilt werden.

    Stell dir vor zu Klopfst jemand anderem auf die Schulter, egal welche Schulter du nimmst, es wird sich nur eine zu dir drehen, nicht beide. Genauso ist es mit den Kernen. Wenn die VM CPU Zeit benötigt wird der Hypervisor dafür sorgen, dass ein Kern die Zeit bereitstellt, bei der nächsten Anfrage wird nur ein anderer Kern verwendet, aber eben nicht gleichzeitig.


    Peter Forster | MVP Virtual Machine | Austria | http://www.base-it.at
    • Als Antwort markiert webjagger Dienstag, 16. November 2010 07:02
    Samstag, 13. November 2010 07:52