PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : VMWare 5 und HyperThreading



realtec
03.11.05, 17:40
Hallo, kann es sein das unter VMWare das HyperThreading meines Prozessors nicht genutzt wird? Habe unter VMWare im Linux nur eine CPU.

HOST OS: Win XP
Guest OS: SuSE 10.0

suck
03.11.05, 17:42
Das hängt davon ab, welche CPU Vmware emuliert und nicht davon, welche Du hast. Vmware emuliert einen ganzen Rechner inkl. CPU.

realtec
03.11.05, 17:59
Gibt Sinn. Aber kann ich ihm nicht beibringen mit "beiden" CPU`s zu arbeiten? So verpuffen mir 50 % Leistung...

Wie Du auf dem Screenshot sehen kannst. Ist "eine CPU" zu 100 % mit Linux beschäfigt und die andere Langweilt sich....

BSM
03.11.05, 18:03
Solange es "nur" Hyperthreading ist verpuffen keine 50% Leistung, weil es keine "echten" zwei CPUs sind.

Ausserdem unterstützt vmware AFAIR keine zwei (oder mehr) Prozessoren. Ansonsten mal beim Kundensupport nachfragen.

Gruss Robert

suck
03.11.05, 18:09
Hi..

Dazu müsste Vmware auf beiden CPU's gleichzeitig arbeiten, was es scheinbar nicht kann. Aber du hast schon recht, gut ist das so nicht. Bei nem Linux-Host hätte ich dir jetzt einfach empfohlen HT zu deaktivieren - das sollte auch bei Windows gehen (oder einfach direkt im BIOS abschalten). Aber HT hat ja schon Sinn (ok, darüber kann man streiten), das ist also nicht die beste Lösung. Hast du mal die neuste Vmware Version getestet, vielleicht ist das ja mittlerweile implementiert (Ich vermute, dass ist ne technische Herausforderung).

Andererseits (ich kenne Vmware nicht so gut) emulieret es vielleicht wirklich genau die CPU oder CPUs, die das HOST-System auch nutzt. Um diese schrecklich wage Vermutung zu überprüfen, müsste man wissen, ob deine Linux-Distri auch wirklich HT unterstützt (es ist eine Kerneloption unterhalb von "....CPU...." / "...SMP...."). Bei der aktuellen SuSE halte ich es für wahrscheinlich, dass der Support aktiviert ist.

Gruss..

Newbie2001
03.12.05, 15:01
also AFAIK emuliert VMware keine CPU sondern nutzt die gleiche CPU wie das host-system, die Host-CPU wird sozusagen "durchgeschalten" zum Gast-System. Eine CPU emulieren würde z.B. Bochs.
VMware unterstüzt zwei reale CPUs, d.h. das die CPU-Last, die VMware erzeugt dann auf beide CPUs aufgeteilt wird, in den VMware Workstation Versionen bis 5.0 oder ich glaub sogar 5.5 kannst du als Gast allerdings nur eine CPU nutzen. Ab 5.5 und in den Server-Versionen gibts auch SMP beim Gast. Laut VMware geht das aber auch nur bei zwei "realen" CPUs, HT wird AFAIR nur im ESX-Server unterstüzt. Und ich glaube ein ESX-Server wird nicht dein Ziel sein.

EDIT: Hab grade auf der VMware-Webseite gesehen, dass die VMware Workstation 5.5 doch auch HT unterstützt.
D.h. du kannst deine eine HT-Host-CPU auch im Gast als zwei CPUs anzeigen lassen. Falls du Linux als Gast einsetzt setzt das natürlich einen SMP-Kernel voraus.

Masta Pete
17.12.05, 21:11
Hi,
ich habe vor in der Schule auf einem Server mit einem dual XEON 3GHz mit HT vmware zu verwenden. Kann dann VMware auch "alle" 4 CPUs nutzen?

Oder könnte man dann wenn man zb 4 VMs jeweils eine quasi eigene reale cpu geben?

lg
pete

BSM
18.12.05, 18:17
[ ] Du hast verstanden was HT ist.

stefan.becker
18.12.05, 18:24
Hi,
ich habe vor in der Schule auf einem Server mit einem dual XEON 3GHz mit HT vmware zu verwenden. Kann dann VMware auch "alle" 4 CPUs nutzen?

Oder könnte man dann wenn man zb 4 VMs jeweils eine quasi eigene reale cpu geben?

lg
pete

Und vor allem solltest du mal den Post von Newbie2001, der deine Frage sehr genau beantwortet bzw. verneint.

Newbie2001
20.12.05, 17:29
welche version von vmware plant ihr denn einzusetzen ?
Wenn du vmware workstation version 5.5 einsetzt oder eine der server varianten (GSX, ESX) dann gibt es sogar die möglichkeit einem vmware gast mehrere cpus zuzuweisen. Du hast in deinem fall, 2 reale cpus, die aufgespaleten werden in 4 logische cpus. wenn du jetzt jedem vmware-gast eine cpu zuweise möchtest, so geht dies NUR wenn du kernel 2.6 auf dem HOST einsetzt und in der vmx-datei jeder vm einstellst welche cpu er zu benutzen hat.
Bei vier cpus wären die bezeichnungen folgendermaßen:
cpu 0 : 1. reale cpu
cpu 1 : 1. logische cpu (ht)
cpu 2 : 2. reale cpu
cpu 3 : 2. logische cpu (ht)

wenn du nun möchtest, dass eine beliebige virtual machine nur cpu 2 einsetzt dann kannst bräuchtest du folgenden eintrag:

processor0.use = FALSE
processor1.use = FALSE
processor3.use = FALSE

d.h. er nutzt nicht cpu 0,1,3 dann bliebe für diese vm logischerweise nur die cpu mit der nummer 2. Dieser trick funktioniert bei allen vmware workstations mit einer versionsnummer >=3.0 und bei allen gsx-servern mit einer versionsnummer >=2.0

Masta Pete
21.12.05, 09:21
Danke, Newbie2001. Das war genau das, was ich wissen wollte. Ich werden den GSX Server dafür verwenden.

lg
pete

Newbie2001
21.12.05, 14:11
aber dran denken, das geht nur bei einem windows host oder linux kernel 2.6 als host
==> möglichst aktuelle distribution einsetzen oder kernel selbst bauen

Masta Pete
21.12.05, 14:42
Jup, grundsystem ist ein gentoo 2005.1 mit kernel 2.6.14-gentoo2.

Sollte doch gehn, oder?

lg
pete

Newbie2001
29.12.05, 14:08
2.6.14 ist kritisch. hab in mehreren foren und mailing-listen gelesen, dass die vmware module sich mit kernel 2.6.14 nicht kompilieren lassen. Ich hab allerdings nicht darauf geachtet ob es auch bereits lösungen für das problem gibt, da ich noch auf kernel 2.4 fahre. Nach Möglichkeit einfach ne niedrigere version einsetzen (z.b. 2.6.13) oder schaun ob es bereits lösungen gibt.
Viel Glück!

Masta Pete
02.01.06, 20:25
Eine lösung ist der any-any patch. ein thread findet sich hier in "kompilieren von kernel und sourcen".