Hallo liebe Virtualisierer!
Ich habe eine kleine, aber für mich sehr wichtige Frage; der Grund dessen spielt eigentlich keine Rolle, dennoch möchte ich wissen, ob es möglich ist, einer VM einen logischen Prozessorkern zuzuweisen. Ich benutze ein Betriebssystem mit einigen Softwarekomponenten, bei denen ich die Bestätigung habe, das die Benutzung einer vCPU einen erheblichen Delay hervorruft.
Darum nochmal ganz konkret: Ist es mögich einer VM einen einzelnen logischen Prozessor oder einen einzelnen logischen Prozessorkern zuzuweisen?
Mit freundlichen Grüßen
der PCJockel
Die Foren-SW läuft ohne erkennbare Probleme. Sollte doch etwas nicht funktionieren, bitte gerne hier jederzeit melden und wir kümmern uns zeitnah darum. Danke!
ESXi 5.1 VM einem logischen Proessor zuweisen - keinen vCPU
-
Dayworker
- King of the Hill
- Beiträge: 13657
- Registriert: 01.10.2008, 12:54
- Wohnort: laut USV-Log am Ende der Welt...
Ja ist möglich, wenn du mit vCPU hier Intels Hyperthreading meinst.
ABER wenn du das machst, wird diese VM unabhängig von der restlichen Host-Auslastung immer nur auf diesem Kern ausgeführt. Der Host sorgt aber immer für eine möglichst gleichmäßige Auslastung aller Kerne und packt noch weitere VMs mit auf diesen Kern. Wenn du das wiederum verhindern willst, müßtest du auch alle anderen VMs von der Nutzung dieses logischen CPU-Kerns ausschliessen. Damit würdest du aber bei entsprechender VM-Hostauslastung auch wieder unnötigen Streß auf den restlichen Kernen hervorrufen.
Wie du siehst, machbar ist das schon, aber aufgrund der Nebenwirkungen wie Beeinflussung der Gesamtsystemperformance sollte man davon besser absehen.
Darf man fragen welches OS und vor allem welche Systemkomponenten da Probleme machen?
Weil HT gibt es ja seit Februar (Xeon) bzw November (Pentium) 2002...
ABER wenn du das machst, wird diese VM unabhängig von der restlichen Host-Auslastung immer nur auf diesem Kern ausgeführt. Der Host sorgt aber immer für eine möglichst gleichmäßige Auslastung aller Kerne und packt noch weitere VMs mit auf diesen Kern. Wenn du das wiederum verhindern willst, müßtest du auch alle anderen VMs von der Nutzung dieses logischen CPU-Kerns ausschliessen. Damit würdest du aber bei entsprechender VM-Hostauslastung auch wieder unnötigen Streß auf den restlichen Kernen hervorrufen.
Wie du siehst, machbar ist das schon, aber aufgrund der Nebenwirkungen wie Beeinflussung der Gesamtsystemperformance sollte man davon besser absehen.
Darf man fragen welches OS und vor allem welche Systemkomponenten da Probleme machen?
Weil HT gibt es ja seit Februar (Xeon) bzw November (Pentium) 2002...
-
irix
- King of the Hill
- Beiträge: 13058
- Registriert: 02.08.2008, 15:06
- Wohnort: Hannover/Wuerzburg
- Kontaktdaten:
Ja, die feste Zuweisung von einer vCPU zu einem logischen Prozessor ist moeglich. Aber wenn ich mich recht innere dann nur auf Hosts welche nicht Teil eines HA Clusters sind. Das wird der Grund sein warum ich die Option nicht "sehe".
Klick mal in den VM Settings herums wenn die VM auf einem Host liegt der kein HA aktiv hat. Dann sollte es eine Option geben bestimmen zu koennen welche log. CPUs die VM benutzt. Hier must du dann deine CPU Nummern eingeben.
Gruss
Joerg
Klick mal in den VM Settings herums wenn die VM auf einem Host liegt der kein HA aktiv hat. Dann sollte es eine Option geben bestimmen zu koennen welche log. CPUs die VM benutzt. Hier must du dann deine CPU Nummern eingeben.
Gruss
Joerg
Danke für eure Antworten.
Also ich mache ein Praktikum bei einer großen Automationsfirma, die jetzt zum Teil auf Virtualisierung umsteigen möchte. Also das in großen Automationsanlagen statt vieler Rechner mit wenig Ausnutzung wenig Rechner mit hoher Ausnutzung stehen (das üblich VMware-Denken)
Zur Zeit wird ESXi benutzt (der kostenlose Hypervisor) also kein HA-Clustern oder so etwas. lediglich ein Server mit zwei Intel-CPUs mit jeweils 6 Kernen (die sind HT-fähig, also 24 Kerne). Für meine Anwendung wird nur eine Handvoll VMs benutzt, so dass das "wegfallen" einer CPU nicht kritisch wäre.
An Dayworker:
OS ist Windows XP und die Softwarekomponenten sind zum einen WinCC (Siemens-Visualisierungsprogramm), SQL-datenbank, OPC-Server und ein firmeneigenes Programm Names OTAS.
Die Arbeitsweise beläuft sich darauf, das über einen OPC-Scout Werte von einer SPS in einer Datenbank geschreiben werden und in WinCC über ActiveX-Elemente dargestellt werden. Das ganze Problem entsteht, da es über 2000 AktiveX-Elemente sind, die alle auf ein mal angefragt werden. Dadurch entsteht immer ein Einfrieren der WinCC-Visualisierung (aufpassen Virtualisierung und Visualisierung nicht durcheinander bringen)
Gibt es im Netz irgendwo eine Anleitung wie ich die eine logische CPU aus dem gesamten CPU "ausgrenzen" kann und nur der einen VM zur Verfügung stellen kann?
Mit freundlichen Grüßen
der PCJockel
Also ich mache ein Praktikum bei einer großen Automationsfirma, die jetzt zum Teil auf Virtualisierung umsteigen möchte. Also das in großen Automationsanlagen statt vieler Rechner mit wenig Ausnutzung wenig Rechner mit hoher Ausnutzung stehen (das üblich VMware-Denken)
Zur Zeit wird ESXi benutzt (der kostenlose Hypervisor) also kein HA-Clustern oder so etwas. lediglich ein Server mit zwei Intel-CPUs mit jeweils 6 Kernen (die sind HT-fähig, also 24 Kerne). Für meine Anwendung wird nur eine Handvoll VMs benutzt, so dass das "wegfallen" einer CPU nicht kritisch wäre.
An Dayworker:
OS ist Windows XP und die Softwarekomponenten sind zum einen WinCC (Siemens-Visualisierungsprogramm), SQL-datenbank, OPC-Server und ein firmeneigenes Programm Names OTAS.
Die Arbeitsweise beläuft sich darauf, das über einen OPC-Scout Werte von einer SPS in einer Datenbank geschreiben werden und in WinCC über ActiveX-Elemente dargestellt werden. Das ganze Problem entsteht, da es über 2000 AktiveX-Elemente sind, die alle auf ein mal angefragt werden. Dadurch entsteht immer ein Einfrieren der WinCC-Visualisierung (aufpassen Virtualisierung und Visualisierung nicht durcheinander bringen)
Gibt es im Netz irgendwo eine Anleitung wie ich die eine logische CPU aus dem gesamten CPU "ausgrenzen" kann und nur der einen VM zur Verfügung stellen kann?
Mit freundlichen Grüßen
der PCJockel
-
kastlr
- Profi
- Beiträge: 993
- Registriert: 31.03.2008, 17:26
- Wohnort: Einzugsbereich des FC Schalke 04
- Kontaktdaten:
Hallo,
HT ist selber eine Virtualisierungslösung und gauckelt dir nur einen weiteren Kern vor.
Du sagst, über einen OPC Scout werden Werte einer SPS in eine DB geschrieben und dann in WinCC dargestellt.
Welche Datenmengen werden denn da produziert?
WinCC wird die Daten ja sicherlich aus der DB lesen wollen, greift es dabei mit mehreren Threads auf die DB zu?
Da du XP einsetzt hast du doch sicherlch auch die VMware Tools installiert, welche Auslastung von CPU & Speicher hast du denn so?
Ich an deiner Stelle würde mir mal mit esxtop den Server und die VM gezielt ansehen, nicht das du mit der CPU an der völlig falschen Stelle drehst.
Gruß,
Ralf
HT ist selber eine Virtualisierungslösung und gauckelt dir nur einen weiteren Kern vor.
Du sagst, über einen OPC Scout werden Werte einer SPS in eine DB geschrieben und dann in WinCC dargestellt.
Welche Datenmengen werden denn da produziert?
WinCC wird die Daten ja sicherlich aus der DB lesen wollen, greift es dabei mit mehreren Threads auf die DB zu?
Da du XP einsetzt hast du doch sicherlch auch die VMware Tools installiert, welche Auslastung von CPU & Speicher hast du denn so?
Ich an deiner Stelle würde mir mal mit esxtop den Server und die VM gezielt ansehen, nicht das du mit der CPU an der völlig falschen Stelle drehst.
Gruß,
Ralf
Vielleicht waere es sinnvoll, zuerst einmal zu testen, ob mit den von VMware direkt angebotenen Mitteln der erwuenschte Zweck bereits erreicht werden kann...
Dazu kann man in den Eigenschaften der VM unter Ressourcen eine Reservierung von x MHz eintragen. Wenn man die auf die Frequenz der CPU einstellt, sollte der Effekt (mehr oder weniger) sein, dass der Hypervisor einen Kern fuer diese VM "reserviert", bzw. die entsprechenden Ressourcen. Erst, wenn das nicht ausreichen sollte, kann man sich dann mit irgendwelchen Basteleien wie fest zugewiesenen Kernen beschaeftigen. Wie Dayworker schon schrieb, sind da Seiteneffekte zu beachten.
Und [edit auch von mir /edit] PS: Der Hypervisor kann sehr wohl zwischen "echten" Kernen und Hyper-Threading-"Nachgeburt" unterscheiden. Nicht umsonst werden in der vSphere-Client-Uebersicht nur die Kerne (und nicht die Threads) bei der CPU-Kapazität gezaehlt.
Dazu kann man in den Eigenschaften der VM unter Ressourcen eine Reservierung von x MHz eintragen. Wenn man die auf die Frequenz der CPU einstellt, sollte der Effekt (mehr oder weniger) sein, dass der Hypervisor einen Kern fuer diese VM "reserviert", bzw. die entsprechenden Ressourcen. Erst, wenn das nicht ausreichen sollte, kann man sich dann mit irgendwelchen Basteleien wie fest zugewiesenen Kernen beschaeftigen. Wie Dayworker schon schrieb, sind da Seiteneffekte zu beachten.
Und [edit auch von mir /edit] PS: Der Hypervisor kann sehr wohl zwischen "echten" Kernen und Hyper-Threading-"Nachgeburt" unterscheiden. Nicht umsonst werden in der vSphere-Client-Uebersicht nur die Kerne (und nicht die Threads) bei der CPU-Kapazität gezaehlt.
-
irix
- King of the Hill
- Beiträge: 13058
- Registriert: 02.08.2008, 15:06
- Wohnort: Hannover/Wuerzburg
- Kontaktdaten:
Mach eine 100% Reservierung der Resource fuer besagte VM(s) und klicke dich durch die VM Settings. Das erkennt man dann schon.
Fuer den WebClient ist es unter http://pubs.vmware.com/vsphere-50/index ... 98137.html beschrieben. Da siehst du das mit der Affinity. Das ist im vSphere Client analog und gibts >5 Jahre schon.
Zusaetzlich gibts dann noch die Option , auch in einem HA/DRS Cluster, die Anweisung das der Hypervisor fuer diese VM nur "echte" Kerne nimmt und keine welche die per Hyperthreading realisiert werden.
Die Therms vCPU und logische CPUs sind im VMware Umfeld etwas anders belegt somit bitte aufpassen ueber was man redet. Der Hypervisor sieht alles als logische CPU was ihm praesentiert wird und das ist auch die Anzahl die in der Summary Seite angezeigt wird. Fuer eine hohe Konsolidierungsrate moechte man HT eingeschaltet lassen weil jede logische CPU einen HEC fuer das Ausfuehren eines VMM bringt.
Wenn die Konsolidierungsrate nicht im Vordergrund steht bei euch dann mach es zwecks Test mal aus.
Das CPU "pinning", sprich die Affinity kannst du dann immer noch setzen.
Mit vSphere 5.5 gibts eine Konfigurationoption fuer LowLatency VMs welches ein paar Defaultsettings dann anders setzt und unter der Haube fuer diese VM dann etwas priviligierter behandelt.
Gruss
Joerg
Fuer den WebClient ist es unter http://pubs.vmware.com/vsphere-50/index ... 98137.html beschrieben. Da siehst du das mit der Affinity. Das ist im vSphere Client analog und gibts >5 Jahre schon.
Zusaetzlich gibts dann noch die Option , auch in einem HA/DRS Cluster, die Anweisung das der Hypervisor fuer diese VM nur "echte" Kerne nimmt und keine welche die per Hyperthreading realisiert werden.
Die Therms vCPU und logische CPUs sind im VMware Umfeld etwas anders belegt somit bitte aufpassen ueber was man redet. Der Hypervisor sieht alles als logische CPU was ihm praesentiert wird und das ist auch die Anzahl die in der Summary Seite angezeigt wird. Fuer eine hohe Konsolidierungsrate moechte man HT eingeschaltet lassen weil jede logische CPU einen HEC fuer das Ausfuehren eines VMM bringt.
Wenn die Konsolidierungsrate nicht im Vordergrund steht bei euch dann mach es zwecks Test mal aus.
Das CPU "pinning", sprich die Affinity kannst du dann immer noch setzen.
Mit vSphere 5.5 gibts eine Konfigurationoption fuer LowLatency VMs welches ein paar Defaultsettings dann anders setzt und unter der Haube fuer diese VM dann etwas priviligierter behandelt.
Gruss
Joerg
Zurück zu „vSphere 5 / ESXi 5 und 5.1“
Wer ist online?
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast