Nachdem im ESXi4-Bereich des VMware-forum.de ein Posting namens cpuid.coresPerSocket keine Wirkung im W2003 Enterprise auftauchte, habe ich mit dem genannten Tool "mpdetect" mal ein wenig im Server2 getestet.
Der passende Hintergrund dazu verbirgt sich im c't-Artikel Mit Händen und Füßen - Maßnahmen und Tools zur Nutzung vieler Kerne und das Prog dazu ist downloadbar unter http://www.heise.de/ct/06/08/links/206.shtml
Wobei zu sagen ist, daß sich das unter Linux wesentlich einfacher entweder über "numactl" von Andi Kleen oder über die Ausgabe von "/proc/cpuinfo" rausfinden ließe. ;)
Ich habe also einige Tests gemacht und meine bisherigen Vermutungen haben sich teilweise bestättigt. Der Server2 sieht bei 2v.CPU-Kernen in einer VM meistens 2 Singlecores in einem Dual-Sockel-Board und Bilder sagen ja bekanntlich mehr als Worte. So sieht ein E6600 auf dem Host aus...
...und so wird in einer VM mit monitor.virtual_exec="hardware" dann dieselbe CPU angezeigt:
Jetzt wird es kompliziert.
Der Parameter "monitor.virtual_exec" ist enorm wichtig. Falls dieser nicht gesetzt ist, lautet die VMware-Vorgabe dafür "automatic". Dieser Vorgabe folgend, erscheint im "vmware.log" auf einer Conroe-CPU die Einstellung "dynamic". Leider wechselte dann bei jedem Prog-Aufruf die Erkennung der Package-ID und die Anzeige wäre damit nicht reproduzierbar. Mit der Einstellung "Software" hingegen ist die Package-ID zumindest bei Win-Win-Systemen immer gleich der Ausgabe der Host-CPU. Eine Erklärung dafür könnte ein Eintrag im VMware-Log sein:
“Software virtualization is incompatible with long mode on Intel EM64T CPU. Virtual execution will begin in software mode, but will automatically switch to hardware mode if the enters long mode.”
Durch diesen ständigen Wechsel wäre dann in meinen Augen auch klar, weshalb die Last von Host und Gast mit 2 CPU-Kernen ansteigt, obwohl die VM im Leerlauf dümpelt. Wie sich das Ganze nachher in Rechenleistung oder dessen Verlust darstellt, müßte man mal bei Gelegenheit überprüfen...
Zum Vergleich habe ich auch mal die Ausgabe meines Q6700 als Host-CPU gepinnt: