Seite 1 von 1
Wieviel CPU-Leistung bekommt eine VM?
Verfasst: 21.12.2009, 12:37
von AlbertMinrich
Hallo,
ESX 3.5.
Mal angenommen, der ESX-Server hat 8 CPU´s mit jeweils 2,3 GHz.
Wenn´s auf dem Server nur eine VM gibt (mit einer virtuellen CPU), dann kann die doch die gesamten CPU-Ressourcen des Servers nutzen, also ca. 18 GHz, oder?
In den Systemeigenschaften der VM wird allerdings nur ein Prozessor mit 2,3GHz angezeigt.
Wenn´s 20 VM´s gibt und 19 dümpeln so vor sich hin mit vielleicht jeweils 50 MHz, dann kann die 20ste VM doch den kompletten Rest, also ca. 17 GHz nutzen, oder?
Danke
Martin
Verfasst: 21.12.2009, 13:05
von kastlr
Hallo Martin,
nein, so funktioniert das nicht.
Eine vCPU wird einer pCPU zugewiesen und nicht über alle vorhandenen pCPU's aufgeteilt.
Dies ist zwar keine statische Beziehung, so kann die vCPU bei Bedarf von einer pCPU auf eine ander pCPU verschoben werden.
Allerdings wirst du pro zugewiesener vCPU nicht mehr Leistung erhalten, als deine pCPU's einzeln liefern können.
Gruß
Ralf
Verfasst: 21.12.2009, 13:37
von AlbertMinrich
OK, danke.
Ist es dann so, dass, bei 8 pCPU´s, die ersten 8 VM´s jeweils eine eigene pCPU bekommen und erst die neunte VM teilt sich dann eine pCPU mit einer der schon vorhandenen VM´s?
Verfasst: 21.12.2009, 13:45
von kastlr
Hallo Martin,
das Thema CPU Scheduling ist etwas komplexer, ich empfehle dir daher die folgende Lektüre.
VMkernel Scheduler
VMware vSphere 4: The CPU Scheduler in VMware ESX4
Generell würde ich dir bei deiner Behauptung zustimmen, allerdings mußt du dabei auch die CPU Resourcen berücksichtigen, die der ESX Kernel selber benötigt.
Gruß
Ralf
Verfasst: 21.12.2009, 14:25
von Tschoergez
AlbertMinrich hat geschrieben:Ist es dann so, dass, bei 8 pCPU´s, die ersten 8 VM´s jeweils eine eigene pCPU bekommen und erst die neunte VM teilt sich dann eine pCPU mit einer der schon vorhandenen VM´s?
so in etwa... wie schon gesagt wurde, braucht natürlich der ESX selber z.B. für die Service Console und für sich selbst (v.a. bei Nutzung des iSCSI-Software-Initiators).
Welche VMs (genauer gesagt, welche vCPUs) dann jeweils welchen physik. Kern nutzen, das scheduled der ESX automatisch (kann alle 20ms wechseln, welche VMs auf welchem Kern laufen)...
@ralf: Dank für die Links! Die kommen auf jeden Fall in die Favoriten
Viele Grüße,
Jörg
Verfasst: 21.12.2009, 14:32
von kastlr
Hallo Jörg,
bedank dich bei Misses und Mister Google, die haben meine Suchanfrage direkt und unbürokratisch beantwortet.
Gruß
Ralf
Verfasst: 21.12.2009, 22:34
von AlbertMinrich
OK, was bringt dann am ehesten was, wenn auf einem ESX mit 15 VM´s eine VM (Windows 2003 Server) öfters mal zu 100% ausgelastet ist? Bis jetzt hat sie eine vCPU.
Der ESX-Server selbst hat noch einiges an Ressourcen frei.
Verfasst: 22.12.2009, 10:28
von Tschoergez
richtig! v.a. natürlich, wenn die Applikation selbst schon zwei CPUs nutzen kann.. Du solltest nur sicherstellen, dass der ESX physikalisch mehr als zwei Cores hat, sonst kann diese eine VM den ganzen ESX dann ausbremsen.
Bei "Upgrade" von einer vCPU auf zwei vCPUs auch dran denken, dass der HAL im Windows ausgetauscht wird (das macht Windows 2003 aber meist automatisch). Sieht man im Gerätemanager unter "System", da sollte dann statt ACPI-Uniprocessor-PC eben ein ACPI-multiprocessor-PC stehen.
Der Weg zurück ist dann aber nicht ganz so easy:
http://communities.vmware.com/thread/15647
Viele Grüße,
jörg
Verfasst: 22.12.2009, 10:30
von kastlr
Hallo,
wo siehst du denn die hohe Auslastung von 100%, im Windows Taskmanager oder im VMware Performance Viewer?
Ein guter Indikator, ob deine VM zu wenig CPU Resourcen zugewiesen bekommen hat, ist ein hoher CPU Ready Wert.
Dieser zeigt an, wie lange deine VM auf die Zuteilung von pCPU Resourcen warten muß.
Lies dir mal folgendes Dokument durch.
VMware ESX Server 3: Ready Time Observations
Generell stehen dir folgende Optionen zur Verfügung:
- Verwenden von CPU Reservierungen
- Verwenden von RAM Reservierungen (minimiert Swapping durch den Ballon Treiber/den ESX Server)
- Anpassen der CPU Shares
- Erhöhung der vCPU Anzahl
- Installation der VMware Tools (gehe mal davon aus, das die bereits installiert sind)
Welches davon die beste Lösung ist, läßt sich nicht so einfach feststellen.
Hoffe, das hilft dir erst einmal weiter.
Gruß
Ralf