VMWare und Mehrprozessor-/Dualcoresysteme
Hallo,
durch mein Studium und meinen Job bin ich auf eine Fragestellung gestoßen auf die ich leider noch keine Antwort gefunden habe.
Derzeit betreiben wir eine Simualtionssoftware auf mehreren Rechnern. Nachteil dieser Software ist das diese auf Mehrprozessorsystemen oder auch auf Multicoresystemen immer nur einen Prozessor/Prozessorkern ausnutzt. Dies bedeutet zwangsweise das min. 50% der Rechenleistung verloren geht. Es ist uns nicht möglich die Software in irgendeiner Art und Weise zu beeinflussen.
Wäre es möglich auf einem Mulicoresystem eine VMWare zu installieren die der Simulationssoftware einen einzigen Prozessor(kern) vorgaukelt und somit den gesammten Prozessor mit all seinen Kernen ausnutzt?
Angenommen es wäre möglich das die VMWare wirklich mehrere Prozessorkerne auf einen virtuellen Prozessor virtualisiert, wie verhält sich die VMWare in Bezug auf Prozessorauslastung und Speicherverwaltung wenn man nun auf einem Rechner auf verschiedenen Virtuellen Hosts Simulationen laufen lässt?
Welches Produkt von VMWare oder anderen Herstellern/Opsen Source würde dies Unterstützen?
Vielen Dank für die Antworten!
Sundays
durch mein Studium und meinen Job bin ich auf eine Fragestellung gestoßen auf die ich leider noch keine Antwort gefunden habe.
Derzeit betreiben wir eine Simualtionssoftware auf mehreren Rechnern. Nachteil dieser Software ist das diese auf Mehrprozessorsystemen oder auch auf Multicoresystemen immer nur einen Prozessor/Prozessorkern ausnutzt. Dies bedeutet zwangsweise das min. 50% der Rechenleistung verloren geht. Es ist uns nicht möglich die Software in irgendeiner Art und Weise zu beeinflussen.
Wäre es möglich auf einem Mulicoresystem eine VMWare zu installieren die der Simulationssoftware einen einzigen Prozessor(kern) vorgaukelt und somit den gesammten Prozessor mit all seinen Kernen ausnutzt?
Angenommen es wäre möglich das die VMWare wirklich mehrere Prozessorkerne auf einen virtuellen Prozessor virtualisiert, wie verhält sich die VMWare in Bezug auf Prozessorauslastung und Speicherverwaltung wenn man nun auf einem Rechner auf verschiedenen Virtuellen Hosts Simulationen laufen lässt?
Welches Produkt von VMWare oder anderen Herstellern/Opsen Source würde dies Unterstützen?
Vielen Dank für die Antworten!
Sundays
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 49721
Url: https://administrator.de/contentid/49721
Ausgedruckt am: 26.11.2024 um 11:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo Sunday,
also der VM Ware ESX Server kann auf jeden Fall die Rechenleistung auf die einzelnen VM's verteilen. Das geht sogar dynamisch, D.h. wenn eine VM gerade nix zu tun hat und eine ausgelastet ist wir die CPU Power auf die ausgelastete transferiert. Da gibts, ausser Lizenztechnisch, auch keine Beschränkung. Du kannst den ESX auch auf nem Itanium Server mit 16CPU's und 128GB RAm laufen lassen.
Ich weiss nicht ob der GSX oder der kostenlose VMWare Server das auch kann da müsstet Ihr mal bei VMWare nachfragen.
An eurer stelle würde ich mir mal den ESX von VMWare anschauen, sehr leistungsfähiges Produkt. Und wenn Du den Richtigen Rechner drunterstellst kannst Du auch noch ei n paar andere Server von euch in die VM Transferieren und so die Ausfallsicherheit erhöhren und Hardwarecosten, Stromkosten usw. minimieren.
Mit kostenloasen alternativen, XEN, MS Virtual Server, Innotek Virtual Box hab ich mich noch nicht genauer befasst.
Bis dann
VoSp
also der VM Ware ESX Server kann auf jeden Fall die Rechenleistung auf die einzelnen VM's verteilen. Das geht sogar dynamisch, D.h. wenn eine VM gerade nix zu tun hat und eine ausgelastet ist wir die CPU Power auf die ausgelastete transferiert. Da gibts, ausser Lizenztechnisch, auch keine Beschränkung. Du kannst den ESX auch auf nem Itanium Server mit 16CPU's und 128GB RAm laufen lassen.
Ich weiss nicht ob der GSX oder der kostenlose VMWare Server das auch kann da müsstet Ihr mal bei VMWare nachfragen.
An eurer stelle würde ich mir mal den ESX von VMWare anschauen, sehr leistungsfähiges Produkt. Und wenn Du den Richtigen Rechner drunterstellst kannst Du auch noch ei n paar andere Server von euch in die VM Transferieren und so die Ausfallsicherheit erhöhren und Hardwarecosten, Stromkosten usw. minimieren.
Mit kostenloasen alternativen, XEN, MS Virtual Server, Innotek Virtual Box hab ich mich noch nicht genauer befasst.
Bis dann
VoSp
Hola,
ich glaube, Du hast seine "Begehrlichkeit" falsch verstanden. Meines Erachtens hat er folgendes vor:
Er hat einen DualCore Prozessor (meinetwegen 2 x 2.8 GHz = 5,6 GHz insgesamt). Jetzt sucht er eine Lösung, mit dessen er die 2 x 2.8 GHz der einzelnen Cores/Prozessoren als einen virtuellen "~5 GHz" Prozessor vorgaukeln kann.
vmWare kann sowas definitiv NICHT, ich wüsste auch nicht, dass irgendeine Software sowas machen könnte.
@sundays: Woher stammt denn diese Software? Ist die selbst gemacht?
cu,
Alex
ich glaube, Du hast seine "Begehrlichkeit" falsch verstanden. Meines Erachtens hat er folgendes vor:
Er hat einen DualCore Prozessor (meinetwegen 2 x 2.8 GHz = 5,6 GHz insgesamt). Jetzt sucht er eine Lösung, mit dessen er die 2 x 2.8 GHz der einzelnen Cores/Prozessoren als einen virtuellen "~5 GHz" Prozessor vorgaukeln kann.
vmWare kann sowas definitiv NICHT, ich wüsste auch nicht, dass irgendeine Software sowas machen könnte.
@sundays: Woher stammt denn diese Software? Ist die selbst gemacht?
cu,
Alex
@meinereiner:
Ja, aber diese eine virtuelle CPU hat MAXIMAL die Taktung eine physikalischen CPU, wird also bei der virtualisierung auf einen Core/Prozessor abgebildet.
Mit ESX geht's definitiv nicht, glaub' mir ... ich hab' das gelernt
cu,
Alex
Ja, aber diese eine virtuelle CPU hat MAXIMAL die Taktung eine physikalischen CPU, wird also bei der virtualisierung auf einen Core/Prozessor abgebildet.
Mit ESX geht's definitiv nicht, glaub' mir ... ich hab' das gelernt
cu,
Alex
Ja, aber diese eine virtuelle CPU hat
MAXIMAL die Taktung eine physikalischen CPU,
wird also bei der virtualisierung auf einen
Core/Prozessor abgebildet.
MAXIMAL die Taktung eine physikalischen CPU,
wird also bei der virtualisierung auf einen
Core/Prozessor abgebildet.
ja, ,das stimmt so. Das wollte ich auch nicht anders behaupten.
So ganz klar ist mir selbst nämlich nicht, wieviel Rechenleistung von z.B. einer Quadcore CPU diesem einen Prozessor dann zur Verfügung steht. Mehr als ein viertel sollte es schon sein.
Hi,
wie soll denn ESX mehr als ein Viertel der Power einer Quadcore zur Verfügung stellen, wenn er für eine VM maximal auf einen Core dieser CPU zugreifen darf?
Dazu kommt noch der Virtualisierungsoverhead, der je nach Software und Betriebssystem sehr massic sein kann. ESX kann nur bestimmte Sachen in Hardware laufen lassen, für einige muss ESX auch CPU Zugriffe "virtualisieren", welche gerade bei älterer Software (um die es sich hier vermutlich auch handelt) massiv ausfallen können.
In der Praxis wird er wohl eher nur 80-90% der Power eines Cores abbekommen.
cu,
Alex
wie soll denn ESX mehr als ein Viertel der Power einer Quadcore zur Verfügung stellen, wenn er für eine VM maximal auf einen Core dieser CPU zugreifen darf?
Dazu kommt noch der Virtualisierungsoverhead, der je nach Software und Betriebssystem sehr massic sein kann. ESX kann nur bestimmte Sachen in Hardware laufen lassen, für einige muss ESX auch CPU Zugriffe "virtualisieren", welche gerade bei älterer Software (um die es sich hier vermutlich auch handelt) massiv ausfallen können.
In der Praxis wird er wohl eher nur 80-90% der Power eines Cores abbekommen.
cu,
Alex
Hi,
na, das mit dem Multithreading ist ja ein ganz anderes Thema. Wenn das Programm vom Ablauf her "kompliziert" ist, dann würde ich die Finger davon lassen ehrlich gesagt.
Multithreading ist dann besonders einfach zu implementieren, wenn man zuvor voneinander relativ isolierte Aufgaben sequentiell programmiert hatte, die miteinander wenig zu tun haben. Greifen diese Aufgaben aber auf gemeinsame Ressourcen zu (erstellen z.B. die gleichen Dateien), muss man natürlich schon ganz genau aufpassen, dass der eine Thread nicht die gleiche Datei liest, die der andere gerade neu anlegen möchte u.s.w.
Hängt jetzt auch im wesntlichen davon ab, welche Programmiersprache verwendet werden muss - die eine bietet zusätzliche Bibliotheken für parallelverarbeitung (in der c't war da ein recht guter Artikel), die anderen unterstützen den Programmierer kaum.
cu,
Alex
na, das mit dem Multithreading ist ja ein ganz anderes Thema. Wenn das Programm vom Ablauf her "kompliziert" ist, dann würde ich die Finger davon lassen ehrlich gesagt.
Multithreading ist dann besonders einfach zu implementieren, wenn man zuvor voneinander relativ isolierte Aufgaben sequentiell programmiert hatte, die miteinander wenig zu tun haben. Greifen diese Aufgaben aber auf gemeinsame Ressourcen zu (erstellen z.B. die gleichen Dateien), muss man natürlich schon ganz genau aufpassen, dass der eine Thread nicht die gleiche Datei liest, die der andere gerade neu anlegen möchte u.s.w.
Hängt jetzt auch im wesntlichen davon ab, welche Programmiersprache verwendet werden muss - die eine bietet zusätzliche Bibliotheken für parallelverarbeitung (in der c't war da ein recht guter Artikel), die anderen unterstützen den Programmierer kaum.
cu,
Alex